From 0248fb2e8a3c6a02f443140cfcf68a0190354e23 Mon Sep 17 00:00:00 2001 From: Chaithra Gopalareddy Date: Thu, 18 Aug 2016 09:56:48 +0530 Subject: [PATCH 001/258] Bug #23135667: CRASH AFTER DEEPLY NESTED BUILD_EQUAL_ITEMS_FOR_COND Problem: When build_equal_items_for_cond gets called for a big query recursively, the specified thread_stack_size exceeds. But optimizer does not handle this condition. As a result, server exits. Solution: Check if we exceed specified stack size and if yes exit gracefully by throwing an error. --- sql/sql_select.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sql/sql_select.cc b/sql/sql_select.cc index fb705e9ba6a..80d4b87e916 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -8154,6 +8154,9 @@ static COND *build_equal_items_for_cond(THD *thd, COND *cond, COND_EQUAL cond_equal; cond_equal.upper_levels= inherited; + if (check_stack_overrun(thd, STACK_MIN_SIZE, NULL)) + return cond; // Fatal error flag is set! + if (cond->type() == Item::COND_ITEM) { List eq_list; From 04bad164e7d4bad2b2ed63485ea6361029392d68 Mon Sep 17 00:00:00 2001 From: "mysql-builder@oracle.com" <> Date: Thu, 18 Aug 2016 12:12:09 +0530 Subject: [PATCH 002/258] From 8b1f4d84cafe393e92f942278f9f020a62ceb5b9 Mon Sep 17 00:00:00 2001 From: Terje Rosten Date: Fri, 12 Aug 2016 12:38:20 +0200 Subject: [PATCH 003/258] Bug#24464380 PRIVILEGE ESCALATION USING MYSQLD_SAFE Argument to malloc-lib must be included in restricted list of directories, symlink guards added, and mysqld and mysqld-version options restricted to command line only. Don't redirect errors to stderr. --- packaging/rpm-oel/mysql.init | 2 +- packaging/rpm-sles/mysql.init | 2 +- scripts/mysqld_safe.sh | 79 +++++++++++++++++++++-------------- support-files/mysql.server.sh | 2 +- 4 files changed, 50 insertions(+), 35 deletions(-) diff --git a/packaging/rpm-oel/mysql.init b/packaging/rpm-oel/mysql.init index 262d0582f68..aaea498d153 100644 --- a/packaging/rpm-oel/mysql.init +++ b/packaging/rpm-oel/mysql.init @@ -102,7 +102,7 @@ start(){ # alarms, per bug #547485 $exec --datadir="$datadir" --socket="$socketfile" \ --pid-file="$mypidfile" \ - --basedir=/usr --user=mysql >/dev/null 2>&1 & + --basedir=/usr --user=mysql >/dev/null & safe_pid=$! # Spin for a maximum of N seconds waiting for the server to come up; # exit the loop immediately if mysqld_safe process disappears. diff --git a/packaging/rpm-sles/mysql.init b/packaging/rpm-sles/mysql.init index 50ca4c9033c..dda0bebba56 100644 --- a/packaging/rpm-sles/mysql.init +++ b/packaging/rpm-sles/mysql.init @@ -137,7 +137,7 @@ start () { rc_failed 6 ; rc_status -v ; rc_exit fi - $PROG --basedir=/usr --datadir="$datadir" --pid-file="$pidfile" >/dev/null 2>&1 & + $PROG --basedir=/usr --datadir="$datadir" --pid-file="$pidfile" >/dev/null & if pinger $! ; then echo -n "Starting service MySQL:" touch $lockfile diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index f705953059e..11b692ec928 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -208,8 +208,17 @@ parse_arguments() { --core-file-size=*) core_file_size="$val" ;; --ledir=*) ledir="$val" ;; --malloc-lib=*) set_malloc_lib "$val" ;; - --mysqld=*) MYSQLD="$val" ;; + --mysqld=*) + if [ -z "$pick_args" ]; then + log_error "--mysqld option can only be used as command line option, found in config file" + exit 1 + fi + MYSQLD="$val" ;; --mysqld-version=*) + if [ -z "$pick_args" ]; then + log_error "--mysqld-version option can only be used as command line option, found in config file" + exit 1 + fi if test -n "$val" then MYSQLD="mysqld-$val" @@ -297,38 +306,22 @@ mysqld_ld_preload_text() { echo "$text" } - -mysql_config= -get_mysql_config() { - if [ -z "$mysql_config" ]; then - mysql_config=`echo "$0" | sed 's,/[^/][^/]*$,/mysql_config,'` - if [ ! -x "$mysql_config" ]; then - log_error "Can not run mysql_config $@ from '$mysql_config'" - exit 1 - fi - fi - - "$mysql_config" "$@" -} - - # set_malloc_lib LIB # - If LIB is empty, do nothing and return -# - If LIB is 'tcmalloc', look for tcmalloc shared library in /usr/lib -# then pkglibdir. tcmalloc is part of the Google perftools project. +# - If LIB is 'tcmalloc', look for tcmalloc shared library in $malloc_dirs. +# tcmalloc is part of the Google perftools project. # - If LIB is an absolute path, assume it is a malloc shared library # # Put LIB in mysqld_ld_preload, which will be added to LD_PRELOAD when # running mysqld. See ld.so for details. set_malloc_lib() { + # This list is kept intentionally simple. + malloc_dirs="/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu" malloc_lib="$1" if [ "$malloc_lib" = tcmalloc ]; then - pkglibdir=`get_mysql_config --variable=pkglibdir` malloc_lib= - # This list is kept intentionally simple. Simply set --malloc-lib - # to a full path if another location is desired. - for libdir in /usr/lib "$pkglibdir" "$pkglibdir/mysql"; do + for libdir in $(echo $malloc_dirs); do for flavor in _minimal '' _and_profiler _debug; do tmp="$libdir/libtcmalloc$flavor.so" #log_notice "DEBUG: Checking for malloc lib '$tmp'" @@ -339,7 +332,7 @@ set_malloc_lib() { done if [ -z "$malloc_lib" ]; then - log_error "no shared library for --malloc-lib=tcmalloc found in /usr/lib or $pkglibdir" + log_error "no shared library for --malloc-lib=tcmalloc found in $malloc_dirs" exit 1 fi fi @@ -350,9 +343,21 @@ set_malloc_lib() { case "$malloc_lib" in /*) if [ ! -r "$malloc_lib" ]; then - log_error "--malloc-lib '$malloc_lib' can not be read and will not be used" + log_error "--malloc-lib can not be read and will not be used" exit 1 fi + + # Restrict to a the list in $malloc_dirs above + case "$(dirname "$malloc_lib")" in + /usr/lib) ;; + /usr/lib64) ;; + /usr/lib/i386-linux-gnu) ;; + /usr/lib/x86_64-linux-gnu) ;; + *) + log_error "--malloc-lib must be located in one of the directories: $malloc_dirs" + exit 1 + ;; + esac ;; *) log_error "--malloc-lib must be an absolute path or 'tcmalloc'; " \ @@ -569,7 +574,7 @@ then log_notice "Logging to '$err_log'." logging=file - if [ ! -f "$err_log" ]; then # if error log already exists, + if [ ! -f "$err_log" -a ! -h "$err_log" ]; then # if error log already exists, touch "$err_log" # we just append. otherwise, chmod "$fmode" "$err_log" # fix the permissions here! fi @@ -594,7 +599,7 @@ then USER_OPTION="--user=$user" fi # Change the err log to the right user, if it is in use - if [ $want_syslog -eq 0 ]; then + if [ $want_syslog -eq 0 -a ! -h "$err_log" ]; then touch "$err_log" chown $user "$err_log" fi @@ -614,9 +619,11 @@ safe_mysql_unix_port=${mysql_unix_port:-${MYSQL_UNIX_PORT:-@MYSQL_UNIX_ADDR@}} mysql_unix_port_dir=`dirname $safe_mysql_unix_port` if [ ! -d $mysql_unix_port_dir ] then - mkdir $mysql_unix_port_dir - chown $user $mysql_unix_port_dir - chmod 755 $mysql_unix_port_dir + if [ ! -h $mysql_unix_port_dir ]; then + mkdir $mysql_unix_port_dir + chown $user $mysql_unix_port_dir + chmod 755 $mysql_unix_port_dir + fi fi # If the user doesn't specify a binary, we assume name "mysqld" @@ -728,7 +735,9 @@ then exit 1 fi fi - rm -f "$pid_file" + if [ ! -h "$pid_file" ]; then + rm -f "$pid_file" + fi if test -f "$pid_file" then log_error "Fatal error: Can't remove the pid file: @@ -779,13 +788,19 @@ have_sleep=1 while true do - rm -f $safe_mysql_unix_port "$pid_file" # Some extra safety + # Some extra safety + if [ ! -h "$safe_mysql_unix_port" ]; then + rm -f "$safe_mysql_unix_port" + fi + if [ ! -h "$pid_file" ]; then + rm -f "$pid_file" + fi start_time=`date +%M%S` eval_log_error "$cmd" - if [ $want_syslog -eq 0 -a ! -f "$err_log" ]; then + if [ $want_syslog -eq 0 -a ! -f "$err_log" -a ! -h "$err_log" ]; then touch "$err_log" # hypothetical: log was renamed but not chown $user "$err_log" # flushed yet. we'd recreate it with chmod "$fmode" "$err_log" # wrong owner next time we log, so set diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh index 7487d5acc0f..909d33f8770 100644 --- a/support-files/mysql.server.sh +++ b/support-files/mysql.server.sh @@ -280,7 +280,7 @@ case "$mode" in then # Give extra arguments to mysqld with the my.cnf file. This script # may be overwritten at next upgrade. - $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 & + $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null & wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$? # Make lock for RedHat / SuSE From 033b11912121ad2c1dbd4a93202eeac196124801 Mon Sep 17 00:00:00 2001 From: Jon Olav Hauglid Date: Tue, 16 Aug 2016 15:35:19 +0200 Subject: [PATCH 004/258] Bug#24388746: PRIVILEGE ESCALATION AND RACE CONDITION USING CREATE TABLE During REPAIR TABLE of a MyISAM table, a temporary data file (.TMD) is created. When repair finishes, this file is renamed to the original .MYD file. The problem was that during this rename, we copied the stats from the old file to the new file with chmod/chown. If a user managed to replace the temporary file before chmod/chown was executed, it was possible to get an arbitrary file with the privileges of the mysql user. This patch fixes the problem by not copying stats from the old file to the new file. This is not needed as the new file was created with the correct stats. This fix only changes server behavior - external utilities such as myisamchk still does chmod/chown. No test case provided since the problem involves synchronization with file system operations. --- include/my_sys.h | 3 ++- include/myisam.h | 11 +++++----- mysys/my_redel.c | 12 ++++++++--- storage/myisam/ha_myisam.cc | 26 ++++++++++++++++++----- storage/myisam/mi_check.c | 41 ++++++++++++++++++++++++++----------- storage/myisam/myisamchk.c | 16 +++++++++------ 6 files changed, 77 insertions(+), 32 deletions(-) diff --git a/include/my_sys.h b/include/my_sys.h index b1b8bf15be3..472c2ba5ca0 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -83,6 +83,7 @@ typedef struct my_aio_result { #define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */ #define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */ #define MY_REDEL_MAKE_BACKUP 256 +#define MY_REDEL_NO_COPY_STAT 512 /* my_redel() doesn't call my_copystat() */ #define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */ #define MY_DONT_WAIT 64 /* my_lock() don't wait if can't lock */ #define MY_ZEROFILL 32 /* my_malloc(), fill array with zero */ diff --git a/include/myisam.h b/include/myisam.h index 85d37a81bc6..a9fcd7e4369 100644 --- a/include/myisam.h +++ b/include/myisam.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -426,12 +426,13 @@ int chk_size(MI_CHECK *param, MI_INFO *info); int chk_key(MI_CHECK *param, MI_INFO *info); int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend); int mi_repair(MI_CHECK *param, register MI_INFO *info, - char * name, int rep_quick); -int mi_sort_index(MI_CHECK *param, register MI_INFO *info, char * name); + char * name, int rep_quick, my_bool no_copy_stat); +int mi_sort_index(MI_CHECK *param, register MI_INFO *info, char * name, + my_bool no_copy_stat); int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info, - const char * name, int rep_quick); + const char * name, int rep_quick, my_bool no_copy_stat); int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info, - const char * name, int rep_quick); + const char * name, int rep_quick, my_bool no_copy_stat); int change_to_newfile(const char * filename, const char * old_ext, const char * new_ext, myf myflags); int lock_file(MI_CHECK *param, File file, my_off_t start, int lock_type, diff --git a/mysys/my_redel.c b/mysys/my_redel.c index a47df8265c8..25391cd4e8f 100644 --- a/mysys/my_redel.c +++ b/mysys/my_redel.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -35,6 +35,9 @@ struct utimbuf { if MY_REDEL_MAKE_COPY is given, then the orginal file is renamed to org_name-'current_time'.BAK + + if MY_REDEL_NO_COPY_STAT is given, stats are not copied + from org_name to tmp_name. */ #define REDEL_EXT ".BAK" @@ -46,8 +49,11 @@ int my_redel(const char *org_name, const char *tmp_name, myf MyFlags) DBUG_PRINT("my",("org_name: '%s' tmp_name: '%s' MyFlags: %d", org_name,tmp_name,MyFlags)); - if (my_copystat(org_name,tmp_name,MyFlags) < 0) - goto end; + if (!(MyFlags & MY_REDEL_NO_COPY_STAT)) + { + if (my_copystat(org_name,tmp_name,MyFlags) < 0) + goto end; + } if (MyFlags & MY_REDEL_MAKE_BACKUP) { char name_buff[FN_REFLEN+20]; diff --git a/storage/myisam/ha_myisam.cc b/storage/myisam/ha_myisam.cc index 602a0ae6cc1..21cbef32188 100644 --- a/storage/myisam/ha_myisam.cc +++ b/storage/myisam/ha_myisam.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -1091,24 +1091,36 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool do_optimize) /* TODO: respect myisam_repair_threads variable */ my_snprintf(buf, 40, "Repair with %d threads", my_count_bits(key_map)); thd_proc_info(thd, buf); + /* + The new file is created with the right stats, so we can skip + copying file stats from old to new. + */ error = mi_repair_parallel(¶m, file, fixed_name, - param.testflag & T_QUICK); + param.testflag & T_QUICK, TRUE); thd_proc_info(thd, "Repair done"); // to reset proc_info, as // it was pointing to local buffer } else { thd_proc_info(thd, "Repair by sorting"); + /* + The new file is created with the right stats, so we can skip + copying file stats from old to new. + */ error = mi_repair_by_sort(¶m, file, fixed_name, - param.testflag & T_QUICK); + param.testflag & T_QUICK, TRUE); } } else { thd_proc_info(thd, "Repair with keycache"); param.testflag &= ~T_REP_BY_SORT; + /* + The new file is created with the right stats, so we can skip + copying file stats from old to new. + */ error= mi_repair(¶m, file, fixed_name, - param.testflag & T_QUICK); + param.testflag & T_QUICK, TRUE); } #ifdef HAVE_MMAP if (remap) @@ -1124,7 +1136,11 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool do_optimize) { optimize_done=1; thd_proc_info(thd, "Sorting index"); - error=mi_sort_index(¶m,file,fixed_name); + /* + The new file is created with the right stats, so we can skip + copying file stats from old to new. + */ + error=mi_sort_index(¶m,file,fixed_name, TRUE); } if (!statistics_done && (local_testflag & T_STATISTICS)) { diff --git a/storage/myisam/mi_check.c b/storage/myisam/mi_check.c index ba1f975549a..fe0d4c9c30b 100644 --- a/storage/myisam/mi_check.c +++ b/storage/myisam/mi_check.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -1512,7 +1512,7 @@ static int mi_drop_all_indexes(MI_CHECK *param, MI_INFO *info, my_bool force) /* Save new datafile-name in temp_filename */ int mi_repair(MI_CHECK *param, register MI_INFO *info, - char * name, int rep_quick) + char * name, int rep_quick, my_bool no_copy_stat) { int error,got_error; ha_rows start_records,new_header_length; @@ -1726,6 +1726,11 @@ err: /* Replace the actual file with the temporary file */ if (new_file >= 0) { + myf flags= 0; + if (param->testflag & T_BACKUP_DATA) + flags |= MY_REDEL_MAKE_BACKUP; + if (no_copy_stat) + flags |= MY_REDEL_NO_COPY_STAT; mysql_file_close(new_file, MYF(0)); info->dfile=new_file= -1; /* @@ -1744,8 +1749,7 @@ err: info->s->file_map= NULL; } if (change_to_newfile(share->data_file_name, MI_NAME_DEXT, DATA_TMP_EXT, - (param->testflag & T_BACKUP_DATA ? - MYF(MY_REDEL_MAKE_BACKUP): MYF(0))) || + flags) || mi_open_datafile(info,share,name,-1)) got_error=1; @@ -1933,7 +1937,8 @@ int flush_blocks(MI_CHECK *param, KEY_CACHE *key_cache, File file) /* Sort index for more efficent reads */ -int mi_sort_index(MI_CHECK *param, register MI_INFO *info, char * name) +int mi_sort_index(MI_CHECK *param, register MI_INFO *info, char * name, + my_bool no_copy_stat) { reg2 uint key; reg1 MI_KEYDEF *keyinfo; @@ -2004,7 +2009,7 @@ int mi_sort_index(MI_CHECK *param, register MI_INFO *info, char * name) share->kfile = -1; (void) mysql_file_close(new_file, MYF(MY_WME)); if (change_to_newfile(share->index_file_name, MI_NAME_IEXT, INDEX_TMP_EXT, - MYF(0)) || + no_copy_stat ? MYF(MY_REDEL_NO_COPY_STAT) : MYF(0)) || mi_open_keyfile(share)) goto err2; info->lock_type= F_UNLCK; /* Force mi_readinfo to lock */ @@ -2209,6 +2214,8 @@ err: info MyISAM handler to repair name Name of table (for warnings) rep_quick set to <> 0 if we should not change data file + no_copy_stat Don't copy file stats from old to new file, + assume that new file was created with correct stats RESULT 0 ok @@ -2216,7 +2223,7 @@ err: */ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info, - const char * name, int rep_quick) + const char * name, int rep_quick, my_bool no_copy_stat) { int got_error; uint i; @@ -2543,11 +2550,15 @@ err: /* Replace the actual file with the temporary file */ if (new_file >= 0) { + myf flags= 0; + if (param->testflag & T_BACKUP_DATA) + flags |= MY_REDEL_MAKE_BACKUP; + if (no_copy_stat) + flags |= MY_REDEL_NO_COPY_STAT; mysql_file_close(new_file, MYF(0)); info->dfile=new_file= -1; if (change_to_newfile(share->data_file_name,MI_NAME_DEXT, DATA_TMP_EXT, - (param->testflag & T_BACKUP_DATA ? - MYF(MY_REDEL_MAKE_BACKUP): MYF(0))) || + flags) || mi_open_datafile(info,share,name,-1)) got_error=1; } @@ -2595,6 +2606,8 @@ err: info MyISAM handler to repair name Name of table (for warnings) rep_quick set to <> 0 if we should not change data file + no_copy_stat Don't copy file stats from old to new file, + assume that new file was created with correct stats DESCRIPTION Same as mi_repair_by_sort but do it multithreaded @@ -2629,7 +2642,7 @@ err: */ int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info, - const char * name, int rep_quick) + const char * name, int rep_quick, my_bool no_copy_stat) { int got_error; uint i,key, total_key_length, istep; @@ -3076,11 +3089,15 @@ err: /* Replace the actual file with the temporary file */ if (new_file >= 0) { + myf flags= 0; + if (param->testflag & T_BACKUP_DATA) + flags |= MY_REDEL_MAKE_BACKUP; + if (no_copy_stat) + flags |= MY_REDEL_NO_COPY_STAT; mysql_file_close(new_file, MYF(0)); info->dfile=new_file= -1; if (change_to_newfile(share->data_file_name, MI_NAME_DEXT, DATA_TMP_EXT, - (param->testflag & T_BACKUP_DATA ? - MYF(MY_REDEL_MAKE_BACKUP): MYF(0))) || + flags) || mi_open_datafile(info,share,name,-1)) got_error=1; } diff --git a/storage/myisam/myisamchk.c b/storage/myisam/myisamchk.c index 8606bd7c748..9360a054872 100644 --- a/storage/myisam/myisamchk.c +++ b/storage/myisam/myisamchk.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -993,14 +993,18 @@ static int myisamchk(MI_CHECK *param, char * filename) info->s->state.key_map, param->force_sort)) { + /* + The new file might not be created with the right stats depending + on how myisamchk is run, so we must copy file stats from old to new. + */ if (param->testflag & T_REP_BY_SORT) - error=mi_repair_by_sort(param,info,filename,rep_quick); + error= mi_repair_by_sort(param, info, filename, rep_quick, FALSE); else - error=mi_repair_parallel(param,info,filename,rep_quick); + error= mi_repair_parallel(param, info, filename, rep_quick, FALSE); state_updated=1; } else if (param->testflag & T_REP_ANY) - error=mi_repair(param, info,filename,rep_quick); + error= mi_repair(param, info, filename, rep_quick, FALSE); } if (!error && param->testflag & T_SORT_RECORDS) { @@ -1040,12 +1044,12 @@ static int myisamchk(MI_CHECK *param, char * filename) { if (param->verbose) puts("Table had a compressed index; We must now recreate the index"); - error=mi_repair_by_sort(param,info,filename,1); + error= mi_repair_by_sort(param, info, filename, 1, FALSE); } } } if (!error && param->testflag & T_SORT_INDEX) - error=mi_sort_index(param,info,filename); + error= mi_sort_index(param, info, filename, FALSE); if (!error) share->state.changed&= ~(STATE_CHANGED | STATE_CRASHED | STATE_CRASHED_ON_REPAIR); From 8dc642112c83c73969f37dbb12b9fe8f546fd42a Mon Sep 17 00:00:00 2001 From: Sivert Sorumgard Date: Mon, 22 Aug 2016 14:30:02 +0200 Subject: [PATCH 005/258] Bug#24388753: PRIVILEGE ESCALATION USING MYSQLD_SAFE [This is the 5.5/5.6 version of the bugfix]. The problem was that it was possible to write log files ending in .ini/.cnf that later could be parsed as an options file. This made it possible for users to specify startup options without the permissions to do so. This patch fixes the problem by disallowing general query log and slow query log to be written to files ending in .ini and .cnf. --- sql/log.cc | 89 +++++++++++++++++++++++++++++++++++++++++++++++-- sql/log.h | 10 ++++++ sql/mysqld.cc | 18 +++++++++- sql/sys_vars.cc | 25 +++++++++----- 4 files changed, 131 insertions(+), 11 deletions(-) diff --git a/sql/log.cc b/sql/log.cc index 50d7762af6d..493aae8f2ff 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -2293,6 +2293,77 @@ bool MYSQL_LOG::init_and_set_log_file_name(const char *log_name, } +bool is_valid_log_name(const char *name, size_t len) +{ + if (len > 3) + { + const char *tail= name + len - 4; + if (my_strcasecmp(system_charset_info, tail, ".ini") == 0 || + my_strcasecmp(system_charset_info, tail, ".cnf") == 0) + { + return false; + } + } + return true; +} + + +/** + Get the real log file name, and possibly reopen file. + + Use realpath() to get the path with symbolic links + expanded. Then, close the file, and reopen the real path using the + O_NOFOLLOW flag. This will reject following symbolic links. + + @param file File descriptor. + @param log_file_key Key for P_S instrumentation. + @param open_flags Flags to use for opening the file. + @param opened_file_name Name of the open fd. + + @retval file descriptor to open file with 'real_file_name', or '-1' + in case of errors. +*/ + +#ifndef _WIN32 +static File mysql_file_real_name_reopen(File file, +#ifdef HAVE_PSI_INTERFACE + PSI_file_key log_file_key, +#endif + int open_flags, + const char *opened_file_name) +{ + DBUG_ASSERT(file); + DBUG_ASSERT(opened_file_name); + + /* Buffer for realpath must have capacity for PATH_MAX. */ + char real_file_name[PATH_MAX]; + + /* Get realpath, validate, open realpath with O_NOFOLLOW. */ + if (realpath(opened_file_name, real_file_name) == NULL) + { + (void) mysql_file_close(file, MYF(0)); + return -1; + } + + if (mysql_file_close(file, MYF(0))) + return -1; + + if (strlen(real_file_name) > FN_REFLEN) + return -1; + + if (!is_valid_log_name(real_file_name, strlen(real_file_name))) + { + sql_print_error("Invalid log file name after expanding symlinks: '%s'", + real_file_name); + return -1; + } + + return mysql_file_open(log_file_key, real_file_name, + open_flags | O_NOFOLLOW, + MYF(MY_WME | ME_WAITTANG)); +} +#endif // _WIN32 + /* Open a (new) log file. @@ -2358,8 +2429,22 @@ bool MYSQL_LOG::open( if ((file= mysql_file_open(log_file_key, log_file_name, open_flags, - MYF(MY_WME | ME_WAITTANG))) < 0 || - init_io_cache(&log_file, file, IO_SIZE, io_cache_type, + MYF(MY_WME | ME_WAITTANG))) < 0) + goto err; + +#ifndef _WIN32 + /* Reopen and validate path. */ + if ((log_type_arg == LOG_UNKNOWN || log_type_arg == LOG_NORMAL) && + (file= mysql_file_real_name_reopen(file, +#ifdef HAVE_PSI_INTERFACE + log_file_key, +#endif + open_flags, + log_file_name)) < 0) + goto err; +#endif // _WIN32 + + if (init_io_cache(&log_file, file, IO_SIZE, io_cache_type, mysql_file_tell(file, MYF(MY_WME)), 0, MYF(MY_WME | MY_NABP | ((log_type == LOG_BIN) ? MY_WAIT_IF_FULL : 0)))) diff --git a/sql/log.h b/sql/log.h index b5e751386a6..d3ecba41964 100644 --- a/sql/log.h +++ b/sql/log.h @@ -717,6 +717,16 @@ File open_binlog(IO_CACHE *log, const char *log_file_name, char *make_log_name(char *buff, const char *name, const char* log_ext); +/** + Check given log name against certain blacklisted names/extensions. + + @param name Log name to check + @param len Length of log name + + @returns true if name is valid, false otherwise. +*/ +bool is_valid_log_name(const char *name, size_t len); + extern MYSQL_PLUGIN_IMPORT MYSQL_BIN_LOG mysql_bin_log; extern LOGGER logger; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index a2532ceddd3..e979ea1b731 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify @@ -3512,6 +3512,22 @@ static int init_common_variables() "--log-slow-queries option, log tables are used. " "To enable logging to files use the --log-output=file option."); + if (opt_logname && + !is_valid_log_name(opt_logname, strlen(opt_logname))) + { + sql_print_error("Invalid value for --general_log_file: %s", + opt_logname); + return 1; + } + + if (opt_slow_logname && + !is_valid_log_name(opt_slow_logname, strlen(opt_slow_logname))) + { + sql_print_error("Invalid value for --slow_query_log_file: %s", + opt_slow_logname); + return 1; + } + #define FIX_LOG_VAR(VAR, ALT) \ if (!VAR || !*VAR) \ { \ diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index b0fa7f9a341..d08cb4f8ca8 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -2810,6 +2810,14 @@ static bool check_log_path(sys_var *self, THD *thd, set_var *var) if (!var->save_result.string_value.str) return true; + if (!is_valid_log_name(var->save_result.string_value.str, + var->save_result.string_value.length)) + { + my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), + self->name.str, var->save_result.string_value.str); + return true; + } + if (var->save_result.string_value.length > FN_REFLEN) { // path is too long my_error(ER_PATH_LENGTH, MYF(0), self->name.str); @@ -2856,7 +2864,7 @@ static bool check_log_path(sys_var *self, THD *thd, set_var *var) return false; } static bool fix_log(char** logname, const char* default_logname, - const char*ext, bool enabled, void (*reopen)(char*)) + const char*ext, bool enabled, bool (*reopen)(char*)) { if (!*logname) // SET ... = DEFAULT { @@ -2868,16 +2876,17 @@ static bool fix_log(char** logname, const char* default_logname, } logger.lock_exclusive(); mysql_mutex_unlock(&LOCK_global_system_variables); + bool error= false; if (enabled) - reopen(*logname); + error= reopen(*logname); logger.unlock(); mysql_mutex_lock(&LOCK_global_system_variables); - return false; + return error; } -static void reopen_general_log(char* name) +static bool reopen_general_log(char* name) { logger.get_log_file_handler()->close(0); - logger.get_log_file_handler()->open_query_log(name); + return logger.get_log_file_handler()->open_query_log(name); } static bool fix_general_log_file(sys_var *self, THD *thd, enum_var_type type) { @@ -2890,10 +2899,10 @@ static Sys_var_charptr Sys_general_log_path( IN_FS_CHARSET, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_log_path), ON_UPDATE(fix_general_log_file)); -static void reopen_slow_log(char* name) +static bool reopen_slow_log(char* name) { logger.get_slow_log_file_handler()->close(0); - logger.get_slow_log_file_handler()->open_slow_log(name); + return logger.get_slow_log_file_handler()->open_slow_log(name); } static bool fix_slow_log_file(sys_var *self, THD *thd, enum_var_type type) { From 55a2babcefc9a9f46534f8e6e4b5ca12d94c1105 Mon Sep 17 00:00:00 2001 From: Jon Olav Hauglid Date: Fri, 19 Aug 2016 12:06:16 +0200 Subject: [PATCH 006/258] Bug#24400628: DEBUG ASSETION KICKS IN WHEN LONG SUBPARTITION NAME IS USED IN CREATE TABLE The problem was that using a very long subpartition name could lead to the server exiting abnormally. This patch fixes the problem by reporting ER_TOO_LONG_IDENT if a name with more than 64 characters are used as partition and subpartition name. --- sql/sql_yacc.yy | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index b8ddc8bd49f..2ca36e23652 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -4655,6 +4655,12 @@ part_name: { partition_info *part_info= Lex->part_info; partition_element *p_elem= part_info->curr_part_elem; + if (check_string_char_length(&$1, "", NAME_CHAR_LEN, + system_charset_info, true)) + { + my_error(ER_TOO_LONG_IDENT, MYF(0), $1.str); + MYSQL_YYABORT; + } p_elem->partition_name= $1.str; } ; @@ -4949,7 +4955,15 @@ sub_part_definition: sub_name: ident_or_text - { Lex->part_info->curr_part_elem->partition_name= $1.str; } + { + if (check_string_char_length(&$1, "", NAME_CHAR_LEN, + system_charset_info, true)) + { + my_error(ER_TOO_LONG_IDENT, MYF(0), $1.str); + MYSQL_YYABORT; + } + Lex->part_info->curr_part_elem->partition_name= $1.str; + } ; opt_part_options: From 97fad8518bdce19938fdf55cbb5858e31e9ac464 Mon Sep 17 00:00:00 2001 From: Kailasnath Nagarkar Date: Fri, 26 Aug 2016 11:11:27 +0530 Subject: [PATCH 007/258] Bug #23303485 : HANDLE_FATAL_SIGNAL (SIG=11) IN SUBSELECT_UNION_ENGINE::NO_ROWS This patch is specific for mysql-5.5 ISSUE: When max_join_size is used and union query results in evaluation of tuples greater than max_join_size, the join object is not created, and is set to NULL. However, this join object is further dereferenced by union logic to determine if query resulted in any number of rows being returned. Since, the object is NULL, it results in program terminating abnormally. SOLUTION: Added check to verify if join object is created. If join object is created, it will be used to determine if query resulted in any number of rows. Else, when join object is not created, we return 'false' indicating that there were no rows for the query. --- sql/item_subselect.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 43af0b5a3f6..21c897da2be 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -1789,8 +1789,12 @@ bool subselect_union_engine::is_executed() const bool subselect_union_engine::no_rows() { + bool rows_present= false; + /* Check if we got any rows when reading UNION result from temp. table: */ - return test(!unit->fake_select_lex->join->send_records); + if (unit->fake_select_lex->join) + rows_present= test(!unit->fake_select_lex->join->send_records); + return rows_present; } void subselect_uniquesubquery_engine::cleanup() From 7603ac53c86ea1a31a1511b5d630a24faf5de58c Mon Sep 17 00:00:00 2001 From: Terje Rosten Date: Fri, 26 Aug 2016 11:25:40 +0200 Subject: [PATCH 008/258] Bug#24464380 PRIVILEGE ESCALATION USING MYSQLD_SAFE Post push fix: Solaris 10 /bin/sh don't understand $(). --- scripts/mysqld_safe.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 11b692ec928..1b30a3bb15b 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -321,7 +321,7 @@ set_malloc_lib() { if [ "$malloc_lib" = tcmalloc ]; then malloc_lib= - for libdir in $(echo $malloc_dirs); do + for libdir in `echo $malloc_dirs`; do for flavor in _minimal '' _and_profiler _debug; do tmp="$libdir/libtcmalloc$flavor.so" #log_notice "DEBUG: Checking for malloc lib '$tmp'" @@ -348,7 +348,7 @@ set_malloc_lib() { fi # Restrict to a the list in $malloc_dirs above - case "$(dirname "$malloc_lib")" in + case "`dirname "$malloc_lib"`" in /usr/lib) ;; /usr/lib64) ;; /usr/lib/i386-linux-gnu) ;; From aeab9d6b417871a2893df710c690be0de53e0c7a Mon Sep 17 00:00:00 2001 From: Arun Kuruvila Date: Mon, 29 Aug 2016 11:41:50 +0530 Subject: [PATCH 009/258] Bug#23303391: HANDLE_FATAL_SIGNAL (SIG=11) IN ALLOC_QUERY USING CHARACTER-SET-SERVER=UTF16 This is a backport of Bug#15985752 to mysql-5.5 --- sql/mysqld.cc | 21 ++++++++++++++++++--- sql/sql_acl.cc | 10 ++++++++-- sql/sql_connect.cc | 10 +++++++++- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index e979ea1b731..d8edbe4b637 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3482,9 +3482,24 @@ static int init_common_variables() /* Set collactions that depends on the default collation */ global_system_variables.collation_server= default_charset_info; global_system_variables.collation_database= default_charset_info; - global_system_variables.collation_connection= default_charset_info; - global_system_variables.character_set_results= default_charset_info; - global_system_variables.character_set_client= default_charset_info; + + if (is_supported_parser_charset(default_charset_info)) + { + global_system_variables.collation_connection= default_charset_info; + global_system_variables.character_set_results= default_charset_info; + global_system_variables.character_set_client= default_charset_info; + } + else + { + sql_print_information("'%s' can not be used as client character set. " + "'%s' will be used as default client character set.", + default_charset_info->csname, + my_charset_latin1.csname); + global_system_variables.collation_connection= &my_charset_latin1; + global_system_variables.character_set_results= &my_charset_latin1; + global_system_variables.character_set_client= &my_charset_latin1; + } + if (!(character_set_filesystem= get_charset_by_csname(character_set_filesystem_name, MY_CS_PRIMARY, MYF(MY_WME)))) diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 5ff6f38d18d..99394878a55 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -8789,7 +8789,10 @@ static ulong parse_client_handshake_packet(MPVIO_EXT *mpvio, { mpvio->client_capabilities= uint4korr(end); mpvio->max_client_packet_length= 0xfffff; - charset_code= default_charset_info->number; + charset_code= global_system_variables.character_set_client->number; + sql_print_warning("Client failed to provide its character set. " + "'%s' will be used as client character set.", + global_system_variables.character_set_client->csname); if (mpvio->charset_adapter->init_client_charset(charset_code)) return packet_error; goto skip_to_ssl; @@ -8826,7 +8829,10 @@ static ulong parse_client_handshake_packet(MPVIO_EXT *mpvio, Old clients didn't have their own charset. Instead the assumption was that they used what ever the server used. */ - charset_code= default_charset_info->number; + charset_code= global_system_variables.character_set_client->number; + sql_print_warning("Client failed to provide its character set. " + "'%s' will be used as client character set.", + global_system_variables.character_set_client->csname); } DBUG_EXECUTE_IF("host_error_charset", { diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc index ed0b20a0e34..f1ee34f3d09 100644 --- a/sql/sql_connect.cc +++ b/sql/sql_connect.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -431,6 +431,14 @@ bool thd_init_client_charset(THD *thd, uint cs_number) global_system_variables.character_set_client->name, cs->name)) { + if (!is_supported_parser_charset( + global_system_variables.character_set_client)) + { + /* Disallow non-supported parser character sets: UCS2, UTF16, UTF32 */ + my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), "character_set_client", + global_system_variables.character_set_client->csname); + return true; + } thd->variables.character_set_client= global_system_variables.character_set_client; thd->variables.collation_connection= From 91ddaff991d745d6b2308342a2555d302a13a481 Mon Sep 17 00:00:00 2001 From: Kailasnath Nagarkar Date: Fri, 2 Sep 2016 15:13:52 +0530 Subject: [PATCH 010/258] Bug #24489302 : ZEROFILL CAUSE MEMORY-CORRUPTION AND CRASH ISSUE: Heap corruption occurs and hence mysql server terminates abnormally in String variable destructor when ZEROFILL is used for a column. Though the abnormal termination is observed in the String destructor, heap corruption occurs at earlier stage when function Field_num::prepend_zeros() is called. This function, prepends zeros to the actual data and works on entire field length. Since the allocated memory could be less than the field length, heap corruption occurs. Later, when String destructor tries to free heap, the server terminates abnormally since the heap is corrupt. SOLUTION: In Field_num::prepend_zeros() function, if allocated memory is less than the field length, re-allocate memory enough to hold field length size data. --- sql/field.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/sql/field.cc b/sql/field.cc index 3ca072e7771..15571afefb8 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -1130,12 +1130,15 @@ void Field_num::prepend_zeros(String *value) int diff; if ((diff= (int) (field_length - value->length())) > 0) { - bmove_upp((uchar*) value->ptr()+field_length, - (uchar*) value->ptr()+value->length(), - value->length()); - bfill((uchar*) value->ptr(),diff,'0'); - value->length(field_length); - (void) value->c_ptr_quick(); // Avoid warnings in purify + const bool error= value->realloc(field_length); + if (!error) + { + bmove_upp((uchar*) value->ptr()+field_length, + (uchar*) value->ptr()+value->length(), + value->length()); + bfill((uchar*) value->ptr(),diff,'0'); + value->length(field_length); + } } } From 0d43e570ba66618dbe8078e11844b11e53af22f1 Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Thu, 1 Sep 2016 13:30:44 +0300 Subject: [PATCH 011/258] Bug #24496214: MISLEADING ERROR EXECUTING MYSQLADMIN SHUTDOWN AGAINST A SERVER RUNNING FIREWALL mysqladmin shutdown will try to extract the server's pid file before executing the actual shutdown command. It will do that by executing a SHOW VARIABLES query and processing the result. However if that query fails it print a (somewhat confusing) error mesasage and will still continue to do the shutdown command. If that passes then the mysqladmin user will get an error but the shutdown will still be successful. This is confusing so the error message text is changed to say that this is a non-fatal error and execution continues. No test case added since it'd require a selective query failure device that's not available in 5.5. --- client/mysqladmin.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/mysqladmin.cc b/client/mysqladmin.cc index f0ae2c12137..c03b37ab165 100644 --- a/client/mysqladmin.cc +++ b/client/mysqladmin.cc @@ -1438,8 +1438,10 @@ static my_bool get_pidfile(MYSQL *mysql, char *pidfile) if (mysql_query(mysql, "SHOW VARIABLES LIKE 'pid_file'")) { - my_printf_error(0, "query failed; error: '%s'", error_flags, - mysql_error(mysql)); + my_printf_error(mysql_errno(mysql), + "The query to get the server's pid file failed," + " error: '%s'. Continuing.", error_flags, + mysql_error(mysql)); } result = mysql_store_result(mysql); if (result) From d933b881d4509b30899fee4b4eaa4466c38efeca Mon Sep 17 00:00:00 2001 From: Bjorn Munch Date: Mon, 26 Sep 2016 14:42:56 +0200 Subject: [PATCH 012/258] Raise version number after cloning 5.5.53 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index d44c8b28006..4f1ecb3a197 100644 --- a/VERSION +++ b/VERSION @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MINOR=5 -MYSQL_VERSION_PATCH=53 +MYSQL_VERSION_PATCH=54 MYSQL_VERSION_EXTRA= From 99c0fdb5a8af4104efed6ea47df850abf4c59530 Mon Sep 17 00:00:00 2001 From: Robert Golebiowski Date: Tue, 27 Sep 2016 11:17:38 +0200 Subject: [PATCH 013/258] Bug #24740291: YASSL UPDATE TO 2.4.2 --- extra/yassl/README | 18 +++ extra/yassl/certs/dsa-cert.pem | 38 ++--- extra/yassl/include/openssl/ssl.h | 2 +- extra/yassl/src/ssl.cpp | 60 +++++--- extra/yassl/taocrypt/include/aes.hpp | 58 ++++++++ extra/yassl/taocrypt/include/integer.hpp | 3 + extra/yassl/taocrypt/src/aes.cpp | 172 ++++++++++++++--------- extra/yassl/taocrypt/src/asn.cpp | 24 ++-- extra/yassl/taocrypt/src/dsa.cpp | 16 ++- extra/yassl/taocrypt/test/test.cpp | 3 + extra/yassl/testsuite/test.hpp | 2 +- 11 files changed, 274 insertions(+), 122 deletions(-) diff --git a/extra/yassl/README b/extra/yassl/README index b5eb88824fb..a3d4f60f561 100644 --- a/extra/yassl/README +++ b/extra/yassl/README @@ -12,6 +12,24 @@ before calling SSL_new(); *** end Note *** +yaSSL Release notes, version 2.4.2 (9/22/2016) + This release of yaSSL fixes a medium security vulnerability. A fix for + potential AES side channel leaks is included that a local user monitoring + the same CPU core cache could exploit. VM users, hyper-threading users, + and users where potential attackers have access to the CPU cache will need + to update if they utilize AES. + + DSA padding fixes for unusual sizes is included as well. Users with DSA + certficiates should update. + +yaSSL Release notes, version 2.4.0 (5/20/2016) + This release of yaSSL fixes the OpenSSL compatibility function + SSL_CTX_load_verify_locations() when using the path directory to allow + unlimited path sizes. Minor Windows build fixes are included. + No high level security fixes in this version but we always recommend + updating. + + yaSSL Release notes, version 2.3.9b (2/03/2016) This release of yaSSL fixes the OpenSSL compatibility function X509_NAME_get_index_by_NID() to use the actual index of the common name diff --git a/extra/yassl/certs/dsa-cert.pem b/extra/yassl/certs/dsa-cert.pem index 10d533edc88..10794cbee73 100644 --- a/extra/yassl/certs/dsa-cert.pem +++ b/extra/yassl/certs/dsa-cert.pem @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDqzCCA2ugAwIBAgIJAMGqrgDU6DyhMAkGByqGSM44BAMwgY4xCzAJBgNVBAYT +MIIDrzCCA2+gAwIBAgIJAK1zRM7YFcNjMAkGByqGSM44BAMwgZAxCzAJBgNVBAYT AlVTMQ8wDQYDVQQIDAZPcmVnb24xETAPBgNVBAcMCFBvcnRsYW5kMRAwDgYDVQQK -DAd3b2xmU1NMMRAwDgYDVQQLDAd0ZXN0aW5nMRYwFAYDVQQDDA13d3cueWFzc2wu -Y29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tMB4XDTEzMDQyMjIw -MDk0NFoXDTE2MDExNzIwMDk0NFowgY4xCzAJBgNVBAYTAlVTMQ8wDQYDVQQIDAZP -cmVnb24xETAPBgNVBAcMCFBvcnRsYW5kMRAwDgYDVQQKDAd3b2xmU1NMMRAwDgYD -VQQLDAd0ZXN0aW5nMRYwFAYDVQQDDA13d3cueWFzc2wuY29tMR8wHQYJKoZIhvcN -AQkBFhBpbmZvQHdvbGZzc2wuY29tMIIBuDCCASwGByqGSM44BAEwggEfAoGBAL1R -7koy4IrH6sbh6nDEUUPPKgfhxxLCWCVexF2+qzANEr+hC9M002haJXFOfeS9DyoO -WFbL0qMZOuqv+22CaHnoUWl7q3PjJOAI3JH0P54ZyUPuU1909RzgTdIDp5+ikbr7 -KYjnltL73FQVMbjTZQKthIpPn3MjYcF+4jp2W2zFAhUAkcntYND6MGf+eYzIJDN2 -L7SonHUCgYEAklpxErfqznIZjVvqqHFaq+mgAL5J8QrKVmdhYZh/Y8z4jCjoCA8o -TDoFKxf7s2ZzgaPKvglaEKiYqLqic9qY78DYJswzQMLFvjsF4sFZ+pYCBdWPQI4N -PgxCiznK6Ce+JH9ikSBvMvG+tevjr2UpawDIHX3+AWYaZBZwKADAaboDgYUAAoGB -AJ3LY89yHyvQ/TsQ6zlYbovjbk/ogndsMqPdNUvL4RuPTgJP/caaDDa0XJ7ak6A7 -TJ+QheLNwOXoZPYJC4EGFSDAXpYniGhbWIrVTCGe6lmZDfnx40WXS0kk3m/DHaC0 -3ElLAiybxVGxyqoUfbT3Zv1JwftWMuiqHH5uADhdXuXVo1AwTjAdBgNVHQ4EFgQU -IJjk416o4v8qpH9LBtXlR9v8gccwHwYDVR0jBBgwFoAUIJjk416o4v8qpH9LBtXl -R9v8gccwDAYDVR0TBAUwAwEB/zAJBgcqhkjOOAQDAy8AMCwCFCjGKIdOSV12LcTu -k08owGM6YkO1AhQe+K173VuaO/OsDNsxZlKpyH8+1g== +DAd3b2xmU1NMMRAwDgYDVQQLDAd0ZXN0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz +bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTYwOTIy +MjEyMzA0WhcNMjIwMzE1MjEyMzA0WjCBkDELMAkGA1UEBhMCVVMxDzANBgNVBAgM +Bk9yZWdvbjERMA8GA1UEBwwIUG9ydGxhbmQxEDAOBgNVBAoMB3dvbGZTU0wxEDAO +BgNVBAsMB3Rlc3RpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG +SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCAbgwggEsBgcqhkjOOAQBMIIBHwKB +gQC9Ue5KMuCKx+rG4epwxFFDzyoH4ccSwlglXsRdvqswDRK/oQvTNNNoWiVxTn3k +vQ8qDlhWy9KjGTrqr/ttgmh56FFpe6tz4yTgCNyR9D+eGclD7lNfdPUc4E3SA6ef +opG6+ymI55bS+9xUFTG402UCrYSKT59zI2HBfuI6dltsxQIVAJHJ7WDQ+jBn/nmM +yCQzdi+0qJx1AoGBAJJacRK36s5yGY1b6qhxWqvpoAC+SfEKylZnYWGYf2PM+Iwo +6AgPKEw6BSsX+7Nmc4Gjyr4JWhComKi6onPamO/A2CbMM0DCxb47BeLBWfqWAgXV +j0CODT4MQos5yugnviR/YpEgbzLxvrXr469lKWsAyB19/gFmGmQWcCgAwGm6A4GF +AAKBgQCdy2PPch8r0P07EOs5WG6L425P6IJ3bDKj3TVLy+Ebj04CT/3Gmgw2tFye +2pOgO0yfkIXizcDl6GT2CQuBBhUgwF6WJ4hoW1iK1UwhnupZmQ358eNFl0tJJN5v +wx2gtNxJSwIsm8VRscqqFH2092b9ScH7VjLoqhx+bgA4XV7l1aNQME4wHQYDVR0O +BBYEFCCY5ONeqOL/KqR/SwbV5Ufb/IHHMB8GA1UdIwQYMBaAFCCY5ONeqOL/KqR/ +SwbV5Ufb/IHHMAwGA1UdEwQFMAMBAf8wCQYHKoZIzjgEAwMvADAsAhQRYSCVN/Ge +agV3mffU3qNZ92fI0QIUPH7Jp+iASI7U1ocaYDc10qXGaGY= -----END CERTIFICATE----- diff --git a/extra/yassl/include/openssl/ssl.h b/extra/yassl/include/openssl/ssl.h index 83daf3cc81f..0609dfc0592 100644 --- a/extra/yassl/include/openssl/ssl.h +++ b/extra/yassl/include/openssl/ssl.h @@ -35,7 +35,7 @@ #include "rsa.h" -#define YASSL_VERSION "2.3.9b" +#define YASSL_VERSION "2.4.2" #if defined(__cplusplus) diff --git a/extra/yassl/src/ssl.cpp b/extra/yassl/src/ssl.cpp index cde32df4f43..1925e2f7592 100644 --- a/extra/yassl/src/ssl.cpp +++ b/extra/yassl/src/ssl.cpp @@ -161,7 +161,7 @@ int read_file(SSL_CTX* ctx, const char* file, int format, CertType type) TaoCrypt::DSA_PrivateKey dsaKey; dsaKey.Initialize(dsaSource); - if (rsaSource.GetError().What()) { + if (dsaSource.GetError().What()) { // neither worked ret = SSL_FAILURE; } @@ -784,40 +784,67 @@ int SSL_CTX_load_verify_locations(SSL_CTX* ctx, const char* file, WIN32_FIND_DATA FindFileData; HANDLE hFind; - char name[MAX_PATH + 1]; // directory specification - strncpy(name, path, MAX_PATH - 3); - strncat(name, "\\*", 3); + const int DELIMITER_SZ = 2; + const int DELIMITER_STAR_SZ = 3; + int pathSz = (int)strlen(path); + int nameSz = pathSz + DELIMITER_STAR_SZ + 1; // plus 1 for terminator + char* name = NEW_YS char[nameSz]; // directory specification + memset(name, 0, nameSz); + strncpy(name, path, nameSz - DELIMITER_STAR_SZ - 1); + strncat(name, "\\*", DELIMITER_STAR_SZ); hFind = FindFirstFile(name, &FindFileData); - if (hFind == INVALID_HANDLE_VALUE) return SSL_BAD_PATH; + if (hFind == INVALID_HANDLE_VALUE) { + ysArrayDelete(name); + return SSL_BAD_PATH; + } do { - if (FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY) { - strncpy(name, path, MAX_PATH - 2 - HALF_PATH); - strncat(name, "\\", 2); - strncat(name, FindFileData.cFileName, HALF_PATH); + if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { + int curSz = (int)strlen(FindFileData.cFileName); + if (pathSz + curSz + DELIMITER_SZ + 1 > nameSz) { + ysArrayDelete(name); + // plus 1 for terminator + nameSz = pathSz + curSz + DELIMITER_SZ + 1; + name = NEW_YS char[nameSz]; + } + memset(name, 0, nameSz); + strncpy(name, path, nameSz - curSz - DELIMITER_SZ - 1); + strncat(name, "\\", DELIMITER_SZ); + strncat(name, FindFileData.cFileName, + nameSz - pathSz - DELIMITER_SZ - 1); ret = read_file(ctx, name, SSL_FILETYPE_PEM, CA); } } while (ret == SSL_SUCCESS && FindNextFile(hFind, &FindFileData)); + ysArrayDelete(name); FindClose(hFind); #else // _WIN32 - - const int MAX_PATH = 260; - DIR* dir = opendir(path); if (!dir) return SSL_BAD_PATH; struct dirent* entry; struct stat buf; - char name[MAX_PATH + 1]; + const int DELIMITER_SZ = 1; + int pathSz = (int)strlen(path); + int nameSz = pathSz + DELIMITER_SZ + 1; //plus 1 for null terminator + char* name = NEW_YS char[nameSz]; // directory specification while (ret == SSL_SUCCESS && (entry = readdir(dir))) { - strncpy(name, path, MAX_PATH - 1 - HALF_PATH); - strncat(name, "/", 1); - strncat(name, entry->d_name, HALF_PATH); + int curSz = (int)strlen(entry->d_name); + if (pathSz + curSz + DELIMITER_SZ + 1 > nameSz) { + ysArrayDelete(name); + nameSz = pathSz + DELIMITER_SZ + curSz + 1; + name = NEW_YS char[nameSz]; + } + memset(name, 0, nameSz); + strncpy(name, path, nameSz - curSz - 1); + strncat(name, "/", DELIMITER_SZ); + strncat(name, entry->d_name, nameSz - pathSz - DELIMITER_SZ - 1); + if (stat(name, &buf) < 0) { + ysArrayDelete(name); closedir(dir); return SSL_BAD_STAT; } @@ -826,6 +853,7 @@ int SSL_CTX_load_verify_locations(SSL_CTX* ctx, const char* file, ret = read_file(ctx, name, SSL_FILETYPE_PEM, CA); } + ysArrayDelete(name); closedir(dir); #endif diff --git a/extra/yassl/taocrypt/include/aes.hpp b/extra/yassl/taocrypt/include/aes.hpp index 01763033156..bccf6e73fc7 100644 --- a/extra/yassl/taocrypt/include/aes.hpp +++ b/extra/yassl/taocrypt/include/aes.hpp @@ -60,6 +60,7 @@ private: static const word32 Te[5][256]; static const word32 Td[5][256]; + static const byte CTd4[256]; static const word32* Te0; static const word32* Te1; @@ -80,11 +81,68 @@ private: void ProcessAndXorBlock(const byte*, const byte*, byte*) const; + word32 PreFetchTe() const; + word32 PreFetchTd() const; + word32 PreFetchCTd4() const; + AES(const AES&); // hide copy AES& operator=(const AES&); // and assign }; +#if defined(__x86_64__) || defined(_M_X64) || \ + (defined(__ILP32__) && (__ILP32__ >= 1)) + #define TC_CACHE_LINE_SZ 64 +#else + /* default cache line size */ + #define TC_CACHE_LINE_SZ 32 +#endif + +inline word32 AES::PreFetchTe() const +{ + word32 x = 0; + + /* 4 tables of 256 entries */ + for (int i = 0; i < 4; i++) { + /* each entry is 4 bytes */ + for (int j = 0; j < 256; j += TC_CACHE_LINE_SZ/4) { + x &= Te[i][j]; + } + } + + return x; +} + + +inline word32 AES::PreFetchTd() const +{ + word32 x = 0; + + /* 4 tables of 256 entries */ + for (int i = 0; i < 4; i++) { + /* each entry is 4 bytes */ + for (int j = 0; j < 256; j += TC_CACHE_LINE_SZ/4) { + x &= Td[i][j]; + } + } + + return x; +} + + +inline word32 AES::PreFetchCTd4() const +{ + word32 x = 0; + int i; + + for (i = 0; i < 256; i += TC_CACHE_LINE_SZ) { + x &= CTd4[i]; + } + + return x; +} + + typedef BlockCipher AES_ECB_Encryption; typedef BlockCipher AES_ECB_Decryption; diff --git a/extra/yassl/taocrypt/include/integer.hpp b/extra/yassl/taocrypt/include/integer.hpp index 75a3ee3d3df..05fe189fd58 100644 --- a/extra/yassl/taocrypt/include/integer.hpp +++ b/extra/yassl/taocrypt/include/integer.hpp @@ -119,6 +119,9 @@ namespace TaoCrypt { +#ifdef _WIN32 + #undef max // avoid name clash +#endif // general MAX template inline const T& max(const T& a, const T& b) diff --git a/extra/yassl/taocrypt/src/aes.cpp b/extra/yassl/taocrypt/src/aes.cpp index ee4c7a6e8a1..3fcf80ac202 100644 --- a/extra/yassl/taocrypt/src/aes.cpp +++ b/extra/yassl/taocrypt/src/aes.cpp @@ -109,10 +109,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/) { temp = rk[3]; rk[4] = rk[0] ^ - (Te4[GETBYTE(temp, 2)] & 0xff000000) ^ - (Te4[GETBYTE(temp, 1)] & 0x00ff0000) ^ - (Te4[GETBYTE(temp, 0)] & 0x0000ff00) ^ - (Te4[GETBYTE(temp, 3)] & 0x000000ff) ^ + (Te2[GETBYTE(temp, 2)] & 0xff000000) ^ + (Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^ + (Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^ + (Te1[GETBYTE(temp, 3)] & 0x000000ff) ^ rcon_[i]; rk[5] = rk[1] ^ rk[4]; rk[6] = rk[2] ^ rk[5]; @@ -128,10 +128,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/) { temp = rk[ 5]; rk[ 6] = rk[ 0] ^ - (Te4[GETBYTE(temp, 2)] & 0xff000000) ^ - (Te4[GETBYTE(temp, 1)] & 0x00ff0000) ^ - (Te4[GETBYTE(temp, 0)] & 0x0000ff00) ^ - (Te4[GETBYTE(temp, 3)] & 0x000000ff) ^ + (Te2[GETBYTE(temp, 2)] & 0xff000000) ^ + (Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^ + (Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^ + (Te1[GETBYTE(temp, 3)] & 0x000000ff) ^ rcon_[i]; rk[ 7] = rk[ 1] ^ rk[ 6]; rk[ 8] = rk[ 2] ^ rk[ 7]; @@ -149,10 +149,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/) { temp = rk[ 7]; rk[ 8] = rk[ 0] ^ - (Te4[GETBYTE(temp, 2)] & 0xff000000) ^ - (Te4[GETBYTE(temp, 1)] & 0x00ff0000) ^ - (Te4[GETBYTE(temp, 0)] & 0x0000ff00) ^ - (Te4[GETBYTE(temp, 3)] & 0x000000ff) ^ + (Te2[GETBYTE(temp, 2)] & 0xff000000) ^ + (Te3[GETBYTE(temp, 1)] & 0x00ff0000) ^ + (Te0[GETBYTE(temp, 0)] & 0x0000ff00) ^ + (Te1[GETBYTE(temp, 3)] & 0x000000ff) ^ rcon_[i]; rk[ 9] = rk[ 1] ^ rk[ 8]; rk[10] = rk[ 2] ^ rk[ 9]; @@ -161,10 +161,10 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/) break; temp = rk[11]; rk[12] = rk[ 4] ^ - (Te4[GETBYTE(temp, 3)] & 0xff000000) ^ - (Te4[GETBYTE(temp, 2)] & 0x00ff0000) ^ - (Te4[GETBYTE(temp, 1)] & 0x0000ff00) ^ - (Te4[GETBYTE(temp, 0)] & 0x000000ff); + (Te2[GETBYTE(temp, 3)] & 0xff000000) ^ + (Te3[GETBYTE(temp, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(temp, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(temp, 0)] & 0x000000ff); rk[13] = rk[ 5] ^ rk[12]; rk[14] = rk[ 6] ^ rk[13]; rk[15] = rk[ 7] ^ rk[14]; @@ -191,25 +191,25 @@ void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/) for (i = 1; i < rounds_; i++) { rk += 4; rk[0] = - Td0[Te4[GETBYTE(rk[0], 3)] & 0xff] ^ - Td1[Te4[GETBYTE(rk[0], 2)] & 0xff] ^ - Td2[Te4[GETBYTE(rk[0], 1)] & 0xff] ^ - Td3[Te4[GETBYTE(rk[0], 0)] & 0xff]; + Td0[Te1[GETBYTE(rk[0], 3)] & 0xff] ^ + Td1[Te1[GETBYTE(rk[0], 2)] & 0xff] ^ + Td2[Te1[GETBYTE(rk[0], 1)] & 0xff] ^ + Td3[Te1[GETBYTE(rk[0], 0)] & 0xff]; rk[1] = - Td0[Te4[GETBYTE(rk[1], 3)] & 0xff] ^ - Td1[Te4[GETBYTE(rk[1], 2)] & 0xff] ^ - Td2[Te4[GETBYTE(rk[1], 1)] & 0xff] ^ - Td3[Te4[GETBYTE(rk[1], 0)] & 0xff]; + Td0[Te1[GETBYTE(rk[1], 3)] & 0xff] ^ + Td1[Te1[GETBYTE(rk[1], 2)] & 0xff] ^ + Td2[Te1[GETBYTE(rk[1], 1)] & 0xff] ^ + Td3[Te1[GETBYTE(rk[1], 0)] & 0xff]; rk[2] = - Td0[Te4[GETBYTE(rk[2], 3)] & 0xff] ^ - Td1[Te4[GETBYTE(rk[2], 2)] & 0xff] ^ - Td2[Te4[GETBYTE(rk[2], 1)] & 0xff] ^ - Td3[Te4[GETBYTE(rk[2], 0)] & 0xff]; + Td0[Te1[GETBYTE(rk[2], 3)] & 0xff] ^ + Td1[Te1[GETBYTE(rk[2], 2)] & 0xff] ^ + Td2[Te1[GETBYTE(rk[2], 1)] & 0xff] ^ + Td3[Te1[GETBYTE(rk[2], 0)] & 0xff]; rk[3] = - Td0[Te4[GETBYTE(rk[3], 3)] & 0xff] ^ - Td1[Te4[GETBYTE(rk[3], 2)] & 0xff] ^ - Td2[Te4[GETBYTE(rk[3], 1)] & 0xff] ^ - Td3[Te4[GETBYTE(rk[3], 0)] & 0xff]; + Td0[Te1[GETBYTE(rk[3], 3)] & 0xff] ^ + Td1[Te1[GETBYTE(rk[3], 2)] & 0xff] ^ + Td2[Te1[GETBYTE(rk[3], 1)] & 0xff] ^ + Td3[Te1[GETBYTE(rk[3], 0)] & 0xff]; } } } @@ -244,6 +244,7 @@ void AES::encrypt(const byte* inBlock, const byte* xorBlock, s2 ^= rk[2]; s3 ^= rk[3]; + s0 |= PreFetchTe(); /* * Nr - 1 full rounds: */ @@ -312,28 +313,28 @@ void AES::encrypt(const byte* inBlock, const byte* xorBlock, */ s0 = - (Te4[GETBYTE(t0, 3)] & 0xff000000) ^ - (Te4[GETBYTE(t1, 2)] & 0x00ff0000) ^ - (Te4[GETBYTE(t2, 1)] & 0x0000ff00) ^ - (Te4[GETBYTE(t3, 0)] & 0x000000ff) ^ + (Te2[GETBYTE(t0, 3)] & 0xff000000) ^ + (Te3[GETBYTE(t1, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(t2, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(t3, 0)] & 0x000000ff) ^ rk[0]; s1 = - (Te4[GETBYTE(t1, 3)] & 0xff000000) ^ - (Te4[GETBYTE(t2, 2)] & 0x00ff0000) ^ - (Te4[GETBYTE(t3, 1)] & 0x0000ff00) ^ - (Te4[GETBYTE(t0, 0)] & 0x000000ff) ^ + (Te2[GETBYTE(t1, 3)] & 0xff000000) ^ + (Te3[GETBYTE(t2, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(t3, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(t0, 0)] & 0x000000ff) ^ rk[1]; s2 = - (Te4[GETBYTE(t2, 3)] & 0xff000000) ^ - (Te4[GETBYTE(t3, 2)] & 0x00ff0000) ^ - (Te4[GETBYTE(t0, 1)] & 0x0000ff00) ^ - (Te4[GETBYTE(t1, 0)] & 0x000000ff) ^ + (Te2[GETBYTE(t2, 3)] & 0xff000000) ^ + (Te3[GETBYTE(t3, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(t0, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(t1, 0)] & 0x000000ff) ^ rk[2]; s3 = - (Te4[GETBYTE(t3, 3)] & 0xff000000) ^ - (Te4[GETBYTE(t0, 2)] & 0x00ff0000) ^ - (Te4[GETBYTE(t1, 1)] & 0x0000ff00) ^ - (Te4[GETBYTE(t2, 0)] & 0x000000ff) ^ + (Te2[GETBYTE(t3, 3)] & 0xff000000) ^ + (Te3[GETBYTE(t0, 2)] & 0x00ff0000) ^ + (Te0[GETBYTE(t1, 1)] & 0x0000ff00) ^ + (Te1[GETBYTE(t2, 0)] & 0x000000ff) ^ rk[3]; @@ -358,6 +359,8 @@ void AES::decrypt(const byte* inBlock, const byte* xorBlock, s2 ^= rk[2]; s3 ^= rk[3]; + s0 |= PreFetchTd(); + /* * Nr - 1 full rounds: */ @@ -423,29 +426,32 @@ void AES::decrypt(const byte* inBlock, const byte* xorBlock, * apply last round and * map cipher state to byte array block: */ + + t0 |= PreFetchCTd4(); + s0 = - (Td4[GETBYTE(t0, 3)] & 0xff000000) ^ - (Td4[GETBYTE(t3, 2)] & 0x00ff0000) ^ - (Td4[GETBYTE(t2, 1)] & 0x0000ff00) ^ - (Td4[GETBYTE(t1, 0)] & 0x000000ff) ^ + ((word32)CTd4[GETBYTE(t0, 3)] << 24) ^ + ((word32)CTd4[GETBYTE(t3, 2)] << 16) ^ + ((word32)CTd4[GETBYTE(t2, 1)] << 8) ^ + ((word32)CTd4[GETBYTE(t1, 0)]) ^ rk[0]; s1 = - (Td4[GETBYTE(t1, 3)] & 0xff000000) ^ - (Td4[GETBYTE(t0, 2)] & 0x00ff0000) ^ - (Td4[GETBYTE(t3, 1)] & 0x0000ff00) ^ - (Td4[GETBYTE(t2, 0)] & 0x000000ff) ^ + ((word32)CTd4[GETBYTE(t1, 3)] << 24) ^ + ((word32)CTd4[GETBYTE(t0, 2)] << 16) ^ + ((word32)CTd4[GETBYTE(t3, 1)] << 8) ^ + ((word32)CTd4[GETBYTE(t2, 0)]) ^ rk[1]; s2 = - (Td4[GETBYTE(t2, 3)] & 0xff000000) ^ - (Td4[GETBYTE(t1, 2)] & 0x00ff0000) ^ - (Td4[GETBYTE(t0, 1)] & 0x0000ff00) ^ - (Td4[GETBYTE(t3, 0)] & 0x000000ff) ^ + ((word32)CTd4[GETBYTE(t2, 3)] << 24 ) ^ + ((word32)CTd4[GETBYTE(t1, 2)] << 16 ) ^ + ((word32)CTd4[GETBYTE(t0, 1)] << 8 ) ^ + ((word32)CTd4[GETBYTE(t3, 0)]) ^ rk[2]; s3 = - (Td4[GETBYTE(t3, 3)] & 0xff000000) ^ - (Td4[GETBYTE(t2, 2)] & 0x00ff0000) ^ - (Td4[GETBYTE(t1, 1)] & 0x0000ff00) ^ - (Td4[GETBYTE(t0, 0)] & 0x000000ff) ^ + ((word32)CTd4[GETBYTE(t3, 3)] << 24) ^ + ((word32)CTd4[GETBYTE(t2, 2)] << 16) ^ + ((word32)CTd4[GETBYTE(t1, 1)] << 8) ^ + ((word32)CTd4[GETBYTE(t0, 0)]) ^ rk[3]; gpBlock::Put(xorBlock, outBlock)(s0)(s1)(s2)(s3); @@ -1826,18 +1832,52 @@ const word32 AES::Td[5][256] = { } }; +const byte AES::CTd4[256] = +{ + 0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U, + 0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU, + 0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U, + 0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU, + 0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU, + 0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU, + 0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U, + 0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U, + 0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U, + 0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U, + 0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU, + 0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U, + 0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU, + 0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U, + 0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U, + 0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU, + 0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU, + 0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U, + 0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U, + 0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU, + 0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U, + 0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU, + 0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U, + 0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U, + 0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U, + 0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU, + 0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU, + 0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU, + 0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U, + 0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U, + 0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U, + 0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU, +}; + const word32* AES::Te0 = AES::Te[0]; const word32* AES::Te1 = AES::Te[1]; const word32* AES::Te2 = AES::Te[2]; const word32* AES::Te3 = AES::Te[3]; -const word32* AES::Te4 = AES::Te[4]; const word32* AES::Td0 = AES::Td[0]; const word32* AES::Td1 = AES::Td[1]; const word32* AES::Td2 = AES::Td[2]; const word32* AES::Td3 = AES::Td[3]; -const word32* AES::Td4 = AES::Td[4]; diff --git a/extra/yassl/taocrypt/src/asn.cpp b/extra/yassl/taocrypt/src/asn.cpp index a210d805452..7ff3c7167d2 100644 --- a/extra/yassl/taocrypt/src/asn.cpp +++ b/extra/yassl/taocrypt/src/asn.cpp @@ -1209,17 +1209,17 @@ word32 DecodeDSA_Signature(byte* decoded, const byte* encoded, word32 sz) } word32 rLen = GetLength(source); if (rLen != 20) { - if (rLen == 21) { // zero at front, eat + while (rLen > 20 && source.remaining() > 0) { // zero's at front, eat source.next(); --rLen; } - else if (rLen == 19) { // add zero to front so 20 bytes + if (rLen < 20) { // add zero's to front so 20 bytes + word32 tmpLen = rLen; + while (tmpLen < 20) { decoded[0] = 0; decoded++; + tmpLen++; } - else { - source.SetError(DSA_SZ_E); - return 0; } } memcpy(decoded, source.get_buffer() + source.get_index(), rLen); @@ -1232,17 +1232,17 @@ word32 DecodeDSA_Signature(byte* decoded, const byte* encoded, word32 sz) } word32 sLen = GetLength(source); if (sLen != 20) { - if (sLen == 21) { - source.next(); // zero at front, eat + while (sLen > 20 && source.remaining() > 0) { + source.next(); // zero's at front, eat --sLen; } - else if (sLen == 19) { - decoded[rLen] = 0; // add zero to front so 20 bytes + if (sLen < 20) { // add zero's to front so 20 bytes + word32 tmpLen = sLen; + while (tmpLen < 20) { + decoded[rLen] = 0; decoded++; + tmpLen++; } - else { - source.SetError(DSA_SZ_E); - return 0; } } memcpy(decoded + rLen, source.get_buffer() + source.get_index(), sLen); diff --git a/extra/yassl/taocrypt/src/dsa.cpp b/extra/yassl/taocrypt/src/dsa.cpp index bf116d3e48d..b19fed9235b 100644 --- a/extra/yassl/taocrypt/src/dsa.cpp +++ b/extra/yassl/taocrypt/src/dsa.cpp @@ -172,6 +172,7 @@ word32 DSA_Signer::Sign(const byte* sha_digest, byte* sig, const Integer& q = key_.GetSubGroupOrder(); const Integer& g = key_.GetSubGroupGenerator(); const Integer& x = key_.GetPrivatePart(); + byte* tmpPtr = sig; // initial signature output Integer k(rng, 1, q - 1); @@ -187,22 +188,23 @@ word32 DSA_Signer::Sign(const byte* sha_digest, byte* sig, return -1; int rSz = r_.ByteCount(); + int tmpSz = rSz; - if (rSz == 19) { - sig[0] = 0; - sig++; + while (tmpSz++ < SHA::DIGEST_SIZE) { + *sig++ = 0; } r_.Encode(sig, rSz); + sig = tmpPtr + SHA::DIGEST_SIZE; // advance sig output to s int sSz = s_.ByteCount(); + tmpSz = sSz; - if (sSz == 19) { - sig[rSz] = 0; - sig++; + while (tmpSz++ < SHA::DIGEST_SIZE) { + *sig++ = 0; } - s_.Encode(sig + rSz, sSz); + s_.Encode(sig, sSz); return 40; } diff --git a/extra/yassl/taocrypt/test/test.cpp b/extra/yassl/taocrypt/test/test.cpp index a7d5cb3e8af..fc1f0e8762d 100644 --- a/extra/yassl/taocrypt/test/test.cpp +++ b/extra/yassl/taocrypt/test/test.cpp @@ -1277,6 +1277,9 @@ int dsa_test() if (!verifier.Verify(digest, decoded)) return -90; + if (!verifier.Verify(digest, signature)) + return -91; + return 0; } diff --git a/extra/yassl/testsuite/test.hpp b/extra/yassl/testsuite/test.hpp index 5c9dc7ce117..e2e44c24027 100644 --- a/extra/yassl/testsuite/test.hpp +++ b/extra/yassl/testsuite/test.hpp @@ -22,7 +22,6 @@ #define yaSSL_TEST_HPP #include "runtime.hpp" -#include "openssl/ssl.h" /* openssl compatibility test */ #include "error.hpp" #include #include @@ -56,6 +55,7 @@ #endif #define SOCKET_T int #endif /* _WIN32 */ +#include "openssl/ssl.h" /* openssl compatibility test */ #ifdef _MSC_VER From ac143744a90d1069f0b4f8a47516cdcca915fbfa Mon Sep 17 00:00:00 2001 From: Arun Kuruvila Date: Wed, 28 Sep 2016 15:52:05 +0530 Subject: [PATCH 014/258] Bug#24707666: DEFAULT SETTING FOR SECURE-FILE-PRIV SHOULD BE RESTRICTED IN ALL GA RELEASES Back port of WL#6782 to 5.5 and 5.6. This also includes back port of Bug#20771331, Bug#20741572 and Bug#20770671. Bug#24695274 and Bug#24679907 are also handled along with this. --- cmake/install_layout.cmake | 256 +++++++++++++++++- config.h.cmake | 4 + mysql-test/include/mtr_warnings.sql | 7 +- mysql-test/include/mysqld--help.inc | 3 +- mysql-test/mysql-test-run.pl | 4 +- mysql-test/r/mysqld--help-notwin.result | 1 - mysql-test/r/mysqld--help-win.result | 1 - .../auth_sec/r/secure_file_priv_error.result | 7 + .../auth_sec/r/secure_file_priv_null.result | 21 ++ .../r/secure_file_priv_warnings.result | 17 ++ .../secure_file_priv_warnings_not_win.result | 9 + .../r/secure_file_priv_warnings_win.result | 8 + .../auth_sec/t/secure_file_priv_error.test | 39 +++ .../t/secure_file_priv_null-master.opt | 1 + .../auth_sec/t/secure_file_priv_null.test | 42 +++ .../t/secure_file_priv_warnings-master.opt | 1 + .../auth_sec/t/secure_file_priv_warnings.test | 47 ++++ .../t/secure_file_priv_warnings_not_win.test | 24 ++ .../t/secure_file_priv_warnings_win.test | 35 +++ packaging/rpm-oel/mysql-systemd-start | 6 + packaging/rpm-oel/mysql.init | 10 +- packaging/rpm-oel/mysql.spec.in | 5 + packaging/rpm-sles/mysql.spec.in | 5 + packaging/solaris/postinstall-solaris.sh | 8 +- sql/mysqld.cc | 252 +++++++++++++++-- sql/sql_class.cc | 2 + sql/sql_class.h | 1 + sql/sys_vars.cc | 8 +- support-files/mysql.spec.sh | 7 +- 29 files changed, 790 insertions(+), 41 deletions(-) create mode 100644 mysql-test/suite/auth_sec/r/secure_file_priv_error.result create mode 100644 mysql-test/suite/auth_sec/r/secure_file_priv_null.result create mode 100644 mysql-test/suite/auth_sec/r/secure_file_priv_warnings.result create mode 100644 mysql-test/suite/auth_sec/r/secure_file_priv_warnings_not_win.result create mode 100644 mysql-test/suite/auth_sec/r/secure_file_priv_warnings_win.result create mode 100644 mysql-test/suite/auth_sec/t/secure_file_priv_error.test create mode 100644 mysql-test/suite/auth_sec/t/secure_file_priv_null-master.opt create mode 100644 mysql-test/suite/auth_sec/t/secure_file_priv_null.test create mode 100644 mysql-test/suite/auth_sec/t/secure_file_priv_warnings-master.opt create mode 100644 mysql-test/suite/auth_sec/t/secure_file_priv_warnings.test create mode 100644 mysql-test/suite/auth_sec/t/secure_file_priv_warnings_not_win.test create mode 100644 mysql-test/suite/auth_sec/t/secure_file_priv_warnings_win.test diff --git a/cmake/install_layout.cmake b/cmake/install_layout.cmake index 4adda0b6eac..4fd18b049f2 100644 --- a/cmake/install_layout.cmake +++ b/cmake/install_layout.cmake @@ -1,4 +1,4 @@ -# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. # # 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 @@ -22,7 +22,7 @@ # and relative links. Windows zip uses the same tarball layout but without # the build prefix. # -# RPM +# RPM, SLES # Build as per default RPM layout, with prefix=/usr # Note: The layout for ULN RPMs differs, see the "RPM" section. # @@ -32,10 +32,22 @@ # SVR4 # Solaris package layout suitable for pkg* tools, prefix=/opt/mysql/mysql # +# FREEBSD, GLIBC, OSX, TARGZ +# Build with prefix=/usr/local/mysql, create tarball with install prefix="." +# and relative links. +# +# WIN +# Windows zip : same as tarball layout but without the build prefix +# # To force a directory layout, use -DINSTALL_LAYOUT=. # # The default is STANDALONE. # +# Note : At present, RPM and SLES layouts are similar. This is also true +# for layouts like FREEBSD, GLIBC, OSX, TARGZ. However, they provide +# opportunity to fine-tune deployment for each platform without +# affecting all other types of deployment. +# # There is the possibility to further fine-tune installation directories. # Several variables can be overwritten: # @@ -60,6 +72,7 @@ # - INSTALL_SUPPORTFILESDIR (various extra support files) # # - INSTALL_MYSQLDATADIR (data directory) +# - INSTALL_SECURE_FILE_PRIVDIR (--secure-file-priv directory) # # When changing this page, _please_ do not forget to update public Wiki # http://forge.mysql.com/wiki/CMake#Fine-tuning_installation_paths @@ -69,10 +82,11 @@ IF(NOT INSTALL_LAYOUT) ENDIF() SET(INSTALL_LAYOUT "${DEFAULT_INSTALL_LAYOUT}" -CACHE STRING "Installation directory layout. Options are: STANDALONE (as in zip or tar.gz installer), RPM, DEB, SVR4") +CACHE STRING "Installation directory layout. Options are: TARGZ (as in tar.gz installer), WIN (as in zip installer), STANDALONE, RPM, DEB, SVR4, FREEBSD, GLIBC, OSX, SLES") IF(UNIX) - IF(INSTALL_LAYOUT MATCHES "RPM") + IF(INSTALL_LAYOUT MATCHES "RPM" OR + INSTALL_LAYOUT MATCHES "SLES") SET(default_prefix "/usr") ELSEIF(INSTALL_LAYOUT MATCHES "DEB") SET(default_prefix "/opt/mysql/server-${MYSQL_BASE_VERSION}") @@ -87,7 +101,7 @@ IF(UNIX) SET(CMAKE_INSTALL_PREFIX ${default_prefix} CACHE PATH "install prefix" FORCE) ENDIF() - SET(VALID_INSTALL_LAYOUTS "RPM" "STANDALONE" "DEB" "SVR4") + SET(VALID_INSTALL_LAYOUTS "RPM" "DEB" "SVR4" "FREEBSD" "GLIBC" "OSX" "TARGZ" "SLES" "STANDALONE") LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" ind) IF(ind EQUAL -1) MESSAGE(FATAL_ERROR "Invalid INSTALL_LAYOUT parameter:${INSTALL_LAYOUT}." @@ -99,6 +113,15 @@ IF(UNIX) MARK_AS_ADVANCED(SYSCONFDIR) ENDIF() +IF(WIN32) + SET(VALID_INSTALL_LAYOUTS "TARGZ" "STANDALONE" "WIN") + LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" ind) + IF(ind EQUAL -1) + MESSAGE(FATAL_ERROR "Invalid INSTALL_LAYOUT parameter:${INSTALL_LAYOUT}." + " Choose between ${VALID_INSTALL_LAYOUTS}" ) + ENDIF() +ENDIF() + # # plugin_tests's value should not be used by imported plugins, # just use if(INSTALL_PLUGINTESTDIR). @@ -109,6 +132,22 @@ FILE(GLOB plugin_tests ${CMAKE_SOURCE_DIR}/internal/plugin/*/tests ) +# +# DEFAULT_SECURE_FILE_PRIV_DIR/DEFAULT_SECURE_FILE_PRIV_EMBEDDED_DIR +# +IF(INSTALL_LAYOUT MATCHES "STANDALONE" OR + INSTALL_LAYOUT MATCHES "WIN") + SET(secure_file_priv_path "NULL") +ELSEIF(INSTALL_LAYOUT MATCHES "RPM" OR + INSTALL_LAYOUT MATCHES "SLES" OR + INSTALL_LAYOUT MATCHES "SVR4" OR + INSTALL_LAYOUT MATCHES "DEB") + SET(secure_file_priv_path "/var/lib/mysql-files") +ELSE() + SET(secure_file_priv_path "${default_prefix}/mysql-files") +ENDIF() +SET(secure_file_priv_embedded_path "NULL") + # # STANDALONE layout # @@ -134,6 +173,148 @@ SET(INSTALL_SUPPORTFILESDIR_STANDALONE "support-files") # SET(INSTALL_MYSQLDATADIR_STANDALONE "data") SET(INSTALL_PLUGINTESTDIR_STANDALONE ${plugin_tests}) +SET(INSTALL_SECURE_FILE_PRIVDIR_STANDALONE ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_STANDALONE ${secure_file_priv_embedded_path}) + +# +# WIN layout +# +SET(INSTALL_BINDIR_WIN "bin") +SET(INSTALL_SBINDIR_WIN "bin") +SET(INSTALL_SCRIPTDIR_WIN "scripts") +# +SET(INSTALL_LIBDIR_WIN "lib") +SET(INSTALL_PLUGINDIR_WIN "lib/plugin") +# +SET(INSTALL_INCLUDEDIR_WIN "include") +# +SET(INSTALL_DOCDIR_WIN "docs") +SET(INSTALL_DOCREADMEDIR_WIN ".") +SET(INSTALL_MANDIR_WIN "man") +SET(INSTALL_INFODIR_WIN "docs") +# +SET(INSTALL_SHAREDIR_WIN "share") +SET(INSTALL_MYSQLSHAREDIR_WIN "share") +SET(INSTALL_MYSQLTESTDIR_WIN "mysql-test") +SET(INSTALL_SQLBENCHDIR_WIN ".") +SET(INSTALL_SUPPORTFILESDIR_WIN "support-files") +# +SET(INSTALL_MYSQLDATADIR_WIN "data") +SET(INSTALL_PLUGINTESTDIR_WIN ${plugin_tests}) +SET(INSTALL_SECURE_FILE_PRIVDIR_WIN ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_WIN ${secure_file_priv_embedded_path}) + +# +# FREEBSD layout +# +SET(INSTALL_BINDIR_FREEBSD "bin") +SET(INSTALL_SBINDIR_FREEBSD "bin") +SET(INSTALL_SCRIPTDIR_FREEBSD "scripts") +# +SET(INSTALL_LIBDIR_FREEBSD "lib") +SET(INSTALL_PLUGINDIR_FREEBSD "lib/plugin") +# +SET(INSTALL_INCLUDEDIR_FREEBSD "include") +# +SET(INSTALL_DOCDIR_FREEBSD "docs") +SET(INSTALL_DOCREADMEDIR_FREEBSD ".") +SET(INSTALL_MANDIR_FREEBSD "man") +SET(INSTALL_INFODIR_FREEBSD "docs") +# +SET(INSTALL_SHAREDIR_FREEBSD "share") +SET(INSTALL_MYSQLSHAREDIR_FREEBSD "share") +SET(INSTALL_MYSQLTESTDIR_FREEBSD "mysql-test") +SET(INSTALL_SQLBENCHDIR_FREEBSD ".") +SET(INSTALL_SUPPORTFILESDIR_FREEBSD "support-files") +# +SET(INSTALL_MYSQLDATADIR_FREEBSD "data") +SET(INSTALL_PLUGINTESTDIR_FREEBSD ${plugin_tests}) +SET(INSTALL_SECURE_FILE_PRIVDIR_FREEBSD ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_FREEBSD ${secure_file_priv_embedded_path}) + +# +# GLIBC layout +# +SET(INSTALL_BINDIR_GLIBC "bin") +SET(INSTALL_SBINDIR_GLIBC "bin") +SET(INSTALL_SCRIPTDIR_GLIBC "scripts") +# +SET(INSTALL_LIBDIR_GLIBC "lib") +SET(INSTALL_PLUGINDIR_GLIBC "lib/plugin") +# +SET(INSTALL_INCLUDEDIR_GLIBC "include") +# +SET(INSTALL_DOCDIR_GLIBC "docs") +SET(INSTALL_DOCREADMEDIR_GLIBC ".") +SET(INSTALL_MANDIR_GLIBC "man") +SET(INSTALL_INFODIR_GLIBC "docs") +# +SET(INSTALL_SHAREDIR_GLIBC "share") +SET(INSTALL_MYSQLSHAREDIR_GLIBC "share") +SET(INSTALL_MYSQLTESTDIR_GLIBC "mysql-test") +SET(INSTALL_SQLBENCHDIR_GLIBC ".") +SET(INSTALL_SUPPORTFILESDIR_GLIBC "support-files") +# +SET(INSTALL_MYSQLDATADIR_GLIBC "data") +SET(INSTALL_PLUGINTESTDIR_GLIBC ${plugin_tests}) +SET(INSTALL_SECURE_FILE_PRIVDIR_GLIBC ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_GLIBC ${secure_file_priv_embedded_path}) + +# +# OSX layout +# +SET(INSTALL_BINDIR_OSX "bin") +SET(INSTALL_SBINDIR_OSX "bin") +SET(INSTALL_SCRIPTDIR_OSX "scripts") +# +SET(INSTALL_LIBDIR_OSX "lib") +SET(INSTALL_PLUGINDIR_OSX "lib/plugin") +# +SET(INSTALL_INCLUDEDIR_OSX "include") +# +SET(INSTALL_DOCDIR_OSX "docs") +SET(INSTALL_DOCREADMEDIR_OSX ".") +SET(INSTALL_MANDIR_OSX "man") +SET(INSTALL_INFODIR_OSX "docs") +# +SET(INSTALL_SHAREDIR_OSX "share") +SET(INSTALL_MYSQLSHAREDIR_OSX "share") +SET(INSTALL_MYSQLTESTDIR_OSX "mysql-test") +SET(INSTALL_SQLBENCHDIR_OSX ".") +SET(INSTALL_SUPPORTFILESDIR_OSX "support-files") +# +SET(INSTALL_MYSQLDATADIR_OSX "data") +SET(INSTALL_PLUGINTESTDIR_OSX ${plugin_tests}) +SET(INSTALL_SECURE_FILE_PRIVDIR_OSX ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_OSX ${secure_file_priv_embedded_path}) + +# +# TARGZ layout +# +SET(INSTALL_BINDIR_TARGZ "bin") +SET(INSTALL_SBINDIR_TARGZ "bin") +SET(INSTALL_SCRIPTDIR_TARGZ "scripts") +# +SET(INSTALL_LIBDIR_TARGZ "lib") +SET(INSTALL_PLUGINDIR_TARGZ "lib/plugin") +# +SET(INSTALL_INCLUDEDIR_TARGZ "include") +# +SET(INSTALL_DOCDIR_TARGZ "docs") +SET(INSTALL_DOCREADMEDIR_TARGZ ".") +SET(INSTALL_MANDIR_TARGZ "man") +SET(INSTALL_INFODIR_TARGZ "docs") +# +SET(INSTALL_SHAREDIR_TARGZ "share") +SET(INSTALL_MYSQLSHAREDIR_TARGZ "share") +SET(INSTALL_MYSQLTESTDIR_TARGZ "mysql-test") +SET(INSTALL_SQLBENCHDIR_TARGZ ".") +SET(INSTALL_SUPPORTFILESDIR_TARGZ "support-files") +# +SET(INSTALL_MYSQLDATADIR_TARGZ "data") +SET(INSTALL_PLUGINTESTDIR_TARGZ ${plugin_tests}) +SET(INSTALL_SECURE_FILE_PRIVDIR_TARGZ ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_TARGZ ${secure_file_priv_embedded_path}) # # RPM layout @@ -169,6 +350,41 @@ SET(INSTALL_SUPPORTFILESDIR_RPM "share/mysql") # SET(INSTALL_MYSQLDATADIR_RPM "/var/lib/mysql") SET(INSTALL_PLUGINTESTDIR_RPM ${plugin_tests}) +SET(INSTALL_SECURE_FILE_PRIVDIR_RPM ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_RPM ${secure_file_priv_embedded_path}) + +# +# SLES layout +# +SET(INSTALL_BINDIR_SLES "bin") +SET(INSTALL_SBINDIR_SLES "sbin") +SET(INSTALL_SCRIPTDIR_SLES "bin") +# +IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") + SET(INSTALL_LIBDIR_SLES "lib64") + SET(INSTALL_PLUGINDIR_SLES "lib64/mysql/plugin") +ELSE() + SET(INSTALL_LIBDIR_SLES "lib") + SET(INSTALL_PLUGINDIR_SLES "lib/mysql/plugin") +ENDIF() +# +SET(INSTALL_INCLUDEDIR_SLES "include/mysql") +# +#SET(INSTALL_DOCDIR_SLES unset - installed directly by SLES) +#SET(INSTALL_DOCREADMEDIR_SLES unset - installed directly by SLES) +SET(INSTALL_INFODIR_SLES "share/info") +SET(INSTALL_MANDIR_SLES "share/man") +# +SET(INSTALL_SHAREDIR_SLES "share") +SET(INSTALL_MYSQLSHAREDIR_SLES "share/mysql") +SET(INSTALL_MYSQLTESTDIR_SLES "share/mysql-test") +SET(INSTALL_SQLBENCHDIR_SLES "") +SET(INSTALL_SUPPORTFILESDIR_SLES "share/mysql") +# +SET(INSTALL_MYSQLDATADIR_SLES "/var/lib/mysql") +SET(INSTALL_PLUGINTESTDIR_SLES ${plugin_tests}) +SET(INSTALL_SECURE_FILE_PRIVDIR_SLES ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_SLES ${secure_file_priv_embedded_path}) # # DEB layout @@ -193,8 +409,10 @@ SET(INSTALL_MYSQLTESTDIR_DEB "mysql-test") SET(INSTALL_SQLBENCHDIR_DEB ".") SET(INSTALL_SUPPORTFILESDIR_DEB "support-files") # -SET(INSTALL_MYSQLDATADIR_DEB "data") +SET(INSTALL_MYSQLDATADIR_DEB "/var/lib/mysql") SET(INSTALL_PLUGINTESTDIR_DEB ${plugin_tests}) +SET(INSTALL_SECURE_FILE_PRIVDIR_DEB ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_DEB ${secure_file_priv_embedded_path}) # # SVR4 layout @@ -221,7 +439,8 @@ SET(INSTALL_SUPPORTFILESDIR_SVR4 "support-files") # SET(INSTALL_MYSQLDATADIR_SVR4 "/var/lib/mysql") SET(INSTALL_PLUGINTESTDIR_SVR4 ${plugin_tests}) - +SET(INSTALL_SECURE_FILE_PRIVDIR_SVR4 ${secure_file_priv_path}) +SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR_SVR4 ${secure_file_priv_embedded_path}) # Clear cached variables if install layout was changed IF(OLD_INSTALL_LAYOUT) @@ -235,8 +454,29 @@ SET(OLD_INSTALL_LAYOUT ${INSTALL_LAYOUT} CACHE INTERNAL "") # will be defined as ${INSTALL_BINDIR_STANDALONE} by default if STANDALONE # layout is chosen) FOREACH(var BIN SBIN LIB MYSQLSHARE SHARE PLUGIN INCLUDE SCRIPT DOC MAN - INFO MYSQLTEST SQLBENCH DOCREADME SUPPORTFILES MYSQLDATA PLUGINTEST) + INFO MYSQLTEST SQLBENCH DOCREADME SUPPORTFILES MYSQLDATA PLUGINTEST + SECURE_FILE_PRIV SECURE_FILE_PRIV_EMBEDDED) SET(INSTALL_${var}DIR ${INSTALL_${var}DIR_${INSTALL_LAYOUT}} CACHE STRING "${var} installation directory" ${FORCE}) MARK_AS_ADVANCED(INSTALL_${var}DIR) ENDFOREACH() + +# +# Set DEFAULT_SECURE_FILE_PRIV_DIR +# This is used as default value for --secure-file-priv +# +IF(INSTALL_SECURE_FILE_PRIVDIR) + SET(DEFAULT_SECURE_FILE_PRIV_DIR "\"${INSTALL_SECURE_FILE_PRIVDIR}\"" + CACHE INTERNAL "default --secure-file-priv directory" FORCE) +ELSE() + SET(DEFAULT_SECURE_FILE_PRIV_DIR \"\" + CACHE INTERNAL "default --secure-file-priv directory" FORCE) +ENDIF() + +IF(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR) + SET(DEFAULT_SECURE_FILE_PRIV_EMBEDDED_DIR "\"${INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR}\"" + CACHE INTERNAL "default --secure-file-priv directory (for embedded library)" FORCE) +ELSE() + SET(DEFAULT_SECURE_FILE_PRIV_EMBEDDED_DIR "NULL" + CACHE INTERNAL "default --secure-file-priv directory (for embedded library)" FORCE) +ENDIF() diff --git a/config.h.cmake b/config.h.cmake index 4548d0a221f..c7ed127379a 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -624,4 +624,8 @@ #cmakedefine SIZEOF_TIME_T @SIZEOF_TIME_T@ #cmakedefine TIME_T_UNSIGNED @TIME_T_UNSIGNED@ +/* For --secure-file-priv */ +#cmakedefine DEFAULT_SECURE_FILE_PRIV_DIR @DEFAULT_SECURE_FILE_PRIV_DIR@ +#cmakedefine DEFAULT_SECURE_FILE_PRIV_EMBEDDED_DIR @DEFAULT_SECURE_FILE_PRIV_EMBEDDED_DIR@ + #endif diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql index 45acbc03b7e..0a3c3bc60b3 100644 --- a/mysql-test/include/mtr_warnings.sql +++ b/mysql-test/include/mtr_warnings.sql @@ -1,4 +1,4 @@ --- Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +-- Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. -- -- 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 @@ -204,6 +204,11 @@ INSERT INTO global_suppressions VALUES */ ("Found lock of type 6 that is write and read locked"), + /* + Warnings related to --secure-file-priv + */ + ("Insecure configuration for --secure-file-priv:*"), + ("THE_LAST_SUPPRESSION")|| diff --git a/mysql-test/include/mysqld--help.inc b/mysql-test/include/mysqld--help.inc index 380a7f6c8cf..7fa57abbe1e 100644 --- a/mysql-test/include/mysqld--help.inc +++ b/mysql-test/include/mysqld--help.inc @@ -18,7 +18,8 @@ perl; # their paths may vary: @skipvars=qw/basedir open-files-limit general-log-file log plugin-dir log-slow-queries pid-file slow-query-log-file - datadir slave-load-tmpdir tmpdir socket/; + datadir slave-load-tmpdir tmpdir socket + secure-file-priv/; # Plugins which may or may not be there: @plugins=qw/innodb ndb archive blackhole federated partition ndbcluster debug temp-pool ssl des-key-file diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 684d262f410..3eb70c1bdb9 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl # -*- cperl -*- -# Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved. # # 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 @@ -1823,6 +1823,7 @@ sub collect_mysqld_features { mtr_init_args(\$args); mtr_add_arg($args, "--no-defaults"); mtr_add_arg($args, "--datadir=%s", mixed_path($tmpdir)); + mtr_add_arg($args, "--secure-file-priv=\"\""); mtr_add_arg($args, "--lc-messages-dir=%s", $path_language); mtr_add_arg($args, "--skip-grant-tables"); mtr_add_arg($args, "--verbose"); @@ -3297,6 +3298,7 @@ sub mysql_install_db { mtr_add_arg($args, "--loose-skip-falcon"); mtr_add_arg($args, "--loose-skip-ndbcluster"); mtr_add_arg($args, "--tmpdir=%s", "$opt_vardir/tmp/"); + mtr_add_arg($args, "--secure-file-priv=%s", "$opt_vardir"); mtr_add_arg($args, "--core-file"); if ( $opt_debug ) diff --git a/mysql-test/r/mysqld--help-notwin.result b/mysql-test/r/mysqld--help-notwin.result index d527d6cb702..78dc9ab4d88 100644 --- a/mysql-test/r/mysqld--help-notwin.result +++ b/mysql-test/r/mysqld--help-notwin.result @@ -923,7 +923,6 @@ report-user (No default value) rpl-recovery-rank 0 safe-user-create FALSE secure-auth FALSE -secure-file-priv (No default value) server-id 0 show-slave-auth-info FALSE skip-grant-tables TRUE diff --git a/mysql-test/r/mysqld--help-win.result b/mysql-test/r/mysqld--help-win.result index 2ce9e763b14..1d56da7aa5e 100644 --- a/mysql-test/r/mysqld--help-win.result +++ b/mysql-test/r/mysqld--help-win.result @@ -931,7 +931,6 @@ report-user (No default value) rpl-recovery-rank 0 safe-user-create FALSE secure-auth FALSE -secure-file-priv (No default value) server-id 0 shared-memory FALSE shared-memory-base-name MYSQL diff --git a/mysql-test/suite/auth_sec/r/secure_file_priv_error.result b/mysql-test/suite/auth_sec/r/secure_file_priv_error.result new file mode 100644 index 00000000000..4bb4d87c5f0 --- /dev/null +++ b/mysql-test/suite/auth_sec/r/secure_file_priv_error.result @@ -0,0 +1,7 @@ +#----------------------------------------------------------------------- +# Setup +# Try to restart server with invalid value for --secure-file-priv +# Search for : Failed to access directory for --secure-file-priv. +# Restart completed. +# Restart +#----------------------------------------------------------------------- diff --git a/mysql-test/suite/auth_sec/r/secure_file_priv_null.result b/mysql-test/suite/auth_sec/r/secure_file_priv_null.result new file mode 100644 index 00000000000..e2a5102c627 --- /dev/null +++ b/mysql-test/suite/auth_sec/r/secure_file_priv_null.result @@ -0,0 +1,21 @@ +#----------------------------------------------------------------------- +# Setup +#----------------------------------------------------------------------- +# Search for : --secure-file-priv is set to NULL. Operations +# related to importing and exporting data are +# disabled +show variables like 'secure_file_priv'; +Variable_name Value +secure_file_priv null +use test; +drop table if exists secure_file_priv_test_null; +create table secure_file_priv_test_null(c1 int); +insert into secure_file_priv_test_null values (1), (2), (3), (4); +select * from secure_file_priv_test_null into outfile 'blah'; +ERROR HY000: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement +select * from secure_file_priv_test_null into outfile 'null/blah'; +ERROR HY000: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement +drop table secure_file_priv_test_null; +#----------------------------------------------------------------------- +# Clean-up +#----------------------------------------------------------------------- diff --git a/mysql-test/suite/auth_sec/r/secure_file_priv_warnings.result b/mysql-test/suite/auth_sec/r/secure_file_priv_warnings.result new file mode 100644 index 00000000000..3b80cbe8d6f --- /dev/null +++ b/mysql-test/suite/auth_sec/r/secure_file_priv_warnings.result @@ -0,0 +1,17 @@ +#----------------------------------------------------------------------- +# Setup +#----------------------------------------------------------------------- +# Search for : Insecure configuration for --secure-file-priv: Current +# value does not restrict location of generated files. +# Consider setting it to a valid, non-empty path. +SHOW VARIABLES LIKE 'secure_file_priv'; +Variable_name Value +secure_file_priv +#----------------------------------------------------------------------- +# Restart completed. +# Search for : Insecure configuration for --secure-file-priv: Plugin +# directory is accessible through --secure-file-priv. +# Consider choosing a different directory. +#----------------------------------------------------------------------- +# Clean-up +#----------------------------------------------------------------------- diff --git a/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_not_win.result b/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_not_win.result new file mode 100644 index 00000000000..84e2f8ac3c2 --- /dev/null +++ b/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_not_win.result @@ -0,0 +1,9 @@ +#----------------------------------------------------------------------- +# Search for : Insecure configuration for --secure-file-priv: Data +# directory is accessible through --secure-file-priv. +# Consider choosing a different directory. +#----------------------------------------------------------------------- +# Search for : Insecure configuration for --secure-file-priv: Location +# is accessible to all OS users. Consider choosing a +# different directory. +#----------------------------------------------------------------------- diff --git a/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_win.result b/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_win.result new file mode 100644 index 00000000000..3beff6c4747 --- /dev/null +++ b/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_win.result @@ -0,0 +1,8 @@ +#----------------------------------------------------------------------- +# Test 2 : Restarting mysqld with : +# --secure-file-priv=MYSQLTEST_VARDIR/mysqld.1/Data +# Restart completed. +# Search for : Insecure configuration for --secure-file-priv: Data +# directory is accessible through --secure-file-priv. +# Consider choosing a different directory. +#----------------------------------------------------------------------- diff --git a/mysql-test/suite/auth_sec/t/secure_file_priv_error.test b/mysql-test/suite/auth_sec/t/secure_file_priv_error.test new file mode 100644 index 00000000000..9f8d185d8f5 --- /dev/null +++ b/mysql-test/suite/auth_sec/t/secure_file_priv_error.test @@ -0,0 +1,39 @@ +--source include/no_valgrind_without_big.inc +--source include/not_embedded.inc + +--echo #----------------------------------------------------------------------- +--echo # Setup +let restart_log= $MYSQLTEST_VARDIR/log/my_restart.err; +let SEARCH_FILE= $restart_log; +let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; + +--echo # Try to restart server with invalid value for --secure-file-priv +--exec echo "wait" > $restart_file +--shutdown_server +--source include/wait_until_disconnected.inc + +--error 0,1 +--remove_file $restart_log +# Following should fail +--error 1 +--exec $MYSQLD_CMD --secure-file-priv=blahblahblah --loose-console > $restart_log 2>&1 + +--echo # Search for : Failed to access directory for --secure-file-priv. +let SEARCH_PATTERN= Failed to access directory for --secure-file-priv; +--source include/search_pattern_in_file.inc + +--remove_file $restart_log + +--source include/wait_until_disconnected.inc +# Dummy argument for restart +--exec echo "restart:" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +--enable_reconnect +--source include/wait_until_connected_again.inc +--disable_reconnect +--echo # Restart completed. + +--echo # Restart +--disable_warnings +--source include/force_restart.inc +--enable_warnings +--echo #----------------------------------------------------------------------- diff --git a/mysql-test/suite/auth_sec/t/secure_file_priv_null-master.opt b/mysql-test/suite/auth_sec/t/secure_file_priv_null-master.opt new file mode 100644 index 00000000000..80d7f3cd469 --- /dev/null +++ b/mysql-test/suite/auth_sec/t/secure_file_priv_null-master.opt @@ -0,0 +1 @@ +--secure-file-priv=null diff --git a/mysql-test/suite/auth_sec/t/secure_file_priv_null.test b/mysql-test/suite/auth_sec/t/secure_file_priv_null.test new file mode 100644 index 00000000000..8d394a13589 --- /dev/null +++ b/mysql-test/suite/auth_sec/t/secure_file_priv_null.test @@ -0,0 +1,42 @@ +--source include/no_valgrind_without_big.inc +--source include/not_embedded.inc + +--echo #----------------------------------------------------------------------- +--echo # Setup +let server_log= $MYSQLTEST_VARDIR/log/mysqld.1.err; +let SEARCH_FILE= $server_log; +let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; +--echo #----------------------------------------------------------------------- + +--echo # Search for : --secure-file-priv is set to NULL. Operations +--echo # related to importing and exporting data are +--echo # disabled +let SEARCH_PATTERN= --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled; +--source include/search_pattern_in_file.inc + +connect(test4_con,localhost,root,,,,,); +show variables like 'secure_file_priv'; + +use test; +--disable_warnings +drop table if exists secure_file_priv_test_null; +--enable_warnings +create table secure_file_priv_test_null(c1 int); +insert into secure_file_priv_test_null values (1), (2), (3), (4); +--error 1290 +select * from secure_file_priv_test_null into outfile 'blah'; +--error 1290 +select * from secure_file_priv_test_null into outfile 'null/blah'; +drop table secure_file_priv_test_null; + +connection default; +disconnect test4_con; + +--echo #----------------------------------------------------------------------- + +--echo # Clean-up +--disable_warnings +--source include/force_restart.inc +--enable_warnings + +--echo #----------------------------------------------------------------------- diff --git a/mysql-test/suite/auth_sec/t/secure_file_priv_warnings-master.opt b/mysql-test/suite/auth_sec/t/secure_file_priv_warnings-master.opt new file mode 100644 index 00000000000..22520f0aa99 --- /dev/null +++ b/mysql-test/suite/auth_sec/t/secure_file_priv_warnings-master.opt @@ -0,0 +1 @@ +--secure-file-priv="" diff --git a/mysql-test/suite/auth_sec/t/secure_file_priv_warnings.test b/mysql-test/suite/auth_sec/t/secure_file_priv_warnings.test new file mode 100644 index 00000000000..cc7a79d5b3c --- /dev/null +++ b/mysql-test/suite/auth_sec/t/secure_file_priv_warnings.test @@ -0,0 +1,47 @@ +--source include/no_valgrind_without_big.inc +--source include/not_embedded.inc + +--echo #----------------------------------------------------------------------- +--echo # Setup +let server_log= $MYSQLTEST_VARDIR/log/mysqld.1.err; +let SEARCH_FILE= $server_log; +let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; +let PLUGIN_DIR= $MYSQLTEST_VARDIR/tmp; +--echo #----------------------------------------------------------------------- + +--echo # Search for : Insecure configuration for --secure-file-priv: Current +--echo # value does not restrict location of generated files. +--echo # Consider setting it to a valid, non-empty path. +let SEARCH_PATTERN= Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.; +--source include/search_pattern_in_file.inc + +# Must show empty string +SHOW VARIABLES LIKE 'secure_file_priv'; + +--echo #----------------------------------------------------------------------- + +let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; +--exec echo "wait" > $restart_file +--shutdown_server +--source include/wait_until_disconnected.inc +--remove_file $server_log +--exec echo "restart:--plugin-dir=$PLUGIN_DIR --secure-file-priv=$PLUGIN_DIR" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +--enable_reconnect +--source include/wait_until_connected_again.inc +--disable_reconnect +--echo # Restart completed. + +--echo # Search for : Insecure configuration for --secure-file-priv: Plugin +--echo # directory is accessible through --secure-file-priv. +--echo # Consider choosing a different directory. +let SEARCH_PATTERN= Insecure configuration for --secure-file-priv: Plugin directory is accessible through --secure-file-priv. Consider choosing a different directory.; +--source include/search_pattern_in_file.inc + +--echo #----------------------------------------------------------------------- + +--echo # Clean-up +--disable_warnings +--source include/force_restart.inc +--enable_warnings + +--echo #----------------------------------------------------------------------- diff --git a/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_not_win.test b/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_not_win.test new file mode 100644 index 00000000000..ec027d4a743 --- /dev/null +++ b/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_not_win.test @@ -0,0 +1,24 @@ +--source include/no_valgrind_without_big.inc +--source include/not_windows.inc +--source include/not_embedded.inc + +let server_log= $MYSQLTEST_VARDIR/log/mysqld.1.err; +let SEARCH_FILE= $server_log; + +--echo #----------------------------------------------------------------------- + +--echo # Search for : Insecure configuration for --secure-file-priv: Data +--echo # directory is accessible through --secure-file-priv. +--echo # Consider choosing a different directory. +let SEARCH_PATTERN= Insecure configuration for --secure-file-priv: Data directory is accessible through --secure-file-priv. Consider choosing a different directory.; +--source include/search_pattern_in_file.inc + +--echo #----------------------------------------------------------------------- + +--echo # Search for : Insecure configuration for --secure-file-priv: Location +--echo # is accessible to all OS users. Consider choosing a +--echo # different directory. +let SEARCH_PATTERN= Insecure configuration for --secure-file-priv: Location is accessible to all OS users. Consider choosing a different directory.; +--source include/search_pattern_in_file.inc + +--echo #----------------------------------------------------------------------- diff --git a/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_win.test b/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_win.test new file mode 100644 index 00000000000..bb175fb40ea --- /dev/null +++ b/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_win.test @@ -0,0 +1,35 @@ +--source include/no_valgrind_without_big.inc +--source include/windows.inc +--source include/not_embedded.inc + +let server_log= $MYSQLTEST_VARDIR/log/mysqld.1.err; +let SEARCH_FILE= $server_log; + +--echo #----------------------------------------------------------------------- + +--echo # Test 2 : Restarting mysqld with : +--echo # --secure-file-priv=MYSQLTEST_VARDIR/mysqld.1/Data + +let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; +--exec echo "wait" > $restart_file +--shutdown_server +--source include/wait_until_disconnected.inc +--error 0,1 +--remove_file $server_log +--exec echo "restart: --secure-file-priv=$MYSQLTEST_VARDIR/mysqld.1/Data" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +--enable_reconnect +--source include/wait_until_connected_again.inc +--disable_reconnect +--echo # Restart completed. + +--echo # Search for : Insecure configuration for --secure-file-priv: Data +--echo # directory is accessible through --secure-file-priv. +--echo # Consider choosing a different directory. +let SEARCH_PATTERN= Insecure configuration for --secure-file-priv: Data directory is accessible through --secure-file-priv. Consider choosing a different directory.; +--source include/search_pattern_in_file.inc + +--disable_warnings +--source include/force_restart.inc +--enable_warnings + +--echo #----------------------------------------------------------------------- diff --git a/packaging/rpm-oel/mysql-systemd-start b/packaging/rpm-oel/mysql-systemd-start index fab7b3627b3..231a76087ac 100644 --- a/packaging/rpm-oel/mysql-systemd-start +++ b/packaging/rpm-oel/mysql-systemd-start @@ -30,6 +30,12 @@ install_db () { if [ -x /usr/sbin/restorecon ]; then /usr/sbin/restorecon "$datadir" /usr/sbin/restorecon $log + for dir in /var/lib/mysql-files ; do + if [ -x /usr/sbin/semanage -a -d /var/lib/mysql -a -d $dir ] ; then + /usr/sbin/semanage fcontext -a -e /var/lib/mysql $dir >/dev/null 2>&1 + /sbin/restorecon $dir + fi + done fi # If special mysql dir is in place, skip db install diff --git a/packaging/rpm-oel/mysql.init b/packaging/rpm-oel/mysql.init index aaea498d153..75ae672801b 100644 --- a/packaging/rpm-oel/mysql.init +++ b/packaging/rpm-oel/mysql.init @@ -82,7 +82,15 @@ start(){ fi chown mysql:mysql "$datadir" chmod 0755 "$datadir" - [ -x /sbin/restorecon ] && /sbin/restorecon "$datadir" + if [ -x /sbin/restorecon ]; then + /sbin/restorecon "$datadir" + for dir in /var/lib/mysql-files ; do + if [ -x /usr/sbin/semanage -a -d /var/lib/mysql -a -d $dir ] ; then + /usr/sbin/semanage fcontext -a -e /var/lib/mysql $dir >/dev/null 2>&1 + /sbin/restorecon $dir + fi + done + fi # Now create the database action $"Initializing MySQL database: " /usr/bin/mysql_install_db --rpm --datadir="$datadir" --user=mysql ret=$? diff --git a/packaging/rpm-oel/mysql.spec.in b/packaging/rpm-oel/mysql.spec.in index 409c325b675..7ef294ffa84 100644 --- a/packaging/rpm-oel/mysql.spec.in +++ b/packaging/rpm-oel/mysql.spec.in @@ -560,6 +560,7 @@ MBD=$RPM_BUILD_DIR/%{src_dir} install -d -m 0755 %{buildroot}%{_datadir}/mysql/SELinux/RHEL4 install -d -m 0755 %{buildroot}/var/lib/mysql install -d -m 0755 %{buildroot}/var/run/mysqld +install -d -m 0750 %{buildroot}/var/lib/mysql-files # Install all binaries cd $MBD/release @@ -790,6 +791,7 @@ fi %attr(644, root, root) %config(noreplace,missingok) %{_sysconfdir}/logrotate.d/mysql %dir %attr(755, mysql, mysql) /var/lib/mysql %dir %attr(755, mysql, mysql) /var/run/mysqld +%dir %attr(750, mysql, mysql) /var/lib/mysql-files %files common %defattr(-, root, root, -) @@ -916,6 +918,9 @@ fi %endif %changelog +* Mon Sep 26 2016 Balasubramanian Kandasamy - 5.5.53-1 +- Include mysql-files directory + * Tue Jul 05 2016 Balasubramanian Kandasamy - 5.5.51-1 - Remove mysql_config from client subpackage diff --git a/packaging/rpm-sles/mysql.spec.in b/packaging/rpm-sles/mysql.spec.in index a11dfff7b70..6652cdcccb6 100644 --- a/packaging/rpm-sles/mysql.spec.in +++ b/packaging/rpm-sles/mysql.spec.in @@ -425,6 +425,7 @@ MBD=$RPM_BUILD_DIR/%{src_dir} install -d -m 0755 %{buildroot}/var/lib/mysql install -d -m 0755 %{buildroot}/var/run/mysql install -d -m 0750 %{buildroot}/var/log/mysql +install -d -m 0750 %{buildroot}/var/lib/mysql-files # Install all binaries cd $MBD/release @@ -638,6 +639,7 @@ fi %dir %attr(755, mysql, mysql) /var/lib/mysql %dir %attr(755, mysql, mysql) /var/run/mysql %dir %attr(750, mysql, mysql) /var/log/mysql +%dir %attr(750, mysql, mysql) /var/lib/mysql-files %files common %defattr(-, root, root, -) @@ -783,6 +785,9 @@ fi %attr(755, root, root) %{_libdir}/mysql/libmysqld.so %changelog +* Mon Sep 26 2016 Balasubramanian Kandasamy - 5.5.53-1 +- Include mysql-files directory + * Tue Sep 29 2015 Balasubramanian Kandasamy - 5.5.47-1 - Added conflicts to mysql-connector-c-shared dependencies diff --git a/packaging/solaris/postinstall-solaris.sh b/packaging/solaris/postinstall-solaris.sh index b024d94f158..a31e151e1bb 100644 --- a/packaging/solaris/postinstall-solaris.sh +++ b/packaging/solaris/postinstall-solaris.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. # # 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 @@ -26,6 +26,7 @@ mygroup=mysql myuser=mysql mydatadir=/var/lib/mysql basedir=@@basedir@@ +mysecurefiledir=/var/lib/mysql-files if [ -n "$BASEDIR" ] ; then basedir="$BASEDIR" @@ -58,6 +59,11 @@ fi chown -R $myuser:$mygroup $mydatadir +# Create securefile directory +[ -d "$mysecurefiledir" ] || mkdir -p -m 770 "$mysecurefiledir" || exit 1 +chown -R $myuser:$mygroup $mysecurefiledir + + # Solaris patch 119255 (somewhere around revision 42) changes the behaviour # of pkgadd to set TMPDIR internally to a root-owned install directory. This # has the unfortunate side effect of breaking running mysql_install_db with diff --git a/sql/mysqld.cc b/sql/mysqld.cc index d8edbe4b637..c969fd8a62a 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -570,6 +570,7 @@ uint mysql_real_data_home_len, mysql_data_home_len= 1; uint reg_ext_length; const key_map key_map_empty(0); key_map key_map_full(0); // Will be initialized later +char secure_file_real_path[FN_REFLEN]; DATE_TIME_FORMAT global_date_format, global_datetime_format, global_time_format; Time_zone *default_tz; @@ -7613,9 +7614,9 @@ bool is_secure_file_path(char *path) char buff1[FN_REFLEN], buff2[FN_REFLEN]; size_t opt_secure_file_priv_len; /* - All paths are secure if opt_secure_file_path is 0 + All paths are secure if opt_secure_file_priv is 0 */ - if (!opt_secure_file_priv) + if (!opt_secure_file_priv[0]) return TRUE; opt_secure_file_priv_len= strlen(opt_secure_file_priv); @@ -7623,6 +7624,9 @@ bool is_secure_file_path(char *path) if (strlen(path) >= FN_REFLEN) return FALSE; + if (!my_strcasecmp(system_charset_info, opt_secure_file_priv, "NULL")) + return FALSE; + if (my_realpath(buff1, path, 0)) { /* @@ -7655,9 +7659,184 @@ bool is_secure_file_path(char *path) } +/** + check_secure_file_priv_path : Checks path specified through + --secure-file-priv and raises warning in following cases: + 1. If path is empty string or NULL and mysqld is not running + with --bootstrap mode. + 2. If path can access data directory + 3. If path points to a directory which is accessible by + all OS users (non-Windows build only) + + It throws error in following cases: + + 1. If path normalization fails + 2. If it can not get stats of the directory + + @params NONE + + Assumptions : + 1. Data directory path has been normalized + 2. opt_secure_file_priv has been normalized unless it is set + to "NULL". + + @returns Status of validation + @retval true : Validation is successful with/without warnings + @retval false : Validation failed. Error is raised. +*/ + +bool check_secure_file_priv_path() +{ + char datadir_buffer[FN_REFLEN+1]={0}; + char plugindir_buffer[FN_REFLEN+1]={0}; + char whichdir[20]= {0}; + size_t opt_plugindir_len= 0; + size_t opt_datadir_len= 0; + size_t opt_secure_file_priv_len= 0; + bool warn= false; + bool case_insensitive_fs; +#ifndef _WIN32 + MY_STAT dir_stat; +#endif + + if (!opt_secure_file_priv[0]) + { + if (opt_bootstrap) + { + /* + Do not impose --secure-file-priv restriction + in --bootstrap mode + */ + sql_print_information("Ignoring --secure-file-priv value as server is " + "running with --bootstrap."); + } + else + { + sql_print_warning("Insecure configuration for --secure-file-priv: " + "Current value does not restrict location of generated " + "files. Consider setting it to a valid, " + "non-empty path."); + } + return true; + } + + /* + Setting --secure-file-priv to NULL would disable + reading/writing from/to file + */ + if(!my_strcasecmp(system_charset_info, opt_secure_file_priv, "NULL")) + { + sql_print_information("--secure-file-priv is set to NULL. " + "Operations related to importing and exporting " + "data are disabled"); + return true; + } + + /* + Check if --secure-file-priv can access data directory + */ + opt_secure_file_priv_len= strlen(opt_secure_file_priv); + + /* + Adds dir seperator at the end. + This is required in subsequent comparison + */ + convert_dirname(datadir_buffer, mysql_unpacked_real_data_home, NullS); + opt_datadir_len= strlen(datadir_buffer); + + case_insensitive_fs= + (test_if_case_insensitive(datadir_buffer) == 1); + + if (!case_insensitive_fs) + { + if (!strncmp(datadir_buffer, opt_secure_file_priv, + opt_datadir_len < opt_secure_file_priv_len ? + opt_datadir_len : opt_secure_file_priv_len)) + { + warn= true; + strcpy(whichdir, "Data directory"); + } + } + else + { + if (!files_charset_info->coll->strnncoll(files_charset_info, + (uchar *) datadir_buffer, + opt_datadir_len, + (uchar *) opt_secure_file_priv, + opt_secure_file_priv_len, + TRUE)) + { + warn= true; + strcpy(whichdir, "Data directory"); + } + } + + /* + Don't bother comparing --secure-file-priv with --plugin-dir + if we already have a match against --datadir or + --plugin-dir is not pointing to a valid directory. + */ + if (!warn && !my_realpath(plugindir_buffer, opt_plugin_dir, 0)) + { + convert_dirname(plugindir_buffer, plugindir_buffer, NullS); + opt_plugindir_len= strlen(plugindir_buffer); + + if (!case_insensitive_fs) + { + if (!strncmp(plugindir_buffer, opt_secure_file_priv, + opt_plugindir_len < opt_secure_file_priv_len ? + opt_plugindir_len : opt_secure_file_priv_len)) + { + warn= true; + strcpy(whichdir, "Plugin directory"); + } + } + else + { + if (!files_charset_info->coll->strnncoll(files_charset_info, + (uchar *) plugindir_buffer, + opt_plugindir_len, + (uchar *) opt_secure_file_priv, + opt_secure_file_priv_len, + TRUE)) + { + warn= true; + strcpy(whichdir, "Plugin directory"); + } + } + } + + + if (warn) + sql_print_warning("Insecure configuration for --secure-file-priv: " + "%s is accessible through " + "--secure-file-priv. Consider choosing a different " + "directory.", whichdir); + +#ifndef _WIN32 + /* + Check for --secure-file-priv directory's permission + */ + if (!(my_stat(opt_secure_file_priv, &dir_stat, MYF(0)))) + { + sql_print_error("Failed to get stat for directory pointed out " + "by --secure-file-priv"); + return false; + } + + if (dir_stat.st_mode & S_IRWXO) + sql_print_warning("Insecure configuration for --secure-file-priv: " + "Location is accessible to all OS users. " + "Consider choosing a different directory."); +#endif + return true; +} + + static int fix_paths(void) { char buff[FN_REFLEN],*pos; + bool secure_file_priv_nonempty= false; convert_dirname(mysql_home,mysql_home,NullS); /* Resolve symlinks to allow 'mysql_home' to be a relative symlink */ my_realpath(mysql_home,mysql_home,MYF(0)); @@ -7715,29 +7894,56 @@ static int fix_paths(void) Convert the secure-file-priv option to system format, allowing a quick strcmp to check if read or write is in an allowed dir */ - if (opt_secure_file_priv) + if (opt_bootstrap) + opt_secure_file_priv= EMPTY_STR.str; + secure_file_priv_nonempty= opt_secure_file_priv[0] ? true : false; + + if (secure_file_priv_nonempty && strlen(opt_secure_file_priv) > FN_REFLEN) { - if (*opt_secure_file_priv == 0) - { - my_free(opt_secure_file_priv); - opt_secure_file_priv= 0; - } - else - { - if (strlen(opt_secure_file_priv) >= FN_REFLEN) - opt_secure_file_priv[FN_REFLEN-1]= '\0'; - if (my_realpath(buff, opt_secure_file_priv, 0)) - { - sql_print_warning("Failed to normalize the argument for --secure-file-priv."); - return 1; - } - char *secure_file_real_path= (char *)my_malloc(FN_REFLEN, MYF(MY_FAE)); - convert_dirname(secure_file_real_path, buff, NullS); - my_free(opt_secure_file_priv); - opt_secure_file_priv= secure_file_real_path; - } + sql_print_warning("Value for --secure-file-priv is longer than maximum " + "limit of %d", FN_REFLEN-1); + return 1; } - + + memset(buff, 0, sizeof(buff)); + if (secure_file_priv_nonempty && + my_strcasecmp(system_charset_info, opt_secure_file_priv, "NULL")) + { + int retval= my_realpath(buff, opt_secure_file_priv, MYF(MY_WME)); + if (!retval) + { + convert_dirname(secure_file_real_path, buff, NullS); +#ifdef WIN32 + MY_DIR *dir= my_dir(secure_file_real_path, MYF(MY_DONT_SORT+MY_WME)); + if (!dir) + { + retval= 1; + } + else + { + my_dirend(dir); + } +#endif + } + + if (retval) + { + char err_buffer[FN_REFLEN]; + my_snprintf(err_buffer, FN_REFLEN-1, + "Failed to access directory for --secure-file-priv." + " Please make sure that directory exists and is " + "accessible by MySQL Server. Supplied value : %s", + opt_secure_file_priv); + err_buffer[FN_REFLEN-1]='\0'; + sql_print_error("%s", err_buffer); + return 1; + } + opt_secure_file_priv= secure_file_real_path; + } + + if (!check_secure_file_priv_path()) + return 1; + return 0; } diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 0696021cfc0..d9fda85d8f6 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -68,6 +68,8 @@ char internal_table_name[2]= "*"; char empty_c_string[1]= {0}; /* used for not defined db */ +LEX_STRING EMPTY_STR= { (char *) "", 0 }; + const char * const THD::DEFAULT_WHERE= "field list"; diff --git a/sql/sql_class.h b/sql/sql_class.h index dcc7458ee50..aa6745e4564 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -105,6 +105,7 @@ enum enum_filetype { FILETYPE_CSV, FILETYPE_XML }; extern char internal_table_name[2]; extern char empty_c_string[1]; +extern LEX_STRING EMPTY_STR; extern MYSQL_PLUGIN_IMPORT const char **errmesg; extern bool volatile shutdown_in_progress; diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index d08cb4f8ca8..6fd728d638d 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -1941,8 +1941,12 @@ static Sys_var_charptr Sys_secure_file_priv( "secure_file_priv", "Limit LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() to files " "within specified directory", - PREALLOCATED READ_ONLY GLOBAL_VAR(opt_secure_file_priv), - CMD_LINE(REQUIRED_ARG), IN_FS_CHARSET, DEFAULT(0)); + READ_ONLY GLOBAL_VAR(opt_secure_file_priv), +#ifndef EMBEDDED_LIBRARY + CMD_LINE(REQUIRED_ARG), IN_FS_CHARSET, DEFAULT(DEFAULT_SECURE_FILE_PRIV_DIR)); +#else + CMD_LINE(REQUIRED_ARG), IN_FS_CHARSET, DEFAULT(DEFAULT_SECURE_FILE_PRIV_EMBEDDED_DIR)); +#endif static bool fix_server_id(sys_var *self, THD *thd, enum_var_type type) { diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 5af4783f919..211ed4f3888 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -1,4 +1,4 @@ -# Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. # # 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 @@ -562,6 +562,7 @@ install -d $RBR%{_includedir} install -d $RBR%{_libdir} install -d $RBR%{_mandir} install -d $RBR%{_sbindir} +install -d $RBR/var/lib/mysql-files mkdir -p $RBR%{_sysconfdir}/my.cnf.d @@ -1141,6 +1142,7 @@ echo "=====" >> $STATUS_HISTORY %attr(755, root, root) %{_sysconfdir}/init.d/mysql %attr(755, root, root) %{_datadir}/mysql/ +%dir %attr(750, mysql, mysql) /var/lib/mysql-files # ---------------------------------------------------------------------------- %files -n MySQL-client%{product_suffix} @@ -1226,6 +1228,9 @@ echo "=====" >> $STATUS_HISTORY # merging BK trees) ############################################################################## %changelog +* Mon Sep 26 2016 Balasubramanian Kandasamy +- Include mysql-files directory + * Wed Jul 02 2014 Bjorn Munch - Disable dtrace unconditionally, breaks after we install Oracle dtrace From da97aa6885959daff4b87360128cdc9952e4759e Mon Sep 17 00:00:00 2001 From: "mysql-builder@oracle.com" <> Date: Thu, 29 Sep 2016 11:02:05 +0530 Subject: [PATCH 015/258] From 65febcce97ebe2da0c9723b76a041e249b053a98 Mon Sep 17 00:00:00 2001 From: Vasil Dimov Date: Tue, 27 Sep 2016 14:09:54 +0300 Subject: [PATCH 016/258] Fix Bug#24707869 GCC 5 AND 6 MISCOMPILE MACH_PARSE_COMPRESSED Prevent GCC from moving a mach_read_from_4() before we have checked that we have 4 bytes to read. The pointer may only point to a 1, 2 or 3 bytes in which case the code should not read 4 bytes. This is a workaround to a GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77673 Patch submitted by: Laurynas Biveinis RB: 14135 Reviewed by: Pawel Olchawa --- storage/innobase/mach/mach0data.c | 57 ++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/storage/innobase/mach/mach0data.c b/storage/innobase/mach/mach0data.c index 95b135b0954..9669516244d 100644 --- a/storage/innobase/mach/mach0data.c +++ b/storage/innobase/mach/mach0data.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2009, Innobase Oy. All Rights Reserved. +Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -55,8 +55,22 @@ mach_parse_compressed( if (flag < 0x80UL) { *val = flag; return(ptr + 1); + } - } else if (flag < 0xC0UL) { + /* Workaround GCC bug + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77673: + the compiler moves mach_read_from_4 right to the beginning of the + function, causing and out-of-bounds read if we are reading a short + integer close to the end of buffer. */ +#if defined(__GNUC__) && (__GNUC__ >= 5) && !defined(__clang__) +#define DEPLOY_FENCE +#endif + +#ifdef DEPLOY_FENCE + __atomic_thread_fence(__ATOMIC_ACQUIRE); +#endif + + if (flag < 0xC0UL) { if (end_ptr < ptr + 2) { return(NULL); } @@ -64,8 +78,13 @@ mach_parse_compressed( *val = mach_read_from_2(ptr) & 0x7FFFUL; return(ptr + 2); + } - } else if (flag < 0xE0UL) { +#ifdef DEPLOY_FENCE + __atomic_thread_fence(__ATOMIC_ACQUIRE); +#endif + + if (flag < 0xE0UL) { if (end_ptr < ptr + 3) { return(NULL); } @@ -73,7 +92,13 @@ mach_parse_compressed( *val = mach_read_from_3(ptr) & 0x3FFFFFUL; return(ptr + 3); - } else if (flag < 0xF0UL) { + } + +#ifdef DEPLOY_FENCE + __atomic_thread_fence(__ATOMIC_ACQUIRE); +#endif + + if (flag < 0xF0UL) { if (end_ptr < ptr + 4) { return(NULL); } @@ -81,14 +106,20 @@ mach_parse_compressed( *val = mach_read_from_4(ptr) & 0x1FFFFFFFUL; return(ptr + 4); - } else { - ut_ad(flag == 0xF0UL); - - if (end_ptr < ptr + 5) { - return(NULL); - } - - *val = mach_read_from_4(ptr + 1); - return(ptr + 5); } + +#ifdef DEPLOY_FENCE + __atomic_thread_fence(__ATOMIC_ACQUIRE); +#endif + +#undef DEPLOY_FENCE + + ut_ad(flag == 0xF0UL); + + if (end_ptr < ptr + 5) { + return(NULL); + } + + *val = mach_read_from_4(ptr + 1); + return(ptr + 5); } From 1f93f4381b60e3a8012ba36a4dec920416073759 Mon Sep 17 00:00:00 2001 From: Terje Rosten Date: Thu, 6 Oct 2016 13:26:16 +0200 Subject: [PATCH 017/258] Bug#24483092 UNSAFE USE OF VARIOUS SHELL UTILITIES - Remove use of touch and chmod. - Restrict usage of chown to cases where target directory is /var/log. - Due to limited feature set in /bin/sh on Solaris, /bin/bash will be used on this platform. - Give error if directory for UNIX socket file is missing. - Privileged user should not log to files owned by different user (mysqld will log as before). --- scripts/CMakeLists.txt | 10 +++- scripts/mysqld_safe.sh | 109 +++++++++++++++++++++++++++++++---------- 2 files changed, 92 insertions(+), 27 deletions(-) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 05bf8530a26..920b6854334 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. # # 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 @@ -105,7 +105,13 @@ ELSE() ENDIF() IF(UNIX) - # FIND_PROC and CHECK_PID are used by mysqld_safe + # SHELL_PATH, FIND_PROC, CHECK_PID are used by mysqld_safe +IF(CMAKE_SYSTEM_NAME MATCHES "SunOS") + SET (SHELL_PATH "/bin/bash") +ELSE() + SET (SHELL_PATH "/bin/sh") +ENDIF() + IF(CMAKE_SYSTEM_NAME MATCHES "Linux") SET (FIND_PROC "ps wwwp $PID | grep -v mysqld_safe | grep -- $MYSQLD > /dev/null") diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 1b30a3bb15b..4b103817ab6 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!@SHELL_PATH@ # Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB # This file is public domain and comes with NO WARRANTY of any kind # @@ -125,7 +125,13 @@ log_generic () { echo "$msg" case $logging in init) ;; # Just echo the message, don't save it anywhere - file) echo "$msg" >> "$err_log" ;; + file) + if [ -w / -o "$USER" = "root" ]; then + true + else + echo "$msg" >> "$err_log" + fi + ;; syslog) logger -t "$syslog_tag_mysqld_safe" -p "$priority" "$*" ;; *) echo "Internal program error (non-fatal):" \ @@ -145,7 +151,13 @@ log_notice () { eval_log_error () { cmd="$1" case $logging in - file) cmd="$cmd >> "`shell_quote_string "$err_log"`" 2>&1" ;; + file) + if [ -w / -o "$USER" = "root" ]; then + cmd="$cmd > /dev/null 2>&1" + else + cmd="$cmd >> "`shell_quote_string "$err_log"`" 2>&1" + fi + ;; syslog) # mysqld often prefixes its messages with a timestamp, which is # redundant when logging to syslog (which adds its own timestamp) @@ -571,14 +583,7 @@ then fi # Log to err_log file - log_notice "Logging to '$err_log'." logging=file - - if [ ! -f "$err_log" -a ! -h "$err_log" ]; then # if error log already exists, - touch "$err_log" # we just append. otherwise, - chmod "$fmode" "$err_log" # fix the permissions here! - fi - else if [ -n "$syslog_tag" ] then @@ -591,6 +596,48 @@ else logging=syslog fi +logdir=`dirname "$err_log"` +# Change the err log to the right user, if possible and it is in use +if [ $logging = "file" -o $logging = "both" ]; then + if [ ! -f "$err_log" -a ! -h "$err_log" ]; then + if test -w / -o "$USER" = "root"; then + case $logdir in + /var/log) + ( + umask 0137 + set -o noclobber + > "$err_log" && chown $user "$err_log" + ) ;; + *) ;; + esac + else + ( + umask 0137 + set -o noclobber + > "$err_log" + ) + fi + fi + + if [ -f "$err_log" ]; then # Log to err_log file + log_notice "Logging to '$err_log'." + elif [ "x$user" = "xroot" ]; then # running as root, mysqld can create log file; continue + echo "Logging to '$err_log'." >&2 + else + case $logdir in + # We can't create $err_log, however mysqld can; continue + /tmp|/var/tmp|/var/log/mysql|$DATADIR) + echo "Logging to '$err_log'." >&2 + ;; + # We can't create $err_log and don't know if mysqld can; error out + *) + log_error "error: log-error set to '$err_log', however file don't exists. Create writable for user '$user'." + exit 1 + ;; + esac + fi +fi + USER_OPTION="" if test -w / -o "$USER" = "root" then @@ -598,11 +645,6 @@ then then USER_OPTION="--user=$user" fi - # Change the err log to the right user, if it is in use - if [ $want_syslog -eq 0 -a ! -h "$err_log" ]; then - touch "$err_log" - chown $user "$err_log" - fi if test -n "$open_files" then ulimit -n $open_files @@ -615,15 +657,12 @@ then fi safe_mysql_unix_port=${mysql_unix_port:-${MYSQL_UNIX_PORT:-@MYSQL_UNIX_ADDR@}} -# Make sure that directory for $safe_mysql_unix_port exists +# Check that directory for $safe_mysql_unix_port exists mysql_unix_port_dir=`dirname $safe_mysql_unix_port` if [ ! -d $mysql_unix_port_dir ] then - if [ ! -h $mysql_unix_port_dir ]; then - mkdir $mysql_unix_port_dir - chown $user $mysql_unix_port_dir - chmod 755 $mysql_unix_port_dir - fi + log_error "Directory '$mysql_unix_port_dir' for UNIX socket file don't exists." + exit 1 fi # If the user doesn't specify a binary, we assume name "mysqld" @@ -800,11 +839,31 @@ do eval_log_error "$cmd" + # hypothetical: log was renamed but not + # flushed yet. we'd recreate it with + # wrong owner next time we log, so set + # it up correctly while we can! + if [ $want_syslog -eq 0 -a ! -f "$err_log" -a ! -h "$err_log" ]; then - touch "$err_log" # hypothetical: log was renamed but not - chown $user "$err_log" # flushed yet. we'd recreate it with - chmod "$fmode" "$err_log" # wrong owner next time we log, so set - fi # it up correctly while we can! + if test -w / -o "$USER" = "root"; then + logdir=`dirname "$err_log"` + case $logdir in + /var/log) + ( + umask 0137 + set -o noclobber + > "$err_log" && chown $user "$err_log" + ) ;; + *) ;; + esac + else + ( + umask 0137 + set -o noclobber + > "$err_log" + ) + fi + fi end_time=`date +%M%S` From 149212772804e93983f80b63099ba9e1241ddf4f Mon Sep 17 00:00:00 2001 From: Karthik Kamath Date: Thu, 13 Oct 2016 14:48:45 +0530 Subject: [PATCH 018/258] BUG#23499695: MYSQL SERVER NORMAL SHUTDOWN WITH TIME STAMP 700101 ANALYSIS: ========= To set the time 'start_time' of query in THD, current time is obtained by calling 'gettimeofday()'. On Solaris platform, due to some system level issues, time obtained is invalid i.e. its either greater than 2038 (max signed value to hold microseconds since 1970) or 1970 (0 microseconds since 1970). In these cases, validation checks infer that the 'start_time' is invalid and mysql server initiates the shutdown process. But the reason for shutdown is not logged. FIX: ==== We are now logging appropriate message when shutdown is triggered in the above mentioned scenarios. Now, even if the initial validation checks infer that the 'start_time' is invalid, server shutdown is not initiated immediately. Before initiating the server shutdown, the process of setting 'start_time' and validating it is reiterated (for max 5 times). If correct time is obtained in these 5 iterations then server continues to run. --- sql/sql_parse.cc | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index fd3623c6148..ac3901997f3 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -889,17 +889,47 @@ bool dispatch_command(enum enum_server_command command, THD *thd, thd->enable_slow_log= TRUE; thd->lex->sql_command= SQLCOM_END; /* to avoid confusing VIEW detectors */ thd->set_time(); - if (!thd->is_valid_time()) + if (thd->is_valid_time() == false) { /* - If the time has got past 2038 we need to shut this server down - We do this by making sure every command is a shutdown and we - have enough privileges to shut the server down - - TODO: remove this when we have full 64 bit my_time_t support + If the time has gone past 2038 we need to shutdown the server. But + there is possibility of getting invalid time value on some platforms. + For example, gettimeofday() might return incorrect value on solaris + platform. Hence validating the current time with 5 iterations before + initiating the normal server shutdown process because of time getting + past 2038. */ - thd->security_ctx->master_access|= SHUTDOWN_ACL; - command= COM_SHUTDOWN; + const int max_tries= 5; + sql_print_warning("Current time has got past year 2038. Validating current " + "time with %d iterations before initiating the normal " + "server shutdown process.", max_tries); + + int tries= 0; + while (++tries <= max_tries) + { + thd->set_time(); + if (thd->is_valid_time() == true) + { + sql_print_warning("Iteration %d: Obtained valid current time from " + "system", tries); + break; + } + sql_print_warning("Iteration %d: Current time obtained from system is " + "greater than 2038", tries); + } + if (tries > max_tries) + { + /* + If the time has got past 2038 we need to shut this server down. + We do this by making sure every command is a shutdown and we + have enough privileges to shut the server down + + TODO: remove this when we have full 64 bit my_time_t support + */ + sql_print_error("This MySQL server doesn't support dates later than 2038"); + thd->security_ctx->master_access|= SHUTDOWN_ACL; + command= COM_SHUTDOWN; + } } thd->set_query_id(next_query_id()); inc_thread_running(); From 63b2c9765068d82fc1ee3932ce21f9330eef4b55 Mon Sep 17 00:00:00 2001 From: Terje Rosten Date: Mon, 24 Oct 2016 13:11:34 +0200 Subject: [PATCH 019/258] Bug#24925181 INCORRECT ISA DETECTION CODE IN OEL RPM SPEC Wrapper for mysql_config used in multilib installs modified to work as intended, added more archs (aarch64, ppc64le, s390x, s390, sparc and sparc64) to lists in fallback mode and use same script for EL and Fedora. Thanks to Alexey Kopytov for report and fix. --- packaging/rpm-oel/mysql_config.sh | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packaging/rpm-oel/mysql_config.sh b/packaging/rpm-oel/mysql_config.sh index abe46e0ed74..8044ed44164 100644 --- a/packaging/rpm-oel/mysql_config.sh +++ b/packaging/rpm-oel/mysql_config.sh @@ -2,22 +2,30 @@ # # Wrapper script for mysql_config to support multilib # -# Only works on OEL6/RHEL6 and similar # -# This command respects setarch +# This command respects setarch, works on OL6/RHEL6 and later bits=$(rpm --eval %__isa_bits) case $bits in - 32|64) status=known ;; - *) status=unknown ;; + 32|64) ;; + *) bits=unknown ;; esac -if [ "$status" = "unknown" ] ; then - echo "$0: error: command 'rpm --eval %__isa_bits' returned unknown value: $bits" - exit 1 +# Try mapping by uname if rpm command failed +if [ "$bits" = "unknown" ] ; then + arch=$(uname -m) + case $arch in + x86_64|ppc64|ppc64le|aarch64|s390x|sparc64) bits=64 ;; + i386|i486|i586|i686|pentium3|pentium4|athlon|ppc|s390|sparc) bits=32 ;; + *) bits=unknown ;; + esac fi +if [ "$bits" == "unknown" ] ; then + echo "$0: error: failed to determine isa bits on your arch." + exit 1 +fi if [ -x /usr/bin/mysql_config-$bits ] ; then /usr/bin/mysql_config-$bits "$@" @@ -25,4 +33,3 @@ else echo "$0: error: needed binary: /usr/bin/mysql_config-$bits is missing. Please check your MySQL installation." exit 1 fi - From 31d8c9221fb9451c4e269be7b0d4d26a882e730e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 25 Oct 2016 16:58:47 +0200 Subject: [PATCH 020/258] 5.6.34 From ae473368feea7dc75f10624495eb210ae10e1c05 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 25 Oct 2016 16:59:57 +0200 Subject: [PATCH 021/258] 5.6.34 From c3cf7f47f0f4a1ec314001aaf0c3d9c1c1f62097 Mon Sep 17 00:00:00 2001 From: Thayumanavar S Date: Fri, 28 Oct 2016 14:45:03 +0200 Subject: [PATCH 022/258] BUG#24487120 - SLAVE'S SLAVE_SQL_RUNNING IS STOPPED DURING LOAD DATA AT MASTER. Revert "BUG#23080148 - BACKPORT BUG 14653594 AND BUG 20683959 TO" This reverts commit 1d31f5b3090d129382b50b95512f2f79305715a1. The commit causes replication incompatibility between minor revisions and based on discussion with Srinivasarao, the patch is reverted. --- mysql-test/r/loaddata.result | 26 +------ mysql-test/std_data/bug20683959loaddata.txt | 1 - mysql-test/t/loaddata.test | 25 +------ sql/sql_load.cc | 77 ++++++++------------- 4 files changed, 30 insertions(+), 99 deletions(-) delete mode 100644 mysql-test/std_data/bug20683959loaddata.txt diff --git a/mysql-test/r/loaddata.result b/mysql-test/r/loaddata.result index 2f2a3579eec..2d67d24bedd 100644 --- a/mysql-test/r/loaddata.result +++ b/mysql-test/r/loaddata.result @@ -507,7 +507,7 @@ DROP TABLE t1; # Bug#11765139 58069: LOAD DATA INFILE: VALGRIND REPORTS INVALID MEMORY READS AND WRITES WITH U # CREATE TABLE t1(f1 INT); -SELECT 0xE1C330 INTO OUTFILE 't1.dat'; +SELECT 0xE1BB30 INTO OUTFILE 't1.dat'; LOAD DATA INFILE 't1.dat' IGNORE INTO TABLE t1 CHARACTER SET utf8; DROP TABLE t1; # @@ -532,27 +532,3 @@ FIELDS TERMINATED BY 't' LINES TERMINATED BY ''; Got one of the listed errors SET @@sql_mode= @old_mode; DROP TABLE t1; - -# -# Bug#23080148 - Backport of Bug#20683959. -# Bug#20683959 LOAD DATA INFILE IGNORES A SPECIFIC ROW SILENTLY -# UNDER DB CHARSET IS UTF8. -# -CREATE DATABASE d1 CHARSET latin1; -USE d1; -CREATE TABLE t1 (val TEXT); -LOAD DATA INFILE '../../std_data/bug20683959loaddata.txt' INTO TABLE t1; -SELECT COUNT(*) FROM t1; -COUNT(*) -1 -SELECT HEX(val) FROM t1; -HEX(val) -C38322525420406E696F757A656368756E3A20E98198E2889AF58081AEE7B99DE4B88AE383A3E7B99DE69690F58087B3E7B9A7EFBDA8E7B99DEFBDB3E7B99DE78999E880B3E7B8BAEFBDAAE7B9A7E89699E296A1E7B8BAE4BBA3EFBD8CE7B8BAEFBDA9E7B8B2E2889AE38184E7B99DEFBDB3E7B99DE4B88AE383A3E7B99DE69690F58087B3E7B9A7EFBDA8E7B99DEFBDB3E7B99DE5B3A8EFBD84E8ABA0EFBDA8E89C89F580948EE599AAE7B8BAEFBDAAE7B8BAE9A198EFBDA9EFBDB1E7B9A7E581B5E289A0E7B8BAEFBDBEE7B9A7E9A194EFBDA9E882B4EFBDA5EFBDB5E980A7F5808B96E28693E99EABE38287E58F99E7B8BAE58AB1E28691E7B8BAF5808B9AE7828AE98095EFBDB1E7B8BAEFBDAFE7B8B2E288ABE6A89FE89EB3E6BA98F58081ADE88EA0EFBDBAE98095E6BA98F58081AEE89D93EFBDBAE8AD9BEFBDACE980A7F5808B96E28693E7B8BAF580918EE288AAE7B8BAE4B88AEFBC9EE7B8BAE4B99DE28691E7B8BAF5808B96EFBCA0E88DB3E6A68AEFBDB9EFBDB3E981B2E5B3A8E296A1E7B8BAE7A4BCE7828AE88DB3E6A68AEFBDB0EFBDBDE7B8BAA0E7B8BAE88B93EFBDBEE5B899EFBC9E -CREATE DATABASE d2 CHARSET utf8; -USE d2; -CREATE TABLE t1 (val TEXT); -LOAD DATA INFILE '../../std_data/bug20683959loaddata.txt' INTO TABLE t1; -ERROR HY000: Invalid utf8 character string: 'Ã"RT @niouzechun: \9058\221A' -DROP TABLE d1.t1, d2.t1; -DROP DATABASE d1; -DROP DATABASE d2; diff --git a/mysql-test/std_data/bug20683959loaddata.txt b/mysql-test/std_data/bug20683959loaddata.txt deleted file mode 100644 index 1878cc78879..00000000000 --- a/mysql-test/std_data/bug20683959loaddata.txt +++ /dev/null @@ -1 +0,0 @@ -Ã"RT @niouzechun: é˜âˆšõ€®ç¹ä¸Šãƒ£ç¹æ–õ€‡³ç¹§ï½¨ç¹ï½³ç¹ç‰™è€³ç¸ºï½ªç¹§è–™â–¡ç¸ºä»£ï½Œç¸ºï½©ç¸²âˆšã„ç¹ï½³ç¹ä¸Šãƒ£ç¹æ–õ€‡³ç¹§ï½¨ç¹ï½³ç¹å³¨ï½„諠ィ蜉õ€”Žå™ªç¸ºï½ªç¸ºé¡˜ï½©ï½±ç¹§åµâ‰ ç¸ºï½¾ç¹§é¡”ゥ肴・オ逧õ€‹–↓鞫ょå™ç¸ºåŠ±â†‘ç¸ºõ€‹šç‚Šé€•ア縺ッ縲∫樟螳溘õ€­èŽ ï½ºé€•æº˜õ€®è“コ譛ャ逧õ€‹–↓縺õ€‘Žâˆªç¸ºä¸Šï¼žç¸ºä¹â†‘縺õ€‹–ï¼ è³æ¦Šï½¹ï½³é²å³¨â–¡ç¸ºç¤¼ç‚Šè³æ¦Šï½°ï½½ç¸º ç¸ºè‹“セ帙> diff --git a/mysql-test/t/loaddata.test b/mysql-test/t/loaddata.test index 9a664b84843..aa7be52484e 100644 --- a/mysql-test/t/loaddata.test +++ b/mysql-test/t/loaddata.test @@ -610,7 +610,7 @@ disconnect con1; --echo # CREATE TABLE t1(f1 INT); -EVAL SELECT 0xE1C330 INTO OUTFILE 't1.dat'; +EVAL SELECT 0xE1BB30 INTO OUTFILE 't1.dat'; --disable_warnings LOAD DATA INFILE 't1.dat' IGNORE INTO TABLE t1 CHARACTER SET utf8; --enable_warnings @@ -656,26 +656,3 @@ SET @@sql_mode= @old_mode; --remove_file $MYSQLTEST_VARDIR/mysql DROP TABLE t1; ---echo ---echo # ---echo # Bug#23080148 - Backport of Bug#20683959. ---echo # Bug#20683959 LOAD DATA INFILE IGNORES A SPECIFIC ROW SILENTLY ---echo # UNDER DB CHARSET IS UTF8. ---echo # - -CREATE DATABASE d1 CHARSET latin1; -USE d1; -CREATE TABLE t1 (val TEXT); -LOAD DATA INFILE '../../std_data/bug20683959loaddata.txt' INTO TABLE t1; -SELECT COUNT(*) FROM t1; -SELECT HEX(val) FROM t1; - -CREATE DATABASE d2 CHARSET utf8; -USE d2; -CREATE TABLE t1 (val TEXT); ---error ER_INVALID_CHARACTER_STRING -LOAD DATA INFILE '../../std_data/bug20683959loaddata.txt' INTO TABLE t1; - -DROP TABLE d1.t1, d2.t1; -DROP DATABASE d1; -DROP DATABASE d2; diff --git a/sql/sql_load.cc b/sql/sql_load.cc index a46967a24a8..c084e5e3839 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -1363,8 +1363,8 @@ READ_INFO::READ_INFO(File file_par, uint tot_length, CHARSET_INFO *cs, set_if_bigger(length,line_start.length()); stack=stack_pos=(int*) sql_alloc(sizeof(int)*length); - if (!(buffer=(uchar*) my_malloc(buff_length+1,MYF(MY_WME)))) - error= true; /* purecov: inspected */ + if (!(buffer=(uchar*) my_malloc(buff_length+1,MYF(0)))) + error=1; /* purecov: inspected */ else { end_of_buff=buffer+buff_length; @@ -1556,50 +1556,37 @@ int READ_INFO::read_field() } } #ifdef USE_MB - uint ml= my_mbcharlen(read_charset, chr); - if (ml == 0) - { - *to= '\0'; - my_error(ER_INVALID_CHARACTER_STRING, MYF(0), - read_charset->csname, buffer); - error= true; - return 1; - } + if (my_mbcharlen(read_charset, chr) > 1 && + to + my_mbcharlen(read_charset, chr) <= end_of_buff) + { + uchar* p= to; + int ml, i; + *to++ = chr; - if (ml > 1 && - to + ml <= end_of_buff) - { - uchar* p= to; - *to++ = chr; + ml= my_mbcharlen(read_charset, chr); - for (uint i= 1; i < ml; i++) + for (i= 1; i < ml; i++) + { + chr= GET; + if (chr == my_b_EOF) { - chr= GET; - if (chr == my_b_EOF) - { - /* - Need to back up the bytes already ready from illformed - multi-byte char - */ - to-= i; - goto found_eof; - } - *to++ = chr; + /* + Need to back up the bytes already ready from illformed + multi-byte char + */ + to-= i; + goto found_eof; } - if (my_ismbchar(read_charset, + *to++ = chr; + } + if (my_ismbchar(read_charset, (const char *)p, (const char *)to)) - continue; - for (uint i= 0; i < ml; i++) - PUSH(*--to); - chr= GET; - } - else if (ml > 1) - { - // Buffer is too small, exit while loop, and reallocate. - PUSH(chr); - break; - } + continue; + for (i= 0; i < ml; i++) + PUSH(*--to); + chr= GET; + } #endif *to++ = (uchar) chr; } @@ -1843,15 +1830,7 @@ int READ_INFO::read_value(int delim, String *val) for (chr= GET; my_tospace(chr) != delim && chr != my_b_EOF;) { #ifdef USE_MB - uint ml= my_mbcharlen(read_charset, chr); - if (ml == 0) - { - chr= my_b_EOF; - val->length(0); - return chr; - } - - if (ml > 1) + if (my_mbcharlen(read_charset, chr) > 1) { DBUG_PRINT("read_xml",("multi byte")); int i, ml= my_mbcharlen(read_charset, chr); From 7971360ffa00e6a024182b1d437a50d174eb4b37 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Wed, 2 Nov 2016 21:08:44 -0400 Subject: [PATCH 023/258] Fix a build failure noticed on Yakkety. --- storage/innobase/handler/ha_innodb.h | 4 ++-- storage/xtradb/handler/ha_innodb.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/storage/innobase/handler/ha_innodb.h b/storage/innobase/handler/ha_innodb.h index adaad543dd1..eea1a1f7cff 100644 --- a/storage/innobase/handler/ha_innodb.h +++ b/storage/innobase/handler/ha_innodb.h @@ -467,8 +467,8 @@ extern "C" void wsrep_thd_set_conflict_state( extern "C" void wsrep_thd_set_trx_to_replay(THD *thd, uint64 trx_id); -extern "C"void wsrep_thd_LOCK(THD *thd); -extern "C"void wsrep_thd_UNLOCK(THD *thd); +extern "C" void wsrep_thd_LOCK(THD *thd); +extern "C" void wsrep_thd_UNLOCK(THD *thd); extern "C" uint32 wsrep_thd_wsrep_rand(THD *thd); extern "C" time_t wsrep_thd_query_start(THD *thd); extern "C" my_thread_id wsrep_thd_thread_id(THD *thd); diff --git a/storage/xtradb/handler/ha_innodb.h b/storage/xtradb/handler/ha_innodb.h index cb7dd6b9cf4..a824f4c680a 100644 --- a/storage/xtradb/handler/ha_innodb.h +++ b/storage/xtradb/handler/ha_innodb.h @@ -482,8 +482,8 @@ extern "C" void wsrep_thd_set_conflict_state( extern "C" void wsrep_thd_set_trx_to_replay(THD *thd, uint64 trx_id); -extern "C"void wsrep_thd_LOCK(THD *thd); -extern "C"void wsrep_thd_UNLOCK(THD *thd); +extern "C" void wsrep_thd_LOCK(THD *thd); +extern "C" void wsrep_thd_UNLOCK(THD *thd); extern "C" uint32 wsrep_thd_wsrep_rand(THD *thd); extern "C" time_t wsrep_thd_query_start(THD *thd); extern "C" my_thread_id wsrep_thd_thread_id(THD *thd); From c7e1c89070e34e13cb4a3e947021b91fb211959a Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Wed, 2 Nov 2016 21:10:39 -0400 Subject: [PATCH 024/258] Disable unstable galera_concurrent_ctas test. --- mysql-test/suite/galera/disabled.def | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index 771053778d3..907f7931483 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -29,5 +29,6 @@ galera_transaction_read_only : mysql-wsrep/issues/229 galera_gcs_fragment : Incorrect arguments to SET galera_flush_local : Fails sporadically galera_binlog_stmt_autoinc : TODO: investigate +galera_concurrent_ctas : Test times out, investigate galera_sst_xtrabackup-v2-options : TODO: Fix test case mysql-wsrep#33 : TODO: investigate From 5884aa15d40b4dcc6de5cbcf276200c5fcbac938 Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Sun, 6 Nov 2016 14:57:27 +0100 Subject: [PATCH 025/258] - Fix MDEV-11234. Escape quoting character. Should be doubled. Now it is also possible to escape it by a backslash. modified: storage/connect/tabfmt.cpp - Prepare making VEC table type support conditional. VEC tables might be unsupported in future versions modified: storage/connect/CMakeLists.txt modified: storage/connect/mycat.cc modified: storage/connect/reldef.cpp modified: storage/connect/xindex.cpp - MDEV-11067 suggested to add configuration support to the Apache wrapper. Was added but commented out until prooved it is really useful. modified: storage/connect/ApacheInterface.java modified: storage/connect/ha_connect.cc modified: storage/connect/jdbccat.h modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h modified: storage/connect/tabjdbc.cpp modified: storage/connect/tabjdbc.h - Remove useless members. modified: storage/connect/jdbconn.cpp modified: storage/connect/jdbconn.h - New UDF countin. modified: storage/connect/jsonudf.cpp modified: storage/connect/jsonudf.h --- storage/connect/ApacheInterface.java | 5 ++- storage/connect/CMakeLists.txt | 2 +- storage/connect/ha_connect.cc | 7 +++- storage/connect/jdbccat.h | 1 + storage/connect/jdbconn.cpp | 60 ++++++++++++++++------------ storage/connect/jdbconn.h | 6 +-- storage/connect/jsonudf.cpp | 47 ++++++++++++++++++++++ storage/connect/jsonudf.h | 3 ++ storage/connect/mycat.cc | 6 ++- storage/connect/reldef.cpp | 13 ++++-- storage/connect/tabfmt.cpp | 34 +++++++++++----- storage/connect/tabjdbc.cpp | 4 ++ storage/connect/tabjdbc.h | 1 + storage/connect/xindex.cpp | 8 +++- 14 files changed, 147 insertions(+), 50 deletions(-) diff --git a/storage/connect/ApacheInterface.java b/storage/connect/ApacheInterface.java index b4c8a4e9885..47b46dc0506 100644 --- a/storage/connect/ApacheInterface.java +++ b/storage/connect/ApacheInterface.java @@ -35,7 +35,10 @@ public class ApacheInterface extends JdbcInterface { ds.setPassword(parms[3]); pool.put(url, ds); } // endif ds - + + // if (parms.length > 4 && parms[4] != null) + // ds.setConnectionProperties(parms[4]); + // Get a connection from the data source conn = ds.getConnection(); diff --git a/storage/connect/CMakeLists.txt b/storage/connect/CMakeLists.txt index 95d88538119..2122e56134b 100644 --- a/storage/connect/CMakeLists.txt +++ b/storage/connect/CMakeLists.txt @@ -38,7 +38,7 @@ user_connect.h valblk.h value.h xindex.h xobject.h xtable.h) # Definitions that are shared for all OSes # add_definitions( -DMARIADB -DFORCE_INIT_OF_VARS -Dconnect_EXPORTS) -add_definitions( -DHUGE_SUPPORT -DZIP_SUPPORT -DPIVOT_SUPPORT ) +add_definitions( -DHUGE_SUPPORT -DZIP_SUPPORT -DPIVOT_SUPPORT -DVCT_SUPPORT ) # diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index cf945a73f46..2222e51b083 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -171,7 +171,7 @@ #define JSONMAX 10 // JSON Default max grp size extern "C" { - char version[]= "Version 1.04.0008 August 10, 2016"; + char version[]= "Version 1.04.0008 October 20, 2016"; #if defined(__WIN__) char compver[]= "Version 1.04.0008 " __DATE__ " " __TIME__; char slash= '\\'; @@ -5190,7 +5190,8 @@ static int connect_assisted_discovery(handlerton *, THD* thd, PJPARM sjp= NULL; char *driver= NULL; char *url= NULL; - char *tabtyp = NULL; +//char *prop= NULL; + char *tabtyp= NULL; #endif // JDBC_SUPPORT uint tm, fnc= FNC_NO, supfnc= (FNC_NO | FNC_COL); bool bif, ok= false, dbf= false; @@ -5256,6 +5257,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, #if defined(JDBC_SUPPORT) driver= GetListOption(g, "Driver", topt->oplist, NULL); // url= GetListOption(g, "URL", topt->oplist, NULL); +// prop = GetListOption(g, "Properties", topt->oplist, NULL); tabtyp = GetListOption(g, "Tabtype", topt->oplist, NULL); #endif // JDBC_SUPPORT mxe= atoi(GetListOption(g,"maxerr", topt->oplist, "0")); @@ -5366,6 +5368,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, jdef->SetName(create_info->alias); sjp= (PJPARM)PlugSubAlloc(g, NULL, sizeof(JDBCPARM)); sjp->Driver= driver; +// sjp->Properties = prop; sjp->Fsize= 0; sjp->Scrollable= false; diff --git a/storage/connect/jdbccat.h b/storage/connect/jdbccat.h index 37f33d7063d..7108aa376ce 100644 --- a/storage/connect/jdbccat.h +++ b/storage/connect/jdbccat.h @@ -8,6 +8,7 @@ typedef struct jdbc_parms { char *Url; // Driver URL char *User; // User connect info char *Pwd; // Password connect info +//char *Properties; // Connection property list //int Cto; // Connect timeout //int Qto; // Query timeout int Fsize; // Fetch size diff --git a/storage/connect/jdbconn.cpp b/storage/connect/jdbconn.cpp index dca9bd0eac4..b31e77bf1ff 100644 --- a/storage/connect/jdbconn.cpp +++ b/storage/connect/jdbconn.cpp @@ -525,10 +525,10 @@ JDBConn::JDBConn(PGLOBAL g, TDBJDBC *tdbp) m_Wrap = strcat(strcpy(wn, "wrappers/"), m_Wrap); } // endif m_Wrap - m_Driver = NULL; - m_Url = NULL; - m_User = NULL; - m_Pwd = NULL; +//m_Driver = NULL; +//m_Url = NULL; +//m_User = NULL; +//m_Pwd = NULL; m_Ncol = 0; m_Aff = 0; m_Rows = 0; @@ -772,7 +772,7 @@ bool JDBConn::GetJVM(PGLOBAL g) /***********************************************************************/ int JDBConn::Open(PJPARM sop) { - + int irc = RC_FX; bool err = false; jboolean jt = (trace > 0); PGLOBAL& g = m_G; @@ -865,30 +865,37 @@ int JDBConn::Open(PJPARM sop) switch (rc) { case JNI_OK: strcpy(g->Message, "VM successfully created"); + irc = RC_OK; break; case JNI_ERR: strcpy(g->Message, "Initialising JVM failed: unknown error"); - return RC_FX; + break; case JNI_EDETACHED: strcpy(g->Message, "Thread detached from the VM"); - return RC_FX; + break; case JNI_EVERSION: strcpy(g->Message, "JNI version error"); - return RC_FX; + break; case JNI_ENOMEM: strcpy(g->Message, "Not enough memory"); - return RC_FX; + break; case JNI_EEXIST: strcpy(g->Message, "VM already created"); - return RC_FX; + break; case JNI_EINVAL: strcpy(g->Message, "Invalid arguments"); - return RC_FX; + break; default: - sprintf(g->Message, "Unknown return code %d", rc); - return RC_FX; + sprintf(g->Message, "Unknown return code %d", (int)rc); + break; } // endswitch rc + if (trace) + htrc("%s\n", g->Message); + + if (irc != RC_OK) + return irc; + //=============== Display JVM version =============== jint ver = env->GetVersion(); printf("JVM Version %d.%d\n", ((ver>>16)&0x0f), (ver&0x0f)); @@ -978,10 +985,10 @@ int JDBConn::Open(PJPARM sop) jobjectArray parms = env->NewObjectArray(4, // constructs java array of 4 env->FindClass("java/lang/String"), NULL); // Strings - m_Driver = sop->Driver; - m_Url = sop->Url; - m_User = sop->User; - m_Pwd = sop->Pwd; +//m_Driver = sop->Driver; +//m_Url = sop->Url; +//m_User = sop->User; +//m_Pwd = sop->Pwd; m_Scrollable = sop->Scrollable; m_RowsetSize = sop->Fsize; //m_LoginTimeout = sop->Cto; @@ -989,17 +996,20 @@ int JDBConn::Open(PJPARM sop) //m_UseCnc = sop->UseCnc; // change some elements - if (m_Driver) - env->SetObjectArrayElement(parms, 0, env->NewStringUTF(m_Driver)); + if (sop->Driver) + env->SetObjectArrayElement(parms, 0, env->NewStringUTF(sop->Driver)); - if (m_Url) - env->SetObjectArrayElement(parms, 1, env->NewStringUTF(m_Url)); + if (sop->Url) + env->SetObjectArrayElement(parms, 1, env->NewStringUTF(sop->Url)); - if (m_User) - env->SetObjectArrayElement(parms, 2, env->NewStringUTF(m_User)); + if (sop->User) + env->SetObjectArrayElement(parms, 2, env->NewStringUTF(sop->User)); - if (m_Pwd) - env->SetObjectArrayElement(parms, 3, env->NewStringUTF(m_Pwd)); + if (sop->Pwd) + env->SetObjectArrayElement(parms, 3, env->NewStringUTF(sop->Pwd)); + +//if (sop->Properties) +// env->SetObjectArrayElement(parms, 4, env->NewStringUTF(sop->Properties)); // call method rc = env->CallIntMethod(job, cid, parms, m_RowsetSize, m_Scrollable); diff --git a/storage/connect/jdbconn.h b/storage/connect/jdbconn.h index 0a1c52d4576..9d428142839 100644 --- a/storage/connect/jdbconn.h +++ b/storage/connect/jdbconn.h @@ -180,9 +180,9 @@ protected: char *Msg; char *m_Wrap; char m_IDQuoteChar[2]; - PSZ m_Driver; - PSZ m_Url; - PSZ m_User; +//PSZ m_Driver; +//PSZ m_Url; +//PSZ m_User; PSZ m_Pwd; int m_Ncol; int m_Aff; diff --git a/storage/connect/jsonudf.cpp b/storage/connect/jsonudf.cpp index 8bddc68e2ae..f9034f25739 100644 --- a/storage/connect/jsonudf.cpp +++ b/storage/connect/jsonudf.cpp @@ -5264,3 +5264,50 @@ char *envar(UDF_INIT *initid, UDF_ARGS *args, char *result, return str; } // end of envar +/*********************************************************************************/ +/* Returns the distinct number of B occurences in A. */ +/*********************************************************************************/ +my_bool countin_init(UDF_INIT *initid, UDF_ARGS *args, char *message) +{ + if (args->arg_count != 2) { + strcpy(message, "This function must have 2 arguments"); + return true; + } else if (args->arg_type[0] != STRING_RESULT) { + strcpy(message, "First argument must be string"); + return true; + } else if (args->arg_type[1] != STRING_RESULT) { + strcpy(message, "Second argument is not a string"); + return true; + } // endif args + + return false; +} // end of countin_init + +long long countin(UDF_INIT *initid, UDF_ARGS *args, char *result, + unsigned long *res_length, char *is_null, char *) +{ + PSZ str1, str2; + char *s; + long long n = 0; + size_t lg; + + lg = (size_t)args->lengths[0]; + s = str1 = (PSZ)malloc(lg + 1); + memcpy(str1, args->args[0], lg); + str1[lg] = 0; + + lg = (size_t)args->lengths[1]; + str2 = (PSZ)malloc(lg + 1); + memcpy(str2, args->args[1], lg); + str2[lg] = 0; + + while (s = strstr(s, str2)) { + n++; + s += lg; + } // endwhile + + free(str1); + free(str2); + return n; +} // end of countin + diff --git a/storage/connect/jsonudf.h b/storage/connect/jsonudf.h index 1406d9f2f2e..d2890421c62 100644 --- a/storage/connect/jsonudf.h +++ b/storage/connect/jsonudf.h @@ -221,6 +221,9 @@ extern "C" { DllExport my_bool envar_init(UDF_INIT*, UDF_ARGS*, char*); DllExport char *envar(UDF_EXEC_ARGS); + + DllExport my_bool countin_init(UDF_INIT*, UDF_ARGS*, char*); + DllExport long long countin(UDF_EXEC_ARGS); } // extern "C" diff --git a/storage/connect/mycat.cc b/storage/connect/mycat.cc index b4b03e6ba4a..19c9f62b5bf 100644 --- a/storage/connect/mycat.cc +++ b/storage/connect/mycat.cc @@ -64,7 +64,9 @@ #include "filamtxt.h" #include "tabdos.h" #include "tabfmt.h" +#if defined(VCT_SUPPORT) #include "tabvct.h" +#endif // VCT_SUPPORT #include "tabsys.h" #if defined(__WIN__) #include "tabmac.h" @@ -549,7 +551,9 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am) #if defined(XML_SUPPORT) case TAB_XML: tdp= new(g) XMLDEF; break; #endif // XML_SUPPORT - case TAB_VEC: tdp= new(g) VCTDEF; break; +#if defined(VCT_SUPPORT) + case TAB_VEC: tdp = new(g)VCTDEF; break; +#endif // VCT_SUPPORT #if defined(ODBC_SUPPORT) case TAB_ODBC: tdp= new(g) ODBCDEF; break; #endif // ODBC_SUPPORT diff --git a/storage/connect/reldef.cpp b/storage/connect/reldef.cpp index ac2327212e0..a62fcbf9416 100644 --- a/storage/connect/reldef.cpp +++ b/storage/connect/reldef.cpp @@ -40,7 +40,9 @@ #include "tabcol.h" #include "filamap.h" #include "filamfix.h" +#if defined(VCT_SUPPORT) #include "filamvct.h" +#endif // VCT_SUPPORT #if defined(ZIP_SUPPORT) #include "filamzip.h" #endif // ZIP_SUPPORT @@ -683,16 +685,19 @@ PTDB OEMDEF::GetTable(PGLOBAL g, MODE mode) txfp = new(g) MPXFAM(defp); else txfp = new(g) FIXFAM(defp); - } else if (rfm == RECFM_VCT) { - assert (Pxdef->GetDefType() == TYPE_AM_VCT); +#if defined(VCT_SUPPORT) + assert(Pxdef->GetDefType() == TYPE_AM_VCT); if (map) txfp = new(g) VCMFAM((PVCTDEF)defp); else txfp = new(g) VCTFAM((PVCTDEF)defp); - - } // endif's +#else // !VCT_SUPPORT + strcpy(g->Message, "VCT no more supported"); + return NULL; +#endif // !VCT_SUPPORT + } // endif's ((PTDBDOS)tdbp)->SetTxfp(txfp); } // endif Txfp diff --git a/storage/connect/tabfmt.cpp b/storage/connect/tabfmt.cpp index 015f8d93b15..d21a8b977da 100644 --- a/storage/connect/tabfmt.cpp +++ b/storage/connect/tabfmt.cpp @@ -830,8 +830,9 @@ bool TDBCSV::SkipHeader(PGLOBAL g) /***********************************************************************/ int TDBCSV::ReadBuffer(PGLOBAL g) { - char *p1, *p2, *p = NULL; - int i, n, len, rc = Txfp->ReadBuffer(g); + //char *p1, *p2, *p = NULL; + char *p2, *p = NULL; + int i, n, len, rc = Txfp->ReadBuffer(g); bool bad = false; if (trace > 1) @@ -846,14 +847,23 @@ int TDBCSV::ReadBuffer(PGLOBAL g) for (i = 0; i < Fields; i++) { if (!bad) { if (Qot && *p2 == Qot) { // Quoted field - for (n = 0, p1 = ++p2; (p = strchr(p1, Qot)); p1 = p + 2) - if (*(p + 1) == Qot) - n++; // Doubled internal quotes - else - break; // Final quote + //for (n = 0, p1 = ++p2; (p = strchr(p1, Qot)); p1 = p + 2) + // if (*(p + 1) == Qot) + // n++; // Doubled internal quotes + // else + // break; // Final quote + + for (n = 0, p = ++p2; p; p++) + if (*p == Qot || *p == '\\') { + if (*(++p) == Qot) + n++; // Escaped internal quotes + else if (*(p - 1) == Qot) + break; // Final quote + } // endif *p if (p) { - len = p++ - p2; + //len = p++ - p2; + len = p - p2 - 1;; // if (Sep != ' ') // for (; *p == ' '; p++) ; // Skip blanks @@ -873,10 +883,12 @@ int TDBCSV::ReadBuffer(PGLOBAL g) if (n) { int j, k; - // Suppress the double of internal quotes + // Suppress the escape of internal quotes for (j = k = 0; j < len; j++, k++) { - if (p2[j] == Qot) - j++; // skip first one + if (p2[j] == Qot || (p2[j] == '\\' && p2[j + 1] == Qot)) + j++; // skip escape char + else if (p2[j] == '\\') + p2[k++] = p2[j++]; // avoid \\Qot p2[k] = p2[j]; } // endfor i, j diff --git a/storage/connect/tabjdbc.cpp b/storage/connect/tabjdbc.cpp index e398523892f..912e6c7d530 100644 --- a/storage/connect/tabjdbc.cpp +++ b/storage/connect/tabjdbc.cpp @@ -110,6 +110,7 @@ bool JDBCDEF::SetParms(PJPARM sjp) sjp->Url= Url; sjp->User= Username; sjp->Pwd= Password; +//sjp->Properties = Prop; return true; } // end of SetParms @@ -234,6 +235,7 @@ bool JDBCDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) Read_Only = true; Wrapname = GetStringCatInfo(g, "Wrapper", NULL); +//Prop = GetStringCatInfo(g, "Properties", NULL); Tabcat = GetStringCatInfo(g, "Qualifier", NULL); Tabcat = GetStringCatInfo(g, "Catalog", Tabcat); Tabschema = GetStringCatInfo(g, "Dbname", NULL); @@ -337,6 +339,7 @@ TDBJDBC::TDBJDBC(PJDBCDEF tdp) : TDBASE(tdp) Schema = tdp->Tabschema; Ops.User = tdp->Username; Ops.Pwd = tdp->Password; +// Ops.Properties = tdp->Prop; Catalog = tdp->Tabcat; Srcdef = tdp->Srcdef; Qrystr = tdp->Qrystr; @@ -356,6 +359,7 @@ TDBJDBC::TDBJDBC(PJDBCDEF tdp) : TDBASE(tdp) Ops.Url = NULL; Ops.User = NULL; Ops.Pwd = NULL; +// Ops.Properties = NULL; Catalog = NULL; Srcdef = NULL; Qrystr = NULL; diff --git a/storage/connect/tabjdbc.h b/storage/connect/tabjdbc.h index 7244ebd3832..fee8223abaf 100644 --- a/storage/connect/tabjdbc.h +++ b/storage/connect/tabjdbc.h @@ -58,6 +58,7 @@ protected: PSZ Tabschema; /* External table schema */ PSZ Username; /* User connect name */ PSZ Password; /* Password connect info */ +//PSZ Prop; /* Connection Properties */ PSZ Tabcat; /* External table catalog */ PSZ Tabtype; /* External table type */ PSZ Colpat; /* Catalog column pattern */ diff --git a/storage/connect/xindex.cpp b/storage/connect/xindex.cpp index 56312630278..a2cf4e77b80 100755 --- a/storage/connect/xindex.cpp +++ b/storage/connect/xindex.cpp @@ -45,7 +45,9 @@ //nclude "array.h" #include "filamtxt.h" #include "tabdos.h" +#if defined(VCT_SUPPORT) #include "tabvct.h" +#endif // VCT_SUPPORT /***********************************************************************/ /* Macro or external routine definition */ @@ -293,9 +295,11 @@ bool XINDEX::AddColumns(void) return false; // Not applying to static index else if (IsMul()) return false; // Not done yet for multiple index - else if (Tbxp->GetAmType() == TYPE_AM_VCT && ((PTDBVCT)Tbxp)->IsSplit()) +#if defined(VCT_SUPPORT) + else if (Tbxp->GetAmType() == TYPE_AM_VCT && ((PTDBVCT)Tbxp)->IsSplit()) return false; // This would require to read additional files - else +#endif // VCT_SUPPORT + else return true; } // end of AddColumns From 41e11a8ac6ae62a9320beff451dbd031540c1f7a Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Mon, 7 Nov 2016 10:25:03 -0500 Subject: [PATCH 026/258] bump the VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index a82a4e4d77d..36834bdb92d 100644 --- a/VERSION +++ b/VERSION @@ -1,3 +1,3 @@ MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MINOR=0 -MYSQL_VERSION_PATCH=28 +MYSQL_VERSION_PATCH=29 From aae67535cc399c92cac24b2b1f44e9a196806c9f Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Mon, 14 Nov 2016 19:20:40 +0100 Subject: [PATCH 027/258] - MDEV-11051 place Java classes ApacheInterface and JdbcInterface into single jar file. Try to fix the INSTALL command. modified: storage/connect/CMakeLists.txt - Make some JDBC tests available on Windows modified: storage/connect/mysql-test/connect/t/jdbc.test modified: storage/connect/mysql-test/connect/t/jdbc_new.test added: storage/connect/mysql-test/connect/t/windows.inc --- storage/connect/CMakeLists.txt | 31 +++-- storage/connect/JavaWrappers.jar | Bin 0 -> 19615 bytes storage/connect/JdbcInterface.java | 13 ++ storage/connect/jdbconn.cpp | 116 +++++++++--------- .../connect/mysql-test/connect/disabled.def | 5 +- .../mysql-test/connect/r/jdbc_new.result | 6 +- .../connect/std_data/JdbcMariaDB.jar | Bin 5993273 -> 6021866 bytes .../connect/mysql-test/connect/t/jdbc.test | 1 + .../mysql-test/connect/t/jdbc_new.test | 1 + .../connect/mysql-test/connect/t/windows.inc | 5 + 10 files changed, 108 insertions(+), 70 deletions(-) create mode 100644 storage/connect/JavaWrappers.jar create mode 100644 storage/connect/mysql-test/connect/t/windows.inc diff --git a/storage/connect/CMakeLists.txt b/storage/connect/CMakeLists.txt index 2122e56134b..46c4841ff97 100644 --- a/storage/connect/CMakeLists.txt +++ b/storage/connect/CMakeLists.txt @@ -20,25 +20,25 @@ SET(CONNECT_SOURCES ha_connect.cc connect.cc user_connect.cc mycat.cc fmdlex.c osutil.c plugutil.c rcmsg.c rcmsg.h array.cpp blkfil.cpp colblk.cpp csort.cpp -filamap.cpp filamdbf.cpp filamfix.cpp filamtxt.cpp filamvct.cpp filamzip.cpp +filamap.cpp filamdbf.cpp filamfix.cpp filamtxt.cpp filamzip.cpp filter.cpp json.cpp jsonudf.cpp maputil.cpp myconn.cpp myutil.cpp plgdbutl.cpp reldef.cpp tabcol.cpp tabdos.cpp tabfix.cpp tabfmt.cpp tabjson.cpp table.cpp tabmul.cpp tabmysql.cpp taboccur.cpp tabpivot.cpp tabsys.cpp tabtbl.cpp tabutil.cpp -tabvct.cpp tabvir.cpp tabxcl.cpp valblk.cpp value.cpp xindex.cpp xobject.cpp +tabvir.cpp tabxcl.cpp valblk.cpp value.cpp xindex.cpp xobject.cpp array.h blkfil.h block.h catalog.h checklvl.h colblk.h connect.h csort.h -engmsg.h filamap.h filamdbf.h filamfix.h filamtxt.h filamvct.h filamzip.h +engmsg.h filamap.h filamdbf.h filamfix.h filamtxt.h filamzip.h filter.h global.h ha_connect.h inihandl.h json.h jsonudf.h maputil.h msgid.h mycat.h myconn.h myutil.h os.h osutil.h plgcnx.h plgdbsem.h preparse.h reldef.h resource.h tabcol.h tabdos.h tabfix.h tabfmt.h tabjson.h tabmul.h tabmysql.h -taboccur.h tabpivot.h tabsys.h tabtbl.h tabutil.h tabvct.h tabvir.h tabxcl.h +taboccur.h tabpivot.h tabsys.h tabtbl.h tabutil.h tabvir.h tabxcl.h user_connect.h valblk.h value.h xindex.h xobject.h xtable.h) # # Definitions that are shared for all OSes # add_definitions( -DMARIADB -DFORCE_INIT_OF_VARS -Dconnect_EXPORTS) -add_definitions( -DHUGE_SUPPORT -DZIP_SUPPORT -DPIVOT_SUPPORT -DVCT_SUPPORT ) +add_definitions( -DHUGE_SUPPORT -DZIP_SUPPORT -DPIVOT_SUPPORT ) # @@ -89,6 +89,18 @@ ELSE(NOT UNIX) ENDIF(UNIX) +# +# VCT: the VEC format might be not supported in future versions +# + +OPTION(CONNECT_WITH_VCT "Compile CONNECT storage engine with VCT support" ON) + +IF(CONNECT_WITH_VCT) + SET(CONNECT_SOURCES ${CONNECT_SOURCES} filamvct.cpp tabvct.cpp filamvct.h tabvct.h) + add_definitions(-DVCT_SUPPORT) +ENDIF(CONNECT_WITH_VCT) + + # # XML # @@ -236,9 +248,9 @@ ENDIF(CONNECT_WITH_ODBC) # JDBC # IF(APPLE) - OPTION(CONNECT_WITH_JDBC "some comment" OFF) + OPTION(CONNECT_WITH_JDBC "Compile CONNECT storage engine without JDBC support" OFF) ELSE() - OPTION(CONNECT_WITH_JDBC "some comment" ON) + OPTION(CONNECT_WITH_JDBC "Compile CONNECT storage engine with JDBC support" ON) ENDIF() IF(CONNECT_WITH_JDBC) @@ -252,12 +264,15 @@ IF(CONNECT_WITH_JDBC) SET(CONNECT_SOURCES ${CONNECT_SOURCES} jdbconn.cpp tabjdbc.cpp jdbconn.h tabjdbc.h jdbccat.h JdbcInterface.java ApacheInterface.java MariadbInterface.java - MysqlInterface.java OracleInterface.java PostgresqlInterface.java) + MysqlInterface.java OracleInterface.java PostgresqlInterface.java + JavaWrappers.jar) # TODO: Find how to compile and install the java wrapper classes # Find required libraries and include directories SET (JAVA_SOURCES JdbcInterface.java) add_jar(JdbcInterface ${JAVA_SOURCES}) install_jar(JdbcInterface DESTINATION ${INSTALL_PLUGINDIR} COMPONENT connect-engine) + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/JavaWrappers.jar + DESTINATION ${INSTALL_PLUGINDIR} COMPONENT connect-engine) add_definitions(-DJDBC_SUPPORT) ELSE() SET(JDBC_LIBRARY "") diff --git a/storage/connect/JavaWrappers.jar b/storage/connect/JavaWrappers.jar new file mode 100644 index 0000000000000000000000000000000000000000..d5353d2cbfd08c449d2c4ddc7a81b1f8c32c1ad1 GIT binary patch literal 19615 zcmaI7W2`7qn_zv9ZQHhO+qP|=du-dbZQHhO+nn2z4{!G*Q%EYQr1rm+XIIvemjVJt z{sRsU{ztgWM&i$Z9LRrw|Hz0a3(!c&iqgpl$V!NcC@Is*i2h9c`SU0~Mk@bp0la^2-5d?sEGUHmtR(U% zZTt;2A&ZAm4Myb;8@!pJpbL|pKzy{12 z*S~vS@48Oee0hGa-Tsi>H4A6+zoitTMTVG+j<`@&nkgEAjMkkzHxcZknAbMY87rPs z%JunDYK?IU0p^JBM)|p|O`!{bFIn9YhzlCa&Sxg92QbuU$ziOZ@FW)+N-aoVwquw? zy+Y1kQk&ZN^Ng!`CV~$Het2rG73YI=TCf{&0osg{e3#&Axi++~d2H)CBkKzm$mqMl z$ii2j$WZoNu`zm@erWT&9OexH_@B^Vx>=8oS)B>cd9$XndCz3jOB8SnF+X_``V9hp zQn^|bZ8CIjQ%7Z;&z!~V*kn$sW*|J}>k)P!?7AYu*zJY+QBx|`@N31VcHd?~;EU#a zag0`2+gY%O90L09ix7Exe>f`c*~3h0s#6x*S)uoFMcMW1dxf@G>Ppiv|kW zPiRo7X{M&|TaCH40~N&(s>_R2!3ph_#{5v2^5~_(6+|PO6M^)_ikpqUD^EW=2)<^W zXHAQh>W5UD$HFQHz^?aIeT(eC2O)Ky#o0S{j>x$co00$#=2J5!<&Jb4@>7!i9t_m% z@W%|@GlHFm8zt4C9KH0@d-O+`ocf)1zuU+6_~g`vo%+xR4gZR6|7zKM?H3pg7}tnU z(g{h&4HUAkZ%vUI%@&t@VWhzq)1Da3(>JgOTsa~2SP{B#p+d9EDwKgYp-Aat?JXaaB z>(SJqjk3?5DrTPWo<@~Fy)xnX7lrwwQ{B&zBU3`j@v|dOoMj&bY~JtD0GJI+X9a{WTig@z3%biHU?XMpFmmKb zWv;^DNiQ~Z8jwC;*VvvY`f*v&Cnm)7vS7R63ap7F^+Cha zab?^v@6^$KM&8vXT-monne|6=u7>*wB8=GA3GjI_Ca1$efG)`!qC#A3%4x~UuAk{&K{c#_=_k~^kO7=62gCnGGaMTS#WoW-mevXJD~q8 z=4vTRl9nOE{l6%w1V|Inh1qOpT4;uG*o0Leti7i{-g$;-g+P;L+Oh?|X$UYhSA#o< zxudG^X+4;K8}U>V!emQ`JkClj!d3Z?kpV?IOE!Opn-(TM9biuB1#Y1#SOZnMe)aBw z8NyzfiS7MyhJ~$B7K~9g22DUv&RB_RG|eRkMYIoqi^OZ6MxX)&qz@y8rc{^R8d;_e zD1i!>p+X8Pks+LKn##o`wpm-&YL2ZiPwcZ(7RR+U^?!TADoNkv2gTmfIB?k3Y&hJQ z*}*n7v58ze;@z~Jb%YQp3N~x3rC2yXtjyC!0bfU&_MPaALak;efA_OiUY#dE|}ezc);%DqU4k zhBKHMHW8OK*=s~~>i;7Cu8%^Fm$bhKFSm`MiWbx9j)e)!9z1S;j=03;C(VsAQYNLK zwVX4M%-V>sZHXe}k8iQ}_j@S!JDnVaiz1iG-}jz~#j%Zx4MnZF0m#anzFNjH;5w0Y~_Y zH~S1fOQB9g5M<@b2b(k%!3Uuxwjp}$SGw!OeS*S}8#X=$%GoP&N6?WOi;NHx)HOXC z;ht?9+$ECr1rxYx*i(w`6M)Wx9WfrK9JTnpbJ$CSp5TRcFWXz|^?1*Un81(=1^Kst(y8u6c3aw;&lg}Ta{0B5*zd-Qk0nkE{jV*a&pq3JG198bRAB8NBYXa@j3oR|M#|ec zIh#3}I5}AV4^Ael*f=4nAp6*68ZR1u3Z82Ptq|H-P*x#Vk@#0MfkfmZOGYB^vW~NE zH;jjD)7TZ9iScnA?xFSm8z{fzsSW-OlyZ!Re0QVZyl$DKG{)#Mq@Axhe`lQjo$X}4 zJfHuDO0m1<08syIHtcR?Mr^gr79F}<^cxndhBJ(rfE*TNVBn4lOf$!H>t|_v=PBxp zoictSFMU~jdehS=aNrDOV1#^pUb^FIi$-&48Z^cbCxuycW^1`kjqQv@9Hkqo0l!xB z4nXg7HISr;JOmjT=LQ)Ou9ii&nP*_mMX3)L9jzB>DX!|y$ebZ*iZkRj-BaQKSm#M{ zAwa^x-7fyes8X}qoMowG_kx7$G#zS84bHQ0Jq9)|w50l{a(5gC z|Gl@N@O34bwcu^Y9eDFiV~5G-sDKEbwaK*WW6i0OY8j+yqLO?xMT0A}HKltgvhSR2 zJt<*d+1DqZRbAHxVg^3}kZ_m?Eq~>%a3DZQiHIt~?O{DqdU~`FQg{j#oUsoaMTVe3 z!2Nm=qQ5RLf|~liIESA0jP-Vv=p$Ul>1<<;yQY&)=_C!3FkRG&_R4ue5q6f)LRe(8 z7`Y_@Nq(kW9@VJDEkhg77Ovw=*9ErqO4gA8OHqX41zNnKDqU2M@QyHcEA>TZ-Y8^W zOXBfX?24>4hJq6XNivr;e+OM16DBE8N*N?*Ni^!?IkkU~I>|-v{3DoW8fMc{q8~P@ zq};j;@jaGd6&vbj%F{+XcA}||mt#Bx7$PvHDBIfR!L(vkruGrT=Pxw|7fm97J=s2! z3ZiZ>u||7NCn--Hf^(eG1!eU|sg_J8y{Zn7ye6`87}tD3eh2Pcm#W;`*M3FkALm_A zFpR@*K00uopNOmS4FNo4lQ0G|?XvxEz?Q-emfAl=K-zSc)FcFUkWdvDViu zN4T^W!Y3CwUo%UgYCJLr`Rl+4ZCC1Pth_my*`a$K*6WX$D~;CTh)mTwbcITdxyBEL z&VSdJ5m$>JZ=7{fxKTx$rF6$)0|El*T4#v))DgAB_$(w1d0a|v1S|&2NBRi(qO~1d zAIjf;iD9$>@`d*h1}e2#@F&cI?Cep3Cg|QCo9CiXdq@O}0`wJ?E?h}mxdktQns`JW zk({-Cf@<{UTQ2@4gus_v-6^3e<01L4Y*<4!h}$E!n+wUkYGFj80Is|>Pij?#yW`Z5tJZ0 zvpu7u9i0pc8=Bc+;PDKZQJqPJAl2Jrw6~ZI`lB?dw*EqcaRR+cw4?1Fa8ZBU;?*ll zEF{QvhIXP4Xp4=v1#@Pf9Xg@C7_yx{;>HYjvxk3UOFC!^2dsL>r9S+j%L=h#kK$VT z02K?*9^xsw1B#iSbg0rt?w#{YR#GPQ^*1qwtsK`23=Yt{U_mzcEY=VTpJ#sPl(f$D zfIH;HZlg9q<{KPj#3}^g+vl{cV|@+tKx!>(9$2>Vx?ut+RLMycP8(LX7X#<*m8UPD z7lvkQJwm3IrBIJp_}1zDf2T`gZ}zu~f8@ORZ{!5^{_p#I?EfUEq_LsV|6pdd7KE4b z@-y%03^7xB7d3GZG4b9QVgsT800FQDAUd>yI6!~&xUo1W8Iu92fkXZZNVV#vVD*A( zWlOY*{1#zHYu?dghqUGDgD za-W?<<_*RfoEYXTEV1VYPwe1287Z%bc zVKj~Z55Jf-J}xv1O+Zss%CXdHwef+Bbo(UW_r9=L9oZ6={)8@W>?>(UdW7htkt3MV zd>M=)Fr5(4UZ|16`OU@EwPA(0%VbBkzp%MW86W;DBl-L;RKcNAAm<0rcm9rilV03& z`gU^p&Er9S4?p+PF?Pv8I5UEkP`JOiubBA9)_qW3+0@*n-@XodR8ZmmkI0;t%e1Go z7V0JBG5n%&U;}w(c^(ZmOf%e*YskSZ0!*Z=VL!jIH$HBPStY~YeAL6isdCV4$wmAM z&%~6qT_n({hL)+Axg#PpmB}PXjh2->?1yokZh`ir#|7y;>)3apdv|Ku>rxD3`JAn3 zR`OiPqZ{ZzNQHZ(y2pp? ze)-%Mlj#p^O~Fa-Cgy21E>{wLz(7rNjwMtqaSm&CP_E#@Z~J8VJhUZM#mdkbQ_30q zojet1*u+{b>I8A%j{K4PWtKvo8L`T9ZMbH#;i6i@Igh50@kKHjg!{>hc|yw-s1(@1 z9U>{uPa{(L*bei^P{DK8IYyX^65Jr^0y@MH zk_x6h^Xhhe=fc#M0gl!IG!gfqJl%kY2BA$*!1y6>nvC`Ga?`}rk2osL!cCxf`&7KX zZeSMaE%;cG&g1!B64cko!A}~yS44V~=NrL4o)%nFOH>YvAc{5q?!cEea3YfiiRT-j0ZIsBh9uI{d3;y;+Qh8mm|f5~^Q z3b&gyd}>(EI5&XI1@R-W7vjeAMOic|nZv_i>AG{r`!v7rb$({Vsol%T-$?^``PqaZ z_J9Y` zko*=K^{?Ot*XZRNjmtV=HiXgK&xz=#`2n}OpBT12K3$#je|0-%h44mak|%aGg(`s* zhRnC}KF>0l;g3=T;ax+gI;TcrFsQ*T+@i$G*AmMs~0;D50l}z6xbTj%T1zn~HzcI1{ zw-OE$2i&U@8m1-Gp@+dK8ur)-BKCJ1>+N3QfoEcXmLD;dm@ATMi}?8 z&IkQY-|6E`7mo;H3%N(zIUi&kYd^u%IH1-%;)DJm`-W*}&F^GD#kB!1%2DTL=@`WJ zUdn4d-(7P>TKN-oOHV-!;}(i@pmq*X1?_48?LnVUQ*vL$cw8Gc1X#XLHMOrB=)}I6 zR12p6h5DsqP&1E+#m~Qie3iB#?aemE2mO}DOh1v8e z4f6;bDCN<0&hLsRT&y-xt}&*lo{xhPC{$lfXpzvLC{jP5{b67$j5|WNivbCnc0+nt zg3hht#X)D>QhRwBz;NG1jVQGyOF>i#og;vvPDIXgr?oDsH4vVc&fcvJ6*mbuuTPE` zA59(q1St%CBRIQ*xKJj%7S}Sgfj^RfUuikpKW|MF3<{KNuvAL&;!PJj! zl+(Qsnq_342~EKeYJPuCv;o7rN-!jxfC;$kuXPl7l;NL7Y#lC{zG_fM8$3y0+YDt1 zZ3hv05F@Y#(;~4|lQdO!E@3++@0Jd^X}*W-;jb~hc}Vv|XBBW*(y&Az*L6&IwGu_> z>F82I@B*4Wnc2QL2w?Vs$uhB*SH`$oQU{GiEI5k;GeT(kUP}`PKd=q@D(*OWF5AMW z^Pu-IU9>z^su_#YqZ_kUPwm4yNEM!FCQko^(G{(r@V6=s*GO!g*ys}mSKN_RNYClz z0d`7{3109Sa-Lin%IuBCK?mwfq1(a4CecTUj#M<>y|};gz5C?EoCs}od~9s8Y#eH3 z1EOyiN&Kzb3kDmao{F_hc8NbtM2qNwG2+pI;$~Ait>Fy@v^Upo=q=93>x5|@-JaJk zO-A9F3^YI>OQsb+P*8Tq(JbMK@#3WcIR;?+BFHI|cy+bg3k=zM=3a|)7`KrX`OFgT zdWqv!Hjs}R49E=`X0D1Bcgnd*;)BodPVC)Q8q%3G52e1G3O6v?tK1Kb$&5Ut@0^!- z=tZ4z`ek4ffCQi5-mgD*?{7BkF6tSyh;_T^d~!RnIf_0U=9h&h&S7g%q0R|*{AXSN zr-#BrTwKCYjAdTRQ;IxbvW11qB}lq`WY#FOkM>a*lK~xM2vWlM{C!csoJ1%Z4o<%x z@%HprQ-5gDJeurSikWIJEw)PhB&~UJx1y9T0<1{KQD08D3h6fw7$L>C#^#b4%uiOC z>;Yf8s@XkS(Q~A<3Ym*>5}JIOCo_KfcR)WKr2mzz4vfU2lsO{EX$DA4Fi)e1>UdBs z#+S=aNV(^fh5v%52+(nh(-Y{&UrZ$(&S)PcQ}4)fSL-dJ()Ty6FCI8wv`+mJpTOSP zvH~YU^3JMllwqz4I=xb$<)EpC{#EMYn8{X=xZkC{-1}J>F5*eLaIEe34CfwRQ9xnu zlSP#s2Q&==M<1g*yLY#ePL1IFs{BtMI&WWeBN*kFkp*>XL`dP-&WMIGlz-uTtRbHqPNqQnN2a3z$t;`WTfeH6LQr#bLhxVK6ke@Y*+ z_lk&Mf^frwOjpNP69|P+D(_8c9hO##3;oiIo2Aq7l_cfbe2YlmmD~BV&Z_iqtjc|m zA=*zSn-Zr5S1Q^3og(tTE|eFS6L+CRkGw|D${9U3!j+*D9?tmf$Z_d+kIOt+77H;GYU!W;T>U|4q?bdlP{F#eo4Rdx5#sBvqCT79V4KvKvAD z+ZYv|-qBtRSuj~bEg|Rmk)~SU!xKv`b|q3 zjK+G%d1FT*5Ds~MUS)b*Nb*of(nDKHWqBA7W`2-H1|!_K_h!kb4^-B6D^d@V^AxrO z)QP-cN5ktxWhb^{9@)st5c6U9=H-J9RC$n4sYCJs=>bbzdu*`uW9Gs78R5U#;Y~3s zLO-B9iKF{3UYw(vb<3Lca8Rr*=^JHS=1$YAF$z%MD}x}I*bk4??;7;iqTCR%GR^=W zw8E8GvsBN3c0vJr(5v129D^|KviUObbnV zk$VBOu_?hN-L4|Dh-+CGY~)LfZ_92`Ox@(^IAa*w%{4SW#wwZ{Eqm((oF;^+)nX*+F~cvI=`nwh_j6jbJvR9$qsdZAa+Q{H^Dxq~x&5 zol5Ajir|gN?YMFVI1^kX=m5KC0w??T@DT)@h{{AmVG3_J$7~hGOH+U=2@$_yurW*A zucpOe5r!)U46FDZP_^+;MS!X3v>nLI@vi(9!;QKYYd7nX+V(m~uH+6WS1R=3$%(VF zT6`z4h*Gm6svA&h64s8I5s-t)iB(e?gPs1J9(eCeA=a_anr)pauRqq+3RhFuzkhE!$ zDO#tRKv^r%fpNnNlxpbxO3gzSAKZB=(UaFkf7xj6B;*Ne_~s;@<}~-{@d0?FX;0>m zUA*mpc#H#b{1tLF{_8(`G_`h?FI36n+_o)5<+Q&kC)jIhZhGjs1}&=_hI{`R+SdJG zn}Oege){pvzM30y9!YD7S7g|D4%0c_WaYh3LpM+ZGx&tK2=85ZrbSPc(^Ht66~oQJ z@$-4|hQ}$Y%&#ppO#dxBAJ)%@$J4f-hqE2|1k3z~m8;K!Y+=`g{v5>_^T3AVI>fR@ z*svplb@3BEdUfva@gt!QT;mQu+yWT3!fzbTGn@rcUC&=#J6cF16Fa8DoxG|-<(vFe zC``HP(YDny7phpFbx9|d8q@0qm%%3~knCBkqJ@_Y(EGy^0miA#0k;gQSF8PCcyDz* zvdtdLlIqR54zz2$ffz@!F>iFD8$rH+h!=urZ)qg-D?KYWJX6EBwf=P!*`x8$eDxTtKE4l)aq^2YDD`CH3dHDUblJt<1}X6#f%9N zTb=Y4lI_?QF#T*f{d4cCGN0gv2 zv?NRF9|Kdix+7Zq)s)WIz!Qxo9x$-KxLlj3IOdWz%*Cu3ik?t{!!nI5n5{_BS56vP z*$PaHA?r?v85{vEXnoHj<|oHU79rl^-9}a+Ff)^7=@$kwd=%4OI5xX~R@L&-?Q+GL zxMLz?O4AK-`9!H5#wE;8KFvP?+J4|O-p3(Wltzw67pH_}R~F&&l$e#yHH|&!)gUvv zifoq(BtBhm$AOxOi^3Iq=4R(UFgNtThV%$yzaX!BU5pDQu{4WesuSeq^NZJa>D2vU7_BWwG?h!IbQw>Ji9S9t+E;c*`qO}IQ zXuQk}f{)bkkkulvsa7di6E(fF-hpy{f;#yMZ|U?ONMGiA4VQN1Reo_;zWB;u8FCdp z1Ba)APg|KA8L2ucr|93wr%Qz!tSlNprHfVHl}#Bu#|@Xx8o;ONA!N)JPGbc!^cfuj zm2DqXohJOx!uOI2br{DjNVP>SY(z%M!6fMh7K*FN0(6eV-egayD+IGv0OWu^vAZy7 zbRnUqnIwXzDxxu1m9gBljCf9P*w-4S@Yj_AZTt)HItKEmcbn#(dI~~ITGnim(IJ8)7S~W zyJ5{1cD_k>#G>U{S`~=N5AyU+GY>_cYv>A!xu>&U5#m(PZG`X?4946aHA8oEdl<+~~{S_=25Ax$1W!-%K(G-&;3Q0$Xt%UiVoXL2%V`5l*8RYp0Dy(~e%1?j9Y zMr9DB!W_Mscel(OIa^H18;g3c$(hM@hOH}h>CTfqds-OM3;+BnQnpGbT8(QjEHX7? z#6Y!yBAQkDxQ0qaIfbkxzEh|^)t8%9tjb?iAG`Lq%8&e*HE~F@gq7H5@z{P1wI5WU z?AtuRJX$DkP6#w~UrZ~0^Dhf?FU3TQ6-3#Xt6CTb#pJoOX5Jw3a5k*+`0u4hpb70d zYS5vdB`eTu9S{tgi`yb`xuIMtQGv%0*2!a|eAg6Sk!0g2%O>v+$)~i0l9h}C+C+Q} z#H-ApS2$~C^RkBMW<=nMf!W1@js8|_Q!|ciYoP3@&eBM#5}2NUSsP+#MWub5CmzY0 zW@tR9H4%)u7)3CG&W5;x6j@39Ly;?;q3^n>6c&LNRx~)O!xB$L`li4c_;F`$am@=T z8ZIXzRoOs!UWmbtVY!)MhvyZp(!>)(vXL5zCJ%{ffWyZVjQs4U17=sa*B1cgUZ%m< zX58{^p68AfjTf0tpId+KZ3+6V(8C-0^~v8e&7RqMw%hvU=26wv=9G>tapux9H0;iN zIEAcsw%Ed}*7~GSTDmlDfh4kCwG~^cbTs|DzpESQ)9W(fZbm zjLrb185af9Q%!Tr2WqWEwRAe8Dc!UBwAz+wr!GaweQxi3-WuB?Tdhne`9?%v*o`m3 ztOszJJv4L5-Y~>N63#%qk(w8mj<8;UQ7;g#O}6sT-eBern=AWWry+-}8FTLqoOIfT z*V3H%;^klr$x17m)T<`#hd%SvF4{yXO#f z#maL0-tS&W$3>dTg)PS#ud+Q~ehWJRi{AwX*2vv_CImAqlr5=zTY1_GRoe>%jit(l za=Bx6WRzBvf7h}Z$csozf#(9Uiaw=fUw%pV3&siNrOu}^lQvm;%nLzD=lCHmajR9Y z&m>>bOXtgFEd9g%QQhNJ@xxdlWSKU~f-p;rtb&MhMaG^x72omz_xyla&+}`1r!xax zi{h)!8iAr8akg@X-_iH(SA@Y%sd+EPdkt}d1AA>TQ9p!$OaUQFdc-n?a>*Az^Rz+% zyR83OIB{O&wO>n2u@w#f>s>c$-X;yd3L-b1ynoFAU(Ge2ZpNP*9}zGadoOvY>>y4S z2%844c10FHRjJ?#*trXf21~yJ(*;;!@4N*GwLM;7os1h!+3U?(fYrmKWZoe+-QEM0C(xi6(@_x z%fc|01k=jX&K;Up;z^Izdymw6ZG$HyAa7Gm0c4?D!|xKXvHE&U99@)M|ZJGa(Y1<+{}c z?-$sb`5WfZnle@@TsHDn*w$B2~{rPj}2Ivd_*6GIw{H5i`_ocT#yZpux{$uhJ z5&VOO`jIk!X2vz=yBz+5B61BQHnvJXv@0q(#i6e_&XHHnJTI6zf&89S;3+@?Ny#98 z4wP)uBtKlPL1JFMaU*_0!dxXU5g{-$%466>Xy zUyM`X6Q%R6qj9N1wyQ_(xm1+)dxpN!0gX%tHcZ8TFDbtTW7Une((&P2mqKMxtykdc zu6E{oE&Ll&ASV6P9vkKF12?A!_r&(+`_unNG_M!p%joq@HgMK^&xwyl0S;f8SAc3ck4Rh7Mz)%@RFz9R!aXY?aBLxJ z|6xXfa_H7@2AP)fQYS%m9d?0ol(af3k@TBh{1)sS2>%;goDXsVOyGkd&gVfVj#lWL z1=J#$tVm@Cy$EWT=G;McfrMhggiPiGUK}p)$so=Lw1^LAVK(5&3IDr2k*u0hemhpA zLpzZcFVLCfV$iJ-rgB_%K}og?#uoxP*6#o+?~Rb$2c!QTG2pTCcab$qI@+?MqG5*3 z?ZWq1uxYjVEH1-Ae3`~xEu}MbnYu*C@@9*Ab?Zvtg32w`7_O33Bv&O8)%}80=kmaD zHcpefNR#s^5!+#cXV9`(S}QnFwq7$@DTX;a^J`?=U>Zx+>R3BYscHpA(Y1af?h3s? z&P_XWnq-|s;}z#qUt+~4!Ph3SqCuCSxJQEbnPw?|H(%nSQ@PZ~kMeR9S(z`NYN^th zXTwg3Pwx9KFg9zVl(w`Dx`4PB^G zIkXO~M^NT>=7T}ubX=A4-tYewrFSXeDAjTP{P`C6Pyg?aj@Ew@rT?4%Ctz=2Wd48p zf1Cfj7WCh2*6{`7`rNrt{!4=JcbhciP@tuijg(-Jj=+)?EPXQ8h?R zV9wh%&2r;5-3w)jMYJf0O|~tp3|n$=h^E!1#P=-SMTj8D7$b-#6FbY+X61FZ>Lrb7 zt-Izd6Jy|vlIeizcazkT#b@h~3PGtxsB(*4mTN)M%eLSoRBXaxuHgcszZ9S}&!w_f zIpwjIJ*?MBI@@E=Oam%J_`P?5qNL zDkA6z{wGxySW3r+Gxl^+PL>TZH5!c>RukXHl%Npt=r~a+X>b7_P$gt@$=`ISObW~e zI{Zg(nP_1WxMJ9wtj@VdWHmiAgF{}oLEKuc5x7?f;IT2;IT&^WneI~k0{$s3xUby1 z||z}n%H_}e{;Iy@F`IbE)Q0qPZ=_HjV$Y8BfM zgohD|fRhrCHCTm6bosn)tBlXfB7Cro;zd!Ry&X;zRrl<14nJ-vWy{d}Butg*)8_M^ zb55Pu(gjLhUE%{?ff2Q?^T|QyseeP1yXY1zpP_x1SnRNF!iqh1l2oCsdFAi(mBq?( z9B3#ws||%C3>A+sYPt*K0@9Z!?363p0%FtA3v-yf zWE#lp+`OeJCMuZXW;P(Y~1;*H;oYP6mp5#4cmjoe%ck?ZE9AZ-&0Sc)Ro zGgSSXCuT(1cIFa9wJk5VOfBu)PrPN383^E?omcCtF2XGAU0g-hn~$2x57*+zOdT(c z;&E{exEfq$<(la&pLdfuv?8j`BTt(Y=`WDI>K*2Q%?{ox^Jmf?zB*Z_JBSu?m?9{C4CFQZ$^g^hG3eusMD6S(4lZ6c)XYK7Cd!T(BJz&@Mln7>u%Mr^N!wJ?CejuI8g(xUxTlh6_j&?6O^kB*QIm%1>eFUy zH?srD?ecqp{#=k`tWnl)>cRx)5puHmoaHa0c_L!E7+8G+HLc?vA&ew(>XmivtHPQe z@!Ck&BGXKFLu0xzX!%}?h3??^@T3n1Y8!f;=Y}27C$Qe5f2XAdDvhvSi z`2+EvgcSK7DGADdIxIrg7ACgN|4%@o2H~!}jPfIAN@~aG5kwD649{$x5X29UOacs? z;Fk{}1sMMal`Jupo<1F-ajc-FIZP_q5)G}%P|GH;0Dn%lkGy5sFjBL++U5K~rMkLB zvvPYm;pcSPIB=fzeP`=9>+g-mkJC*znJljtbYHt;j6Zb$91Vh=SSU((iV7%@D!FMN z#n|>)=ad@iQ}D(_3X5IS7lVIgh39_7FrdcZEFHS4)g$nLN%FotGj`JnI5w6RV1Poi zH(_cM^QV;{1J%OCBUNDM03LJ@V71R5g`ddNO#S0JF;iGgqB8^-Wf@f(zQkZ52LKL|;UfU=yiS}mEOdxc&xBud?9!!Z|CYi1< zM8rxt-svoX_oc&Te!3rEYms3ZA31J!Hec4l0=JJz$zuku?Ytpu77x4aoZ5r}4f&~_ z8cxi}2EppiwlUd;Hai6uA6HpF1MBfTxI%o7kxEhb%m5uNqf8h@XxDU@IU!)&g1fQg z?TLd86``&2!fFy~yDbbs7eyuCmKwo5<+EU(W?wuq#)`sQfw^vbpEcN zhRj;X)iGK!v>=0Jm_ z63V=Kk-hD{F>HE*j2@v*>cM)LND|p znYz6HZ04GOC5XmW?@q)>AVX)uGP!Img9A;Ck+}_$XF2A(C|ggTV_jY|%lV_YyHpZa zrvnj-7D6lGCb9|2TS0iHvS&;{Atk(w$apjzg4OrofOzds#~BrAPX(<)as^TRi+LvD zohnl6zH3D96k3$lq$Y?N9JE?PMJWWD(+Mo44*LBp%Nqm8r zI{p;o*^|hII#Fn;Kpj5OK%t=J8^u4r2ev^9zFm`LGc9<&N0^A9BAFu^87~0<^C7~9G6w9(rjV5PwJUG20CKih)QU01SFhQ@ zXM|&Fv}3l1wu4>Ay-)*k`5u|f7dYPyQkSDvXfc?aOvhn=bZJ|adMc060hxP>yEGyi zNR@u%%8c{nLUKLi*V52qM|~#AhHlNpw>CB1Pk|KN z`GQ{hTeIYhBHIR(PTeoIT}7iF%Y6puP?%=D@gKprY+9egB*^8+Ls66uFeJMTL6#Z{ z@7F^WlJD`MP05LKD6NPb@r7NMd$cYwrHTOu!DA$uaz&e;ij6NB0;S}wFFewpaNqkg zb@UUNA+!%+1S{nsFvrHu-c!eG|3WfOSy=N$y7COFbE3D5Tk z5iWI7OF1#}a9m$JQl10~TOsHP_Tvv@$&|Ye<9Aj8>5>F! zf~?3D)dhwvt1^mq#;B3W~48lKIvb{|;+ zE7Vx(P&_dE?n83IR>9MSjd=@zvPmvUZ}I2CM< zutwvv?dC#c%RF{Ee%`;li2O}rfH56~+y>>ba9Gt&2)50Gtb|Pg(bS^afx?B00r zboJ1_w%kPlt0AnV^RlxbgeRhPL)sYStt;K6@Z`u+%KEB+Tc)p%I|IBxAiPZdk}5M! zuKmrf5U#F-edudFb}EyZj&TU`-`hY2y^U4w3T& zX9l^`BcX~Rpp0=)BZ4K{v6mfTcCk9&=GsCZ!QRTm^JH^Q{vK#hC%%TUi@drXWP*?A ztPQ#%>-KNIaRxD->|i(iHNb7dcfUgWM1 zB9-S_>j!M-(gnx7F9dqJv!?(s{{ZqhXUo+6f+C2nEf~i&Q5>d?b49Y*vSp^30gq+&3q{TQ@`X-=STkH#bIbGCOI|e%WidTh8|9 zylWDfz3;SvUD1ID!;)Le9E8iXf>e5(RVEZVk{s$1U8)mCn@WkwK~m$9*@JM zREGrlSwFR$Lx55+D}U@%Xa{&Gk|SqE03BCASutHW7#9o1D>nPJJse~_g3xjUpFgwk zr5x`_gCh!jgwVbXu}{%b2RRv+Lu2KDF9FYUkxav0!B0>6qR#c-4MzXZsRjI7i~Fac?X10;g{ z%}6Y1)gsFD64x_^HXcL<0_di=lg-m&*)9D zKp^ikr8;%8jVj`C8k8mW6eZt)%U0p$<#IzwbO=NvSY;EwCH0 z7P85fv;M5jRAG?!ipQX4-*N?M7oM39}luJa;Q)>Eg_&CB7zu!F6#)3ery zW)1ZH^tqTrg2fxrT)qvscD%?!LoZBc~$? zgCEAr zrkI$ad@8`0F^ImHsHFFEUj3?ZBS0VUz*s~z=B9-`Gip)`x>b4d2RG)6mxFTF?gP>` ze8WswW#0!F04Js;v~}q|Ra?R=whi>1xokPRBoq4QO!Fp_7jm6+Y&?3Y3_{n;JFzNF zL0-L~IV}_8S-yeeF_jjQW>%l+K<@-ZD|HE9IW-=6o^^ykLlbUZ7DAztbXe5y>gtC=mP0VCz>|-74q%4_K99afK z$dWNAG?tL0W1UPKDMkusT6C-_k`ZAV`*I|dr7R_V@B5wWG;dvX&p*#Ub6@jZ&-1&V z_j!MF-+wBE*miTjYz?zhJriS~hs&t$?m(R>uMEv7FFYF(5jg{omYv&G=cH6&7tfvl zA!d8H34aA@tJK|=IqQCZ4}6Sy>2UsLm!Y%Oj-j(A;632GR5ZQ;J3lY3y(r=}j7)IIxuYtPVreSsg`@DVU1K=1 z0LSF}4@Re+8i0<;;po^5q829Vz})*GQV1S{rJUpv(9KXNo8# zb&!_{tIOQd@r^>{C&t$4qhqh#Tr6EYD%nNSM?P8;Qn@;Od4azE1?`$vDt5Is8PvGKUUWChM(? z>y{2(;HmyYI3jU$841|RQ+D~{UsykPu$tT(7TY!3d|;CsRLbKz)Z`K1rOEy8j6bL7 z3s!(QeuFG9`j)?8<>wD1aF}A*<{#6bV87FaPVNpYjh!)s(#?yv4ND!xc>`XS@cIdx zeirl{k}nbzNDpO67U&M_*eUq6aCSfr!%Fsx!R)4l(qg)*aR^d}Gmk*tRRug!hTqck z@-=H5-D6cvI|5-(qEG^LbDVE_?!b}l_}AOjY>t*5T7ey(S`=XgVB7r9bkval?$0>l zq}JMQGQvTa&2dtJZ&lCL6s!?5;!QpGOqY|OCYBpdIo8gq>N0~X)zW>$8eP3HRHvl0 z6Lw`h9x=IvoZVZBhBg{#iOChTU_``(xUMej79W0_g!(asp&VXQ9>P_UW;3*vk%JMdHE32kwFQ5;f<`O$Lg`##2*IioZVnj~6c``IFkf(meF>Qwx`16{ zV>n&kJ`n1 z`^@w`!gN`Q)oT8q?=ey&2{Jb{eTa6ZY9jeKWKq*VuKuPEN#bUieVb^6uqDO&>+N90 zE_3yOO2p?iX2(Ia`!p&ijJR4ljMq6V&%zOIlyy5l7(nrTS^J2diaJRey3r@!Y%gi< zF)L!lRLW#kez2QeFD?GZwmA9mm>cGqWAYfE@uimq;o94oO9-qVMkZgQGk*&A<;@>l zaXnf~tPZ1TA-OU`#&Vq>ZrafA(_f)#6PrRyie=NDCN<8@W6kL^MT00I;I=iPQ*)~S zu|~;r*-5LQkJwV37QO+sPNZ;zR>2&+c+m0un}*wUc@>Xg8kYU8l}itJVsSS7TG`53 z`{*_U17Pz4g2e;iezT5J=z?T2_ z#bB^Um~Z7#cZVimbN97;HC}m~vp+$WV_TE$J`NG%lXm@m-OSqBd7h2v1DuyL%e&X_ zR;&&$SNG(9q;IgfmWayi){KsacSQIIH1+7C!qa?f#(?OU)3ux>m<#{%rS85^SR`&~6!xdvp2pYS46Ct=$e!^VG65(1jze+42T% zwhtnGd9c6VN=2)R-_6d`O*@=Gy(QV6{N+X;JvFs5`ih)ciSEbONr%=1ST~c$gWNn+ zjv6qPtIwwebust$q63f5<*5x_8x@NSA1N>1R&D5tR%k`iiF%;#P2#(F5Ndf;L$$ewUH%K?LV0vg562V!}%zFRCnykP3VAwl@lzlWX0 zn(Szj71Z}1m$7{>Rv&deka}sWh{Ibhr2xr1&QA2DE^)y?{CJ>GxVKN7v%{+@nK)-j zcdv)U{7RG1y(NUyIg(!B$}uNePMC2IM}(GZdPwkzc_#dotx1#^|KA$f6^2;h+&kkI z$_!e`BoeMYR4tS#fwy3$&cgJsZ^;;LuOZu7BM1Izh(6@{RBtSVzz~>gq;dq`8r{Rk z()3~_JS(_9siUAtku-dHi3jtA`>WKW)nen`*3h2#_o362HBNBi^Pz<+&A_xS0F%es zaB%K~v9p(;p-Eu&()ajP5)+gKd=!Qzihu!2YflUeM9R+Mkuu*}4a6wxXPzrDbp@%nknPKBELkNZ4Pp&plD)6+2ilQu=2N;c+ zLa2Um_Cwh~A%#{gD5PxkT0mtL`aQ6wp_?A8X*S}4djGG&u{Ll(x?!;Gz(;@!20Qov H7Wn@FuwP?< literal 0 HcmV?d00001 diff --git a/storage/connect/JdbcInterface.java b/storage/connect/JdbcInterface.java index 34af8c4e013..07dcaf985b4 100644 --- a/storage/connect/JdbcInterface.java +++ b/storage/connect/JdbcInterface.java @@ -220,6 +220,19 @@ public class JdbcInterface { } // end of SetTimestampParm + public int SetNullParm(int i, int typ) { + int rc = 0; + + try { + pstmt.setNull(i, typ); + } catch (Exception e) { + SetErrmsg(e); + rc = -1; + } // end try/catch + + return rc; + } // end of SetNullParm + public int ExecutePrep() { int n = -3; diff --git a/storage/connect/jdbconn.cpp b/storage/connect/jdbconn.cpp index b31e77bf1ff..a69f84a94a1 100644 --- a/storage/connect/jdbconn.cpp +++ b/storage/connect/jdbconn.cpp @@ -55,9 +55,8 @@ #if defined(__WIN__) extern "C" HINSTANCE s_hModule; // Saved module handle -#else // !__WIN__ +#endif // __WIN__ #define nullptr 0 -#endif // !__WIN__ TYPCONV GetTypeConv(); int GetConvSize(); @@ -1442,7 +1441,7 @@ bool JDBConn::SetParam(JDBCCOL *colp) PGLOBAL& g = m_G; bool rc = false; PVAL val = colp->GetValue(); - jint n, i = (jint)colp->GetRank(); + jint n, jrc = 0, i = (jint)colp->GetRank(); jshort s; jlong lg; //jfloat f; @@ -1452,69 +1451,74 @@ bool JDBConn::SetParam(JDBCCOL *colp) jstring jst = nullptr; jmethodID dtc, setid = nullptr; - switch (val->GetType()) { - case TYPE_STRING: - if (gmID(g, setid, "SetStringParm", "(ILjava/lang/String;)V")) + if (val->GetNullable() && val->IsNull()) { + if (gmID(g, setid, "SetNullParm", "(II)I")) return true; - jst = env->NewStringUTF(val->GetCharValue()); - env->CallVoidMethod(job, setid, i, jst); - break; - case TYPE_INT: - if (gmID(g, setid, "SetIntParm", "(II)V")) - return true; + jrc = env->CallIntMethod(job, setid, i, (jint)GetJDBCType(val->GetType())); + } else switch (val->GetType()) { + case TYPE_STRING: + if (gmID(g, setid, "SetStringParm", "(ILjava/lang/String;)V")) + return true; - n = (jint)val->GetIntValue(); - env->CallVoidMethod(job, setid, i, n); - break; - case TYPE_TINY: - case TYPE_SHORT: - if (gmID(g, setid, "SetShortParm", "(IS)V")) - return true; + jst = env->NewStringUTF(val->GetCharValue()); + env->CallVoidMethod(job, setid, i, jst); + break; + case TYPE_INT: + if (gmID(g, setid, "SetIntParm", "(II)V")) + return true; - s = (jshort)val->GetShortValue(); - env->CallVoidMethod(job, setid, i, s); - break; - case TYPE_BIGINT: - if (gmID(g, setid, "SetBigintParm", "(IJ)V")) - return true; + n = (jint)val->GetIntValue(); + env->CallVoidMethod(job, setid, i, n); + break; + case TYPE_TINY: + case TYPE_SHORT: + if (gmID(g, setid, "SetShortParm", "(IS)V")) + return true; - lg = (jlong)val->GetBigintValue(); - env->CallVoidMethod(job, setid, i, lg); - break; - case TYPE_DOUBLE: - case TYPE_DECIM: - if (gmID(g, setid, "SetDoubleParm", "(ID)V")) - return true; + s = (jshort)val->GetShortValue(); + env->CallVoidMethod(job, setid, i, s); + break; + case TYPE_BIGINT: + if (gmID(g, setid, "SetBigintParm", "(IJ)V")) + return true; - d = (jdouble)val->GetFloatValue(); - env->CallVoidMethod(job, setid, i, d); - break; - case TYPE_DATE: - if ((dat = env->FindClass("java/sql/Timestamp")) == nullptr) { - strcpy(g->Message, "Cannot find Timestamp class"); - return true; - } else if (!(dtc = env->GetMethodID(dat, "", "(J)V"))) { - strcpy(g->Message, "Cannot find Timestamp class constructor"); - return true; - } // endif's + lg = (jlong)val->GetBigintValue(); + env->CallVoidMethod(job, setid, i, lg); + break; + case TYPE_DOUBLE: + case TYPE_DECIM: + if (gmID(g, setid, "SetDoubleParm", "(ID)V")) + return true; - lg = (jlong)val->GetBigintValue() * 1000; + d = (jdouble)val->GetFloatValue(); + env->CallVoidMethod(job, setid, i, d); + break; + case TYPE_DATE: + if ((dat = env->FindClass("java/sql/Timestamp")) == nullptr) { + strcpy(g->Message, "Cannot find Timestamp class"); + return true; + } else if (!(dtc = env->GetMethodID(dat, "", "(J)V"))) { + strcpy(g->Message, "Cannot find Timestamp class constructor"); + return true; + } // endif's - if ((datobj = env->NewObject(dat, dtc, lg)) == nullptr) { - strcpy(g->Message, "Cannot make Timestamp object"); - return true; - } else if (gmID(g, setid, "SetTimestampParm", "(ILjava/sql/Timestamp;)V")) + lg = (jlong)val->GetBigintValue() * 1000; + + if ((datobj = env->NewObject(dat, dtc, lg)) == nullptr) { + strcpy(g->Message, "Cannot make Timestamp object"); + return true; + } else if (gmID(g, setid, "SetTimestampParm", "(ILjava/sql/Timestamp;)V")) + return true; + + env->CallVoidMethod(job, setid, i, datobj); + break; + default: + sprintf(g->Message, "Parm type %d not supported", val->GetType()); return true; + } // endswitch Type - env->CallVoidMethod(job, setid, i, datobj); - break; - default: - sprintf(g->Message, "Parm type %d not supported", val->GetType()); - return true; - } // endswitch Type - - if (Check()) { + if (Check(jrc)) { sprintf(g->Message, "SetParam: col=%s msg=%s", colp->GetName(), Msg); rc = true; } // endif msg diff --git a/storage/connect/mysql-test/connect/disabled.def b/storage/connect/mysql-test/connect/disabled.def index 9b4570915c7..5e15e0806ba 100644 --- a/storage/connect/mysql-test/connect/disabled.def +++ b/storage/connect/mysql-test/connect/disabled.def @@ -9,8 +9,7 @@ # Do not use any TAB characters for whitespace. # ############################################################################## -#json_udf_bin : broken upstream in --ps (fixed) -jdbc : Variable settings depend on machine configuration -jdbc_new : Variable settings depend on machine configuration +#jdbc : Variable settings depend on machine configuration +#jdbc_new : Variable settings depend on machine configuration jdbc_oracle : Variable settings depend on machine configuration jdbc_postgresql : Variable settings depend on machine configuration diff --git a/storage/connect/mysql-test/connect/r/jdbc_new.result b/storage/connect/mysql-test/connect/r/jdbc_new.result index 14381b0b11f..5cc4826213d 100644 --- a/storage/connect/mysql-test/connect/r/jdbc_new.result +++ b/storage/connect/mysql-test/connect/r/jdbc_new.result @@ -56,7 +56,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='jdbc:mysql://127.0.0.1:SLAVE_PORT/test?user=root' `TABLE_TYPE`='JDBC' SELECT * FROM t1; a b -0 NULL +NULL NULL 0 test00 1 test01 2 test02 @@ -72,7 +72,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='jdbc:mysql://127.0.0.1:SLAVE_PORT/test?user=root' `TABLE_TYPE`=JDBC `TABNAME`='t1' SELECT * FROM t1; a b -0 NULL +NULL NULL 0 test00 1 test01 2 test02 @@ -104,7 +104,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='jdbc:mysql://127.0.0.1:SLAVE_PORT/test?user=root' `TABLE_TYPE`=JDBC SELECT * FROM t1; a b -0 NULL +NULL NULL 0 0 1 0 2 0 diff --git a/storage/connect/mysql-test/connect/std_data/JdbcMariaDB.jar b/storage/connect/mysql-test/connect/std_data/JdbcMariaDB.jar index 81f91e4465a4a11c4a1593dd6b44232421ee47d5..9d461ad6223b41e2a18d97773a064aa8f96405cc 100644 GIT binary patch delta 190883 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 z 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�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 QA~Y*M>(|E+WyD|q0pOP5cK`qY delta 163865 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

n}_f>6EWC?SHbxzirbYUn8xCFh)z&zJ~C$dD{zm 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

  • ^A^bh`soFTN->Ho1a=Ko-(Ax}$AHV_P>o+BhX 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 vn@&e9%CbwovoLDNe%s Date: Wed, 16 Nov 2016 13:41:27 +0100 Subject: [PATCH 028/258] Bug#25088048 ADDITIONAL ISSUES IN MYSQLD_SAFE Don't read --ledir option from config file. Ignore current working for finding location of mysqld Remove use of chown/chmod in scripts. Be helpful only when basedir is /var/log or /var/lib. Removed unused systemd files for SLES. Set explicit basedir in scripts. --- packaging/rpm-oel/mysql-systemd-start | 4 +- packaging/rpm-oel/mysql.init | 24 +++++----- packaging/rpm-oel/mysqld.service | 2 +- packaging/rpm-sles/CMakeLists.txt | 3 +- packaging/rpm-sles/mysql-systemd-start | 66 -------------------------- packaging/rpm-sles/mysql.conf | 1 - packaging/rpm-sles/mysql.init | 13 ++--- packaging/rpm-sles/mysqld.service | 48 ------------------- scripts/mysqld_safe.sh | 18 ++++++- 9 files changed, 41 insertions(+), 138 deletions(-) delete mode 100644 packaging/rpm-sles/mysql-systemd-start delete mode 100644 packaging/rpm-sles/mysql.conf delete mode 100644 packaging/rpm-sles/mysqld.service diff --git a/packaging/rpm-oel/mysql-systemd-start b/packaging/rpm-oel/mysql-systemd-start index 231a76087ac..af6e906efe1 100644 --- a/packaging/rpm-oel/mysql-systemd-start +++ b/packaging/rpm-oel/mysql-systemd-start @@ -22,7 +22,9 @@ install_db () { datadir=$(get_option mysqld datadir "/var/lib/mysql") # Restore log, dir, perms and SELinux contexts - [ -d "$datadir" ] || install -d -m 0755 -omysql -gmysql "$datadir" || exit 1 + if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + install -d -m 0755 -omysql -gmysql "$datadir" || exit 1 + fi log=/var/log/mysqld.log [ -e $log ] || touch $log chmod 0640 $log diff --git a/packaging/rpm-oel/mysql.init b/packaging/rpm-oel/mysql.init index 75ae672801b..50d1bba017d 100644 --- a/packaging/rpm-oel/mysql.init +++ b/packaging/rpm-oel/mysql.init @@ -70,18 +70,19 @@ start(){ ret=0 else # prepare for start - touch "$errlogfile" - chown mysql:mysql "$errlogfile" - chmod 0640 "$errlogfile" + if [ ! -e "$errlogfile" -a ! -h "$errlogfile" -a "x$(dirname "$errlogfile")" = "x/var/log" ]; then + install /dev/null -m0640 -omysql -gmysql "$errlogfile" + fi [ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile" if [ ! -d "$datadir/mysql" ] ; then # First, make sure $datadir is there with correct permissions - if [ ! -e "$datadir" -a ! -h "$datadir" ] - then - mkdir -p "$datadir" || exit 1 + if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + install -d -m0755 -omysql -gmysql "$datadir" || exit 1 + fi + if [ ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + chown mysql:mysql "$datadir" + chmod 0755 "$datadir" fi - chown mysql:mysql "$datadir" - chmod 0755 "$datadir" if [ -x /sbin/restorecon ]; then /sbin/restorecon "$datadir" for dir in /var/lib/mysql-files ; do @@ -94,13 +95,14 @@ start(){ # Now create the database action $"Initializing MySQL database: " /usr/bin/mysql_install_db --rpm --datadir="$datadir" --user=mysql ret=$? - chown -R mysql:mysql "$datadir" if [ $ret -ne 0 ] ; then return $ret fi fi - chown mysql:mysql "$datadir" - chmod 0755 "$datadir" + if [ ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + chown mysql:mysql "$datadir" + chmod 0755 "$datadir" + fi # Pass all the options determined above, to ensure consistent behavior. # In many cases mysqld_safe would arrive at the same conclusions anyway # but we need to be sure. (An exception is that we don't force the diff --git a/packaging/rpm-oel/mysqld.service b/packaging/rpm-oel/mysqld.service index 78ef3bffe60..871f191c017 100644 --- a/packaging/rpm-oel/mysqld.service +++ b/packaging/rpm-oel/mysqld.service @@ -34,7 +34,7 @@ PermissionsStartOnly=true ExecStartPre=/usr/bin/mysql-systemd-start pre # Start main service -ExecStart=/usr/bin/mysqld_safe +ExecStart=/usr/bin/mysqld_safe --basedir=/usr # Don't signal startup success before a ping works ExecStartPost=/usr/bin/mysql-systemd-start post diff --git a/packaging/rpm-sles/CMakeLists.txt b/packaging/rpm-sles/CMakeLists.txt index b5ffaa15565..98aa4f4d222 100644 --- a/packaging/rpm-sles/CMakeLists.txt +++ b/packaging/rpm-sles/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. # # 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 @@ -20,7 +20,6 @@ IF(UNIX) # Left in current directory, to be taken during build CONFIGURE_FILE(mysql.spec.in ${CMAKE_CURRENT_BINARY_DIR}/${SPECFILENAME} @ONLY) FOREACH(fedfile my.cnf my_config.h mysql.init - mysqld.service mysql-systemd-start mysql.conf filter-requires.sh filter-provides.sh) CONFIGURE_FILE(${fedfile} ${CMAKE_CURRENT_BINARY_DIR}/${fedfile} COPYONLY) ENDFOREACH() diff --git a/packaging/rpm-sles/mysql-systemd-start b/packaging/rpm-sles/mysql-systemd-start deleted file mode 100644 index 28472249eda..00000000000 --- a/packaging/rpm-sles/mysql-systemd-start +++ /dev/null @@ -1,66 +0,0 @@ -#! /bin/bash -# -# Scripts to run by MySQL systemd service -# -# Needed argument: pre | post -# -# pre mode : try to run mysql_install_db and fix perms and SELinux contexts -# post mode : ping server until answer is received -# - -install_db () { - # Note: something different than datadir=/var/lib/mysql requires SELinux policy changes (in enforcing mode) - datadir=$(/usr/bin/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p' | tail -n 1) - - # Restore log, dir, perms and SELinux contexts - [ -d "$datadir" ] || install -d -m 0755 -omysql -gmysql "$datadir" || exit 1 - log=/var/log/mysqld.log - [ -e $log ] || touch $log - chmod 0640 $log - chown mysql:mysql $log || exit 1 - if [ -x /usr/sbin/restorecon ]; then - /usr/sbin/restorecon "$datadir" - /usr/sbin/restorecon $log - fi - - # If special mysql dir is in place, skip db install - [ -d "$datadir/mysql" ] && exit 0 - - # Create initial db - /usr/bin/mysql_install_db --rpm --datadir="$datadir" --user=mysql - - # Create a file to trigger execution of mysql_secure_installation - # after server has started - touch "$datadir"/.phase_two_required - - exit 0 -} - -pinger () { - # Wait for ping to answer to signal startup completed, - # might take a while in case of e.g. crash recovery - # MySQL systemd service will timeout script if no answer - ret=1 - while /bin/true ; do - sleep 1 - mysqladmin ping >/dev/null 2>&1 && ret=0 && break - done - - # If server has been started successfully and file created in - # install_db step is present we run mysql_secure_installation - if [ $ret -eq 0 -a -e "$datadir"/.phase_two_required -a -x /usr/bin/mysql_secure_installation ] ; then - /usr/bin/mysql_secure_installation --use-default --defaults-file=/etc/my.cnf - rm -f "$datadir"/.phase_two_required - fi - - exit 0 -} - -# main -case $1 in - "pre") install_db ;; - "post") pinger ;; -esac - -exit 0 - diff --git a/packaging/rpm-sles/mysql.conf b/packaging/rpm-sles/mysql.conf deleted file mode 100644 index 74cd5f836e7..00000000000 --- a/packaging/rpm-sles/mysql.conf +++ /dev/null @@ -1 +0,0 @@ -d /var/run/mysqld 0755 mysql mysql - diff --git a/packaging/rpm-sles/mysql.init b/packaging/rpm-sles/mysql.init index dda0bebba56..25762d9bee2 100644 --- a/packaging/rpm-sles/mysql.init +++ b/packaging/rpm-sles/mysql.init @@ -49,7 +49,6 @@ get_option () { datadir=$(get_option mysqld datadir "/var/lib/mysql") socket=$(get_option mysqld socket "$datadir/mysql.sock") pidfile=$(get_option mysqld_safe pid-file "/var/run/mysql/mysqld.pid") -logfile=$(get_option mysqld_safe log-error "/var/log/mysql/mysqld.log") install_db () { # Note: something different than datadir=/var/lib/mysql requires @@ -58,14 +57,16 @@ install_db () { logfile=$(get_option mysqld_safe log-error "/var/log/mysql/mysqld.log") # Restore log, dir, perms and SELinux contexts - [ -d "$datadir" ] || install -d -m 0755 -omysql -gmysql "$datadir" || return 1 + if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + install -d -m 0755 -omysql -gmysql "$datadir" || return 1 + fi - [ -e $logfile ] || touch $logfile || return 1 - chmod 0640 $logfile - chown mysql:mysql $logfile || return 1 + if [ ! -e "$logfile" -a ! -h "$logfile" -a "x$(dirname "$logfile")" = "x/var/log/mysql" ]; then + install /dev/null -omysql -gmysql "$logfile" || return 1 + fi if [ -x /usr/sbin/restorecon ]; then /usr/sbin/restorecon "$datadir" - /usr/sbin/restorecon $logfile + /usr/sbin/restorecon "$logfile" fi # If special mysql dir is in place, skip db install diff --git a/packaging/rpm-sles/mysqld.service b/packaging/rpm-sles/mysqld.service deleted file mode 100644 index 78ef3bffe60..00000000000 --- a/packaging/rpm-sles/mysqld.service +++ /dev/null @@ -1,48 +0,0 @@ -# -# Simple MySQL systemd service file -# -# systemd supports lots of fancy features, look here (and linked docs) for a full list: -# http://www.freedesktop.org/software/systemd/man/systemd.exec.html -# -# Note: this file ( /usr/lib/systemd/system/mysql.service ) -# will be overwritten on package upgrade, please copy the file to -# -# /etc/systemd/system/mysql.service -# -# to make needed changes. -# -# systemd-delta can be used to check differences between the two mysql.service files. -# - -[Unit] -Description=MySQL Community Server -After=network.target -After=syslog.target - -[Install] -WantedBy=multi-user.target -Alias=mysql.service - -[Service] -User=mysql -Group=mysql - -# Execute pre and post scripts as root -PermissionsStartOnly=true - -# Needed to create system tables etc. -ExecStartPre=/usr/bin/mysql-systemd-start pre - -# Start main service -ExecStart=/usr/bin/mysqld_safe - -# Don't signal startup success before a ping works -ExecStartPost=/usr/bin/mysql-systemd-start post - -# Give up if ping don't get an answer -TimeoutSec=600 - -Restart=always -PrivateTmp=false - - diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 4b103817ab6..a5c87a44e65 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -218,7 +218,13 @@ parse_arguments() { # mysqld_safe-specific options - must be set in my.cnf ([mysqld_safe])! --core-file-size=*) core_file_size="$val" ;; - --ledir=*) ledir="$val" ;; + --ledir=*) + if [ -z "$pick_args" ]; then + log_error "--ledir option can only be used as command line option, found in config file" + exit 1 + fi + ledir="$val" + ;; --malloc-lib=*) set_malloc_lib "$val" ;; --mysqld=*) if [ -z "$pick_args" ]; then @@ -394,7 +400,15 @@ else relpkgdata='@pkgdatadir@' fi -MY_PWD=`pwd` +case "$0" in + /*) + MY_PWD='@prefix@' + ;; + *) + MY_PWD=`dirname $0` + MY_PWD=`dirname $MY_PWD` + ;; +esac # Check for the directories we would expect from a binary release install if test -n "$MY_BASEDIR_VERSION" -a -d "$MY_BASEDIR_VERSION" then From 42732cc195fd237c9b17490e96f1bb29db433b0b Mon Sep 17 00:00:00 2001 From: Dyre Tjeldvoll Date: Thu, 24 Nov 2016 09:57:54 +0100 Subject: [PATCH 029/258] Bug#25092566: CREATE TABLE WITH DATA DIRECTORY CLAUSE DOES NOT REQUIRE SPECIAL PRIVILEGES Require FILE privilege when creating tables using external data directory or index directory. --- mysql-test/r/partition_symlink.result | 2 ++ mysql-test/t/partition_symlink.test | 2 ++ sql/partition_info.cc | 26 +++++++++++++++++++++++++- sql/partition_info.h | 13 ++++++++++++- sql/sql_parse.cc | 19 ++++++++++++++++++- 5 files changed, 59 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/partition_symlink.result b/mysql-test/r/partition_symlink.result index f26a1642a52..91cc78f1361 100644 --- a/mysql-test/r/partition_symlink.result +++ b/mysql-test/r/partition_symlink.result @@ -4,6 +4,8 @@ DROP DATABASE IF EXISTS mysqltest2; # test.t1 have partitions in mysqltest2-directory! # user root: CREATE USER mysqltest_1@localhost; +# Need FILE permission to use external datadir or indexdir. +GRANT FILE ON *.* TO mysqltest_1@localhost; CREATE DATABASE mysqltest2; USE mysqltest2; CREATE TABLE t1 (a INT) ENGINE = MyISAM; diff --git a/mysql-test/t/partition_symlink.test b/mysql-test/t/partition_symlink.test index 5fdde8e0abc..9e57d616213 100644 --- a/mysql-test/t/partition_symlink.test +++ b/mysql-test/t/partition_symlink.test @@ -32,6 +32,8 @@ DROP DATABASE IF EXISTS mysqltest2; -- echo # test.t1 have partitions in mysqltest2-directory! -- echo # user root: CREATE USER mysqltest_1@localhost; +-- echo # Need FILE permission to use external datadir or indexdir. + GRANT FILE ON *.* TO mysqltest_1@localhost; CREATE DATABASE mysqltest2; USE mysqltest2; CREATE TABLE t1 (a INT) ENGINE = MyISAM; diff --git a/sql/partition_info.cc b/sql/partition_info.cc index a0d09557b81..cd17e3366cf 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -2550,6 +2550,30 @@ void partition_info::print_debug(const char *str, uint *value) DBUG_PRINT("info", ("parser: %s", str)); DBUG_VOID_RETURN; } + +bool has_external_data_or_index_dir(partition_info &pi) +{ + List_iterator part_it(pi.partitions); + for (partition_element *part= part_it++; part; part= part_it++) + { + if (part->data_file_name != NULL || part->index_file_name != NULL) + { + return true; + } + List_iterator subpart_it(part->subpartitions); + for (const partition_element *subpart= subpart_it++; + subpart; + subpart= subpart_it++) + { + if (subpart->data_file_name != NULL || subpart->index_file_name != NULL) + { + return true; + } + } + } + return false; +} + #else /* WITH_PARTITION_STORAGE_ENGINE */ /* For builds without partitioning we need to define these functions diff --git a/sql/partition_info.h b/sql/partition_info.h index 7bfbf8a1b1a..7ff6abeebd2 100644 --- a/sql/partition_info.h +++ b/sql/partition_info.h @@ -1,7 +1,7 @@ #ifndef PARTITION_INFO_INCLUDED #define PARTITION_INFO_INCLUDED -/* Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -349,4 +349,15 @@ void init_all_partitions_iterator(partition_info *part_info, part_iter->get_next= get_next_partition_id_range; } +/** + Predicate which returns true if any partition or subpartition uses + an external data directory or external index directory. + + @param pi partitioning information + @retval true if any partition or subpartition has an external + data directory or external index directory. + @retval false otherwise + */ +bool has_external_data_or_index_dir(partition_info &pi); + #endif /* PARTITION_INFO_INCLUDED */ diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index ac3901997f3..18cb758c9b5 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -35,6 +35,9 @@ #include "sql_insert.h" // mysql_insert #include "sql_update.h" // mysql_update, mysql_multi_update #include "sql_partition.h" // struct partition_info +#ifdef WITH_PARTITION_STORAGE_ENGINE +#include "partition_info.h" // has_external_data_or_index_dir +#endif /* WITH_PARTITION_STORAGE_ENGINE */ #include "sql_db.h" // mysql_change_db, mysql_create_db, // mysql_rm_db, mysql_upgrade_db, // mysql_alter_db, @@ -2413,7 +2416,6 @@ case SQLCOM_PREPARE: copy. */ Alter_info alter_info(lex->alter_info, thd->mem_root); - if (thd->is_fatal_error) { /* If out of memory when creating a copy of alter_info. */ @@ -2421,6 +2423,15 @@ case SQLCOM_PREPARE: goto end_with_restore_list; } + if (((lex->create_info.used_fields & HA_CREATE_USED_DATADIR) != 0 || + (lex->create_info.used_fields & HA_CREATE_USED_INDEXDIR) != 0) && + check_access(thd, FILE_ACL, NULL, NULL, NULL, FALSE, FALSE)) + { + res= 1; + my_error(ER_SPECIFIC_ACCESS_DENIED_ERROR, MYF(0), "FILE"); + goto end_with_restore_list; + } + if ((res= create_table_precheck(thd, select_tables, create_table))) goto end_with_restore_list; @@ -2458,6 +2469,12 @@ case SQLCOM_PREPARE: #ifdef WITH_PARTITION_STORAGE_ENGINE { partition_info *part_info= thd->lex->part_info; + if (part_info != NULL && has_external_data_or_index_dir(*part_info) && + check_access(thd, FILE_ACL, NULL, NULL, NULL, FALSE, FALSE)) + { + res= -1; + goto end_with_restore_list; + } if (part_info && !(part_info= thd->lex->part_info->get_clone(true))) { res= -1; From 202355104f3a4b2524a6b623886c8bf4db49c02e Mon Sep 17 00:00:00 2001 From: "mysql-builder@oracle.com" <> Date: Thu, 24 Nov 2016 21:53:55 +0100 Subject: [PATCH 030/258] From 64cc76bbf8e4d21cffdf2b2b3644ff8a71d4d97a Mon Sep 17 00:00:00 2001 From: Balasubramanian Kandasamy Date: Sat, 26 Nov 2016 20:41:48 +0530 Subject: [PATCH 031/258] Followup fix for Bug#25088048 - ADDITIONAL ISSUES IN MYSQLD_SAFE - Removed mysql.conf, mysqld.service and mysql-systemd-start from sles spec file (cherry picked from commit 35c1adc17c1a99b2c256d374500437a6ce21339e) --- packaging/rpm-sles/mysql.spec.in | 43 -------------------------------- 1 file changed, 43 deletions(-) diff --git a/packaging/rpm-sles/mysql.spec.in b/packaging/rpm-sles/mysql.spec.in index 6652cdcccb6..1b5f1806321 100644 --- a/packaging/rpm-sles/mysql.spec.in +++ b/packaging/rpm-sles/mysql.spec.in @@ -24,7 +24,6 @@ # Regression tests may take a long time, override the default to skip them %{!?runselftest:%global runselftest 0} -%{!?with_systemd: %global systemd 0} %{!?with_debuginfo: %global nodebuginfo 1} %{!?product_suffix: %global product_suffix community} %{!?feature_set: %global feature_set community} @@ -69,9 +68,6 @@ Source0: https://cdn.mysql.com/Downloads/MySQL-@MYSQL_BASE_VERSION@/%{src URL: http://www.mysql.com/ Packager: MySQL Release Engineering Vendor: %{mysql_vendor} -Source1: mysql-systemd-start -Source2: mysqld.service -Source3: mysql.conf Source4: my_config.h Source90: filter-provides.sh Source91: filter-requires.sh @@ -81,9 +77,6 @@ BuildRequires: libaio-devel BuildRequires: ncurses-devel BuildRequires: openssl-devel BuildRequires: zlib-devel -%if 0%{?systemd} -BuildRequires: systemd -%endif BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) %if 0%{?rhel} > 6 @@ -141,15 +134,9 @@ Obsoletes: mariadb-server Obsoletes: mariadb-galera-server Provides: mysql = %{version}-%{release} Provides: mysql-tools = %{version}-%{release} -%if 0%{?systemd} -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd -%else PreReq: insserv PreReq: sed PreReq: pwdutils -%endif Conflicts: otherproviders(mysql) Conflicts: otherproviders(mysql-debug) Conflicts: otherproviders(mysql-tools) @@ -435,13 +422,7 @@ make DESTDIR=%{buildroot} install install -D -m 0644 $MBD/release/support-files/mysql-log-rotate %{buildroot}%{_sysconfdir}/logrotate.d/mysql install -D -m 0644 $MBD/release/packaging/rpm-sles/my.cnf %{buildroot}%{_sysconfdir}/my.cnf install -d %{buildroot}%{_sysconfdir}/my.cnf.d -%if 0%{?systemd} -install -D -m 0755 %{SOURCE1} %{buildroot}%{_bindir}/mysql-systemd-start -install -D -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/mysqld.service -%else install -D -m 0755 $MBD/release/packaging/rpm-sles/mysql.init %{buildroot}%{_sysconfdir}/init.d/mysql -%endif -install -D -m 0644 %{SOURCE3} %{buildroot}%{_prefix}/lib/tmpfiles.d/mysql.conf # Make library links install -d -m 0755 %{buildroot}%{_sysconfdir}/ld.so.conf.d @@ -461,9 +442,6 @@ rm -rf %{buildroot}%{_datadir}/mysql/mysql.server rm -rf %{buildroot}%{_datadir}/mysql/mysqld_multi.server rm -f %{buildroot}%{_datadir}/mysql/{ndb-config-2-node,config*}.ini rm -f %{buildroot}%{_datadir}/mysql/my-*.cnf -%if 0%{?systemd} -rm -rf %{buildroot}%{_sysconfdir}/init.d/mysql -%endif rm -rf %{buildroot}%{_bindir}/mysql_embedded rm -rf %{buildroot}%{_bindir}/mysql_setpermission rm -rf %{buildroot}%{_mandir}/man1/mysql_setpermission.1* @@ -496,31 +474,18 @@ datadir=$(/usr/bin/my_print_defaults server mysqld | grep '^--datadir=' | sed -n /bin/chmod 0755 "$datadir" /bin/touch /var/log/mysql/mysqld.log /bin/chown mysql:mysql /var/log/mysql/mysqld.log >/dev/null 2>&1 || : -%if 0%{?systemd} -%systemd_post mysqld.service -/sbin/service mysqld enable >/dev/null 2>&1 || : -%else /sbin/insserv /etc/init.d/mysql -%endif %preun server -%if 0%{?systemd} -%systemd_preun mysqld.service -%else if [ "$1" -eq 0 ]; then /usr/sbin/rcmysql stop >/dev/null 2>&1 || : /sbin/insserv /etc/init.d fi -%endif %postun server -%if 0%{?systemd} -%systemd_postun_with_restart mysqld.service -%else if [ $1 -ge 1 ]; then /usr/sbin/rcmysql condrestart >/dev/null 2>&1 || : fi -%endif %post libs -p /sbin/ldconfig @@ -596,9 +561,6 @@ fi %attr(755, root, root) %{_bindir}/replace %attr(755, root, root) %{_bindir}/resolve_stack_dump %attr(755, root, root) %{_bindir}/resolveip -%if 0%{?systemd} -%attr(755, root, root) %{_bindir}/mysql-systemd-start -%endif %attr(755, root, root) %{_sbindir}/mysqld %attr(755, root, root) %{_sbindir}/mysqld-debug %attr(755, root, root) %{_sbindir}/rcmysql @@ -629,12 +591,7 @@ fi %attr(644, root, root) %{_datadir}/mysql/mysql_test_data_timezone.sql %attr(644, root, root) %{_datadir}/mysql/mysql-log-rotate %attr(644, root, root) %{_datadir}/mysql/magic -%attr(644, root, root) %{_prefix}/lib/tmpfiles.d/mysql.conf -%if 0%{?systemd} -%attr(644, root, root) %{_unitdir}/mysqld.service -%else %attr(755, root, root) %{_sysconfdir}/init.d/mysql -%endif %attr(644, root, root) %config(noreplace,missingok) %{_sysconfdir}/logrotate.d/mysql %dir %attr(755, mysql, mysql) /var/lib/mysql %dir %attr(755, mysql, mysql) /var/run/mysql From 2d78b25c49407fb3f17fd4e44b551e8b43ffa4b5 Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Sun, 27 Nov 2016 14:42:37 +0100 Subject: [PATCH 032/258] - Fix null pointer java error when connecting to jdbc:drill driver. By setting the context class loader. modified: storage/connect/JavaWrappers.jar modified: storage/connect/JdbcInterface.java modified: storage/connect/mysql-test/connect/std_data/JdbcMariaDB.jar --- storage/connect/JavaWrappers.jar | Bin 19615 -> 19696 bytes storage/connect/JdbcInterface.java | 3 +++ .../connect/std_data/JdbcMariaDB.jar | Bin 6021866 -> 6021947 bytes 3 files changed, 3 insertions(+) diff --git a/storage/connect/JavaWrappers.jar b/storage/connect/JavaWrappers.jar index d5353d2cbfd08c449d2c4ddc7a81b1f8c32c1ad1..8c01c364a3f4d8c05872438b5f3cd766cb3929e3 100644 GIT binary patch delta 7907 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 diff --git a/storage/connect/JdbcInterface.java b/storage/connect/JdbcInterface.java index 07dcaf985b4..a1b1360e6ea 100644 --- a/storage/connect/JdbcInterface.java +++ b/storage/connect/JdbcInterface.java @@ -82,6 +82,9 @@ public class JdbcInterface { System.out.println("URL=" + parms[1]); CheckURL(parms[1], null); + + // This is required for drivers using context class loaders + Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); if (parms[2] != null && !parms[2].isEmpty()) { if (DEBUG) diff --git a/storage/connect/mysql-test/connect/std_data/JdbcMariaDB.jar b/storage/connect/mysql-test/connect/std_data/JdbcMariaDB.jar index 9d461ad6223b41e2a18d97773a064aa8f96405cc..8525da74018a98ffbd5e6bc434940e885ff9b9a5 100644 GIT binary patch delta 147634 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

    yfm(S=wE79z0UwxEgddZ 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 delta 146234 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∨WfcC_SI$twQ3$yno{2Iik6;;%T>z^1 z(JN8pb~VbGj7H1)*zv;RKW;@)dQMb@B0Ef-N25@!9FA>9SvhS*!t>oj)1iLQtQ$0| z-e0(WCyIjZM){HF7+FDsF<>$1Q51c65#^Mc8)e3y1>wpu{YfiNz+ZlVVW_tk$L4D3 zOVPbCG8tyoX-mp@&=&)}dPTnK38(jjq)C$IwIRwnCruk50*@>!46s+)=^4;Qga zKmdDqf}DP`C!k>|c%*&;EL(q~+=Qz>5zvZu0@`k(oQ}pZXf$q7VYGmn(Idxb6FNUp z2ICVpgv|(pp4k&7YE6`I7KKbEDb=}S9hp*n@*}8YF38n^&Q{zl$M`2!i#DWsRiexB zV4pjTC6iG9o2pv8Eq~&UqdqW{kDEZbPL{(sY%-u<8Vcx`$+8(M8MIQcfR3GlRr|JJ z)Rj9~_Vqi4w++$3r-ej|D^7S_;ZuNjZKB1C)A~y|w2y#Znj)j5wj-tvZ-X4h^?rpX zkc&7d%Gwz$vR?FEwYz!zi1=^av|tqU%(n)>tXA9nO|EmlH-s`@o}|4UmakD{G; zzwr31{I4_94Vz#BN-yk;`_a{D@*@JH>5%l?W5J}sbQy*39h=^e-DJt~aq3WD4UM0! zh;KzRP_%eTs~ED1jwwfFTF1zDci1YyZU)$<%%hl@nCl$p$CRRuGh{ywV5lk!1Zvw1 zdG_K|^s-uAp_X{4MeRJ!kRWZnIL4Biw~&X+{J*{I#O@Pn4y~x^r&07wr4jFjc{5Sf z@nx($4us8=%gSYaUigi+z@6Ha3OCL(b(U;fqgg0fygcd6!di8D`B>M2wQbv_jdPA- zew&EmE~>tGWH0FNqYxiXrUvbA+Mq$~1e|(Ge&r@e6WwF2DEWmvZWl2dwYKuqqKs+Q zY#IBeGnA!|4k~xH{75Iqr_&uaU}s=8)IcTBv|2j!wzXp`6b#yabHHzcuNIHH82n;O ziieX}2Oekm7RdU{f<@l!8EZ`)kICHh@^0S!ShDar{;A#Ar`}W}Stj@TCBs{O!llV@ zYul4$67(W~`l%RV$x3C4NkoNS17h)p*GB28&eix_J`@TIL37kIEjDuU3kiDO!7Eb0 zuQ%>0O2%RThbeNobie+hmcOvS*DR#4+N)u-BqJBTm10ZtdjfekJ)NI*-43Uqqe;?8)MItO?x)ic8uo!s70~V9iE~dYUhFREOSmzKnjy zo}nGNpzjWP^|TazOou+_SZvvX%K$gehiG$<2a@$W7li1%MM(s?Ii)6B90E2pEaUPVB1678$Xe-v#``!-9d7+NUZeylH(?QNeBwEk|joa%FthxWx#z&%7E2 z6$JGc{I*kWsuIKdGApP@@NguC%2*Y4L)I@?E!FAxb_HK`=Pye5rybAUk>wI-F_WZN z*#rS>-wUY!NA%;4_pvwth_4fQEltbiuDplQbOO#n?I#a?&=zvwN3S{ksOGPlenZ$a z2OiF;KyLik$1j3DXR#t~qMQ;;aqN}g`)Fl=iqw}ZmM9TiK^>MrzQkg*Ybm6jyF_MT z4l(FQeF3#JYGF?)#alS=)7xB%nwKgBvEc16<{xz&l5D6g%Ltp%eOAI!0(mj1)ift;Lt571k|mxKz9?vlt$ql<>Bo zd`Y_G(xQ5SPyNa8E>+ZcT#~+A26a4uG@``iinwvEXNk~i&!IpID9~A@Kz~M57Du*P zm=y^%ON^;hrY}mYLR+h;O5r%p3YoF-Ujb2S;5wJ(aNh$~$TKp0NVzp5y;X`skv+J* zhgR&W+6Z%6dSNfvm6xbOb}MCe&}SvMKgFqtB1A>?707>&qt z0^)GBb6uOdO7Z84ZMX_0BXKg3@ypF^VMsGp$us}oOE*aN%@cCZ_nDW2<3p3vKS<(i6X=z9!TFV8j z)oSpm>a$7Cjn%h)%47{ROO*sj$urTKTYmE?g_SVhe-D9TU)ppye*WaOtk95g5`F;k;Z_ zQaw2b+*)dCZ1H(1Ffx9Ihx`hXaJk>*NvKTGjXW{Rx7d7~x zT&IY+L~lI=x|%JD2CSFqz4i?1go{nrA&I(py&Tiq7<3U{v11L*#UI?D|1jvOy8_zu zUMrkm&;QsjZt3(B7f^3;NT43RzPM?WaXIp^l?@McIjc<@z$*TcK;7RUNAgbw^?D-w9~aM!9}o#-Kg%ZXRQv^uAR|djF}F2@kq>4R0Af=ZnB=zP2(WuT9e0 z0yY74>X$$zZj!0X*?<-g(Qi!yH^4g1>$k=oRQVH55Nw@*`I2CNBpu4+Z)uFbkO=hxyr+I69+>MEiOZ|W`YilWS4=h`oQ^hT^ zBCjpL9W5(yf#q6T(#y57+ysW(W7nFT%eVHVF?w>};vNH^b>U!Jve+s$>a`VM+o}@0 zv}$Xcf~%V?Zdtw=2a_v~wS-#a|G58zzrAT0Bxf24m6G)2QDfuNb=ah#Z2MZb0n?~%C<8%&#u3yQZK6H1NTvfeiP_J~s!F#vl z5WO4Fx*G&EdAIz^BeTc#J>jrW_Mw(K)9$uSusyr2wOK*#!+8&rV~609 zuiPND+=uen$3^+*eX@xO4C?!jfNtL>n>b>@lVPjjY*Ql&hg}XAwE~#a-5ye@_4k8| z^IL)1`4(cQ?3Y7uB|`MVVR}~JPan|Yw0i`tCIeYOf4;q#iDLq6E!6DxKPqqu_osjPs%P;cak%b*5bKmV4&< zq7}Hr!q4K^kWDL{(KENjUip8 zHm1BUI6mSe@bi{v@iw#q-NaE_87gzB7KQJx*R(O9FDGSaX?6IZ`1(sMFaOgf8dmgX{ORhoMazL%L4=VF@E|L8+- zXsx|OTtweFos&Z`;vBf_E~SN9QH)`nDVc=HC4|xWQZ3o#diP;9>WOPDu1S;= zm-BfrNjDQrI-HkNRNeC@|AwI*SFm7Fcg8VuLF#25XG0w<;;iW9dD#!&8LQzoI{5Gl za@V2X1)zGB)j=J*pp@YQ^Iqq77jMA>cZ8JcylM!2xS%xW7TD+_%1^GKEpJUJ7p217 zzx3!9jn3JP&QYHizFC{mi}S)pm%w0#F9WzzIR4{$c}SFFQ`niW9wA5*CcrYEUsWn_)`Q(Y{fUG*8(<9)scON4BrUxg zUp?}EPPzsG*G<);@H+A}*`hZLwPcP!d0&^ZyG(53%Cg0E&^hW%n&ARLx^w{q>ablN znwuC{Znr1g(dkNsm#0|^8NDlYScJ|uy^-%cS(p)%Mpm~F8MFnIH|twf-xusWw+%F= z&O6VMr1t4?cvJJHTY959JIDn{GE9BDymtBVbq z2?k5?PdzZBkRoBjyW(xx;|*_vfp><09>|EZrWv=TLNl75bpwl1thZ8Y6 zzr2g|^p4y*-yRun@8FXi$Bwys5AN5ab|1cLqPr^OtKj%-N`Ii(6bau>Thv(h9iE~J zTw*1iIpr-Iyb;ij z_hq)L_3Pg`Z1sH-)0(r2L9KU!bT7*Bx}J@ByZ#ES>l4VUsz`G_3exyb@c-Hy7)Eyb z-@07T_XoW?<@M`-f`060OeO4YQ$9*YI#h9DH>Yd{z525rKT3NbKkK>t0852MxH?-d zF3LZIiS+#uM|Xb2RiwVhq#5$N@)CaP_IvOCiT#RfnYBCqtLpzCV@nJ?^*U`i9e*en zJAY7z{;S_)|46CLB{eP=AGsaQHV>&~wI&Q{z$2wDSJ#Bc0kv*}b<-m1GBKfqM@V3$ zn8cT+jOH>C^y?97@ih}DpIjNEM&Unj{YIZ$d5PMhkinZ0jIqN5Kd=6hFq*dK%42&E zSRo_&jzZjkoF9XAh66QxEVbB=0nX!wo5wOi%5V8drSp&FGCdCj#s8@iPd-)StC9B; zsn&*1xHOt4N?oo9PmeZbHo+9wC1PqtxY7;~@eG?La@dnR5F|kvh$?h`E^hHO*DW5G PT>Yz9mW*?c2k!p>K;}@s From c8f0eeb9c8596be83fefb7fef9f9871e53edb020 Mon Sep 17 00:00:00 2001 From: Balasubramanian Kandasamy Date: Mon, 28 Nov 2016 16:38:03 +0530 Subject: [PATCH 033/258] Bug#25159791 BASEDIR: COMMAND NOT FOUND ERROR WHILE STARTING SERVER WITH INIT SCRIPTS (cherry picked from commit 7a39efab8a59ebdcd562fb788bc004ff338796ea) --- packaging/rpm-oel/mysql-systemd-start | 2 +- packaging/rpm-oel/mysql.init | 6 +++--- packaging/rpm-sles/mysql.init | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packaging/rpm-oel/mysql-systemd-start b/packaging/rpm-oel/mysql-systemd-start index af6e906efe1..c744bdceeb4 100644 --- a/packaging/rpm-oel/mysql-systemd-start +++ b/packaging/rpm-oel/mysql-systemd-start @@ -22,7 +22,7 @@ install_db () { datadir=$(get_option mysqld datadir "/var/lib/mysql") # Restore log, dir, perms and SELinux contexts - if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(dirname "$datadir")" = "x/var/lib" ]; then install -d -m 0755 -omysql -gmysql "$datadir" || exit 1 fi log=/var/log/mysqld.log diff --git a/packaging/rpm-oel/mysql.init b/packaging/rpm-oel/mysql.init index 50d1bba017d..c3bbb277b91 100644 --- a/packaging/rpm-oel/mysql.init +++ b/packaging/rpm-oel/mysql.init @@ -76,10 +76,10 @@ start(){ [ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile" if [ ! -d "$datadir/mysql" ] ; then # First, make sure $datadir is there with correct permissions - if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(dirname "$datadir")" = "x/var/lib" ]; then install -d -m0755 -omysql -gmysql "$datadir" || exit 1 fi - if [ ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + if [ ! -h "$datadir" -a "x$(dirname "$datadir")" = "x/var/lib" ]; then chown mysql:mysql "$datadir" chmod 0755 "$datadir" fi @@ -99,7 +99,7 @@ start(){ return $ret fi fi - if [ ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + if [ ! -h "$datadir" -a "x$(dirname "$datadir")" = "x/var/lib" ]; then chown mysql:mysql "$datadir" chmod 0755 "$datadir" fi diff --git a/packaging/rpm-sles/mysql.init b/packaging/rpm-sles/mysql.init index 25762d9bee2..62f2a62e1b9 100644 --- a/packaging/rpm-sles/mysql.init +++ b/packaging/rpm-sles/mysql.init @@ -57,7 +57,7 @@ install_db () { logfile=$(get_option mysqld_safe log-error "/var/log/mysql/mysqld.log") # Restore log, dir, perms and SELinux contexts - if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(basedir "$datadir")" = "x/var/lib" ]; then + if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(dirname "$datadir")" = "x/var/lib" ]; then install -d -m 0755 -omysql -gmysql "$datadir" || return 1 fi From 52ea5ad865b4f6b4b37176296a3be0a716c5109a Mon Sep 17 00:00:00 2001 From: SachinSetiya Date: Thu, 1 Dec 2016 11:24:04 +0530 Subject: [PATCH 034/258] MDEV-11016 wsrep_node_is_ready() check is too strict Problem:- The condition that checks for node readiness is too strict as it does not allow SELECTs even if these selects do not access any tables. For example,if we run SELECT 1; OR SELECT @@max_allowed_packet; Solution:- We need not to report this error when all_tables(lex->query_tables) is NULL: --- .../suite/galera/r/galera_var_dirty_reads.result | 13 +++++++++++++ .../suite/galera/t/galera_var_dirty_reads.test | 7 +++++++ sql/sql_parse.cc | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/mysql-test/suite/galera/r/galera_var_dirty_reads.result b/mysql-test/suite/galera/r/galera_var_dirty_reads.result index 6d703c8cf95..6a2aa1eb5e7 100644 --- a/mysql-test/suite/galera/r/galera_var_dirty_reads.result +++ b/mysql-test/suite/galera/r/galera_var_dirty_reads.result @@ -18,6 +18,19 @@ SET @@session.wsrep_dirty_reads=ON; SELECT * FROM t1; i 1 +SET @@session.wsrep_dirty_reads=OFF; +SELECT 2; +2 +2 +SELECT @@max_allowed_packet; +@@max_allowed_packet +4194304 +SELECT 2+2 from DUAL; +2+2 +4 +SELECT sysdate() from DUAL; +sysdate() +2016-10-28 23:13:06 SELECT * FROM t1; i 1 diff --git a/mysql-test/suite/galera/t/galera_var_dirty_reads.test b/mysql-test/suite/galera/t/galera_var_dirty_reads.test index dfd8d5ecf29..0c81779ca65 100644 --- a/mysql-test/suite/galera/t/galera_var_dirty_reads.test +++ b/mysql-test/suite/galera/t/galera_var_dirty_reads.test @@ -36,6 +36,13 @@ SET @@session.wsrep_dirty_reads=ON; SELECT * FROM t1; +#Select query which does not access table should be allowed MDEV-11016 +SET @@session.wsrep_dirty_reads=OFF; +SELECT 2; +SELECT @@max_allowed_packet; +SELECT 2+2 from DUAL; +SELECT sysdate() from DUAL; + --disable_query_log --eval SET @@global.wsrep_cluster_address = '$wsrep_cluster_address_saved' --enable_query_log diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 4ed1b7a5323..11613fac026 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2635,11 +2635,15 @@ mysql_execute_command(THD *thd) /* Bail out if DB snapshot has not been installed. We however, allow SET and SHOW queries. + SHOW and SELECT queries (only if wsrep_dirty_reads is set or when it + does not access ant table) */ if (thd->variables.wsrep_on && !thd->wsrep_applier && !wsrep_ready && lex->sql_command != SQLCOM_SET_OPTION && !(thd->variables.wsrep_dirty_reads && lex->sql_command == SQLCOM_SELECT) && + !(lex->sql_command == SQLCOM_SELECT && + !all_table) && !wsrep_is_show_query(lex->sql_command)) { my_message(ER_UNKNOWN_COM_ERROR, From 599d8cc2deee615526838ddc962778e51cd3a15a Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Fri, 2 Dec 2016 23:03:43 +0100 Subject: [PATCH 035/258] - MDEV-11366 SIGBUS errors in Connect Storage Engine for ArmHF and MIPS. Fix includes launchpad fix plus more to cover writing BIN tables. modified: storage/connect/tabfix.cpp modified: storage/connect/value.cpp modified: storage/connect/value.h - Typo: Change the name of filamzip to filamgz to prepare future ZIP tables. modified: storage/connect/CMakeLists.txt added: storage/connect/filamgz.cpp added: storage/connect/filamgz.h deleted: storage/connect/filamzip.cpp deleted: storage/connect/filamzip.h modified: storage/connect/plgdbsem.h modified: storage/connect/reldef.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfix.cpp modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp --- storage/connect/CMakeLists.txt | 12 +-- storage/connect/{filamzip.cpp => filamgz.cpp} | 78 +++++++++---------- storage/connect/{filamzip.h => filamgz.h} | 28 +++---- storage/connect/plgdbsem.h | 2 +- storage/connect/reldef.cpp | 16 ++-- storage/connect/tabdos.cpp | 48 ++++++------ storage/connect/tabdos.h | 2 +- storage/connect/tabfix.cpp | 19 ++--- storage/connect/tabfmt.cpp | 22 +++--- storage/connect/tabjson.cpp | 20 ++--- storage/connect/value.cpp | 35 +++++++-- storage/connect/value.h | 66 +++++++++++----- 12 files changed, 197 insertions(+), 151 deletions(-) rename storage/connect/{filamzip.cpp => filamgz.cpp} (96%) rename storage/connect/{filamzip.h => filamgz.h} (91%) diff --git a/storage/connect/CMakeLists.txt b/storage/connect/CMakeLists.txt index 46c4841ff97..f1567730b26 100644 --- a/storage/connect/CMakeLists.txt +++ b/storage/connect/CMakeLists.txt @@ -20,14 +20,14 @@ SET(CONNECT_SOURCES ha_connect.cc connect.cc user_connect.cc mycat.cc fmdlex.c osutil.c plugutil.c rcmsg.c rcmsg.h array.cpp blkfil.cpp colblk.cpp csort.cpp -filamap.cpp filamdbf.cpp filamfix.cpp filamtxt.cpp filamzip.cpp +filamap.cpp filamdbf.cpp filamfix.cpp filamgz.cpp filamtxt.cpp filter.cpp json.cpp jsonudf.cpp maputil.cpp myconn.cpp myutil.cpp plgdbutl.cpp reldef.cpp tabcol.cpp tabdos.cpp tabfix.cpp tabfmt.cpp tabjson.cpp table.cpp tabmul.cpp tabmysql.cpp taboccur.cpp tabpivot.cpp tabsys.cpp tabtbl.cpp tabutil.cpp tabvir.cpp tabxcl.cpp valblk.cpp value.cpp xindex.cpp xobject.cpp array.h blkfil.h block.h catalog.h checklvl.h colblk.h connect.h csort.h -engmsg.h filamap.h filamdbf.h filamfix.h filamtxt.h filamzip.h +engmsg.h filamap.h filamdbf.h filamfix.h filamgz.h filamtxt.h filter.h global.h ha_connect.h inihandl.h json.h jsonudf.h maputil.h msgid.h mycat.h myconn.h myutil.h os.h osutil.h plgcnx.h plgdbsem.h preparse.h reldef.h resource.h tabcol.h tabdos.h tabfix.h tabfmt.h tabjson.h tabmul.h tabmysql.h @@ -38,7 +38,7 @@ user_connect.h valblk.h value.h xindex.h xobject.h xtable.h) # Definitions that are shared for all OSes # add_definitions( -DMARIADB -DFORCE_INIT_OF_VARS -Dconnect_EXPORTS) -add_definitions( -DHUGE_SUPPORT -DZIP_SUPPORT -DPIVOT_SUPPORT ) +add_definitions( -DHUGE_SUPPORT -DGZ_SUPPORT -DPIVOT_SUPPORT ) # @@ -270,9 +270,9 @@ IF(CONNECT_WITH_JDBC) # Find required libraries and include directories SET (JAVA_SOURCES JdbcInterface.java) add_jar(JdbcInterface ${JAVA_SOURCES}) - install_jar(JdbcInterface DESTINATION ${INSTALL_PLUGINDIR} COMPONENT connect-engine) - INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/JavaWrappers.jar - DESTINATION ${INSTALL_PLUGINDIR} COMPONENT connect-engine) + install_jar(JdbcInterface DESTINATION ${INSTALL_PLUGINDIR} COMPONENT connect-engine) + INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/JavaWrappers.jar + DESTINATION ${INSTALL_PLUGINDIR} COMPONENT connect-engine) add_definitions(-DJDBC_SUPPORT) ELSE() SET(JDBC_LIBRARY "") diff --git a/storage/connect/filamzip.cpp b/storage/connect/filamgz.cpp similarity index 96% rename from storage/connect/filamzip.cpp rename to storage/connect/filamgz.cpp index d9834e56dcd..07242ea633c 100644 --- a/storage/connect/filamzip.cpp +++ b/storage/connect/filamgz.cpp @@ -1,11 +1,11 @@ -/*********** File AM Zip C++ Program Source Code File (.CPP) ***********/ -/* PROGRAM NAME: FILAMZIP */ +/************ File AM GZ C++ Program Source Code File (.CPP) ***********/ +/* PROGRAM NAME: FILAMGZ */ /* ------------- */ /* Version 1.5 */ /* */ /* COPYRIGHT: */ /* ---------- */ -/* (C) Copyright to the author Olivier BERTRAND 2005-2015 */ +/* (C) Copyright to the author Olivier BERTRAND 2005-2016 */ /* */ /* WHAT THIS PROGRAM DOES: */ /* ----------------------- */ @@ -56,7 +56,7 @@ /***********************************************************************/ //#define ZLIB_DLL -#include "filamzip.h" +#include "filamgz.h" /***********************************************************************/ /* DB static variables. */ @@ -66,13 +66,13 @@ extern int num_read, num_there, num_eq[]; // Statistics /* ------------------------------------------------------------------- */ /***********************************************************************/ -/* Implementation of the ZIPFAM class. */ +/* Implementation of the GZFAM class. */ /***********************************************************************/ -ZIPFAM::ZIPFAM(PZIPFAM txfp) : TXTFAM(txfp) +GZFAM::GZFAM(PGZFAM txfp) : TXTFAM(txfp) { Zfile = txfp->Zfile; Zpos = txfp->Zpos; - } // end of ZIPFAM copy constructor + } // end of GZFAM copy constructor /***********************************************************************/ /* Zerror: Error function for gz calls. */ @@ -82,7 +82,7 @@ ZIPFAM::ZIPFAM(PZIPFAM txfp) : TXTFAM(txfp) /* library, errnum is set to Z_ERRNO and the application may consult */ /* errno to get the exact error code. */ /***********************************************************************/ -int ZIPFAM::Zerror(PGLOBAL g) +int GZFAM::Zerror(PGLOBAL g) { int errnum; @@ -101,7 +101,7 @@ int ZIPFAM::Zerror(PGLOBAL g) /***********************************************************************/ /* Reset: reset position values at the beginning of file. */ /***********************************************************************/ -void ZIPFAM::Reset(void) +void GZFAM::Reset(void) { TXTFAM::Reset(); //gzrewind(Zfile); // Useful ????? @@ -109,10 +109,10 @@ void ZIPFAM::Reset(void) } // end of Reset /***********************************************************************/ -/* ZIP GetFileLength: returns an estimate of what would be the */ +/* GZ GetFileLength: returns an estimate of what would be the */ /* uncompressed file size in number of bytes. */ /***********************************************************************/ -int ZIPFAM::GetFileLength(PGLOBAL g) +int GZFAM::GetFileLength(PGLOBAL g) { int len = TXTFAM::GetFileLength(g); @@ -124,9 +124,9 @@ int ZIPFAM::GetFileLength(PGLOBAL g) } // end of GetFileLength /***********************************************************************/ -/* ZIP Access Method opening routine. */ +/* GZ Access Method opening routine. */ /***********************************************************************/ -bool ZIPFAM::OpenTableFile(PGLOBAL g) +bool GZFAM::OpenTableFile(PGLOBAL g) { char opmode[4], filename[_MAX_PATH]; MODE mode = Tdbp->GetMode(); @@ -137,7 +137,7 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) break; case MODE_UPDATE: /*****************************************************************/ - /* Updating ZIP files not implemented yet. */ + /* Updating GZ files not implemented yet. */ /*****************************************************************/ strcpy(g->Message, MSG(UPD_ZIP_NOT_IMP)); return true; @@ -152,7 +152,7 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) // Last = Nrec; // For ZBKFAM Tdbp->ResetSize(); } else { - sprintf(g->Message, MSG(NO_PART_DEL), "ZIP"); + sprintf(g->Message, MSG(NO_PART_DEL), "GZ"); return true; } // endif filter @@ -196,7 +196,7 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) /* Allocate the line buffer. For mode Delete a bigger buffer has to */ /* be allocated because is it also used to move lines into the file. */ /***********************************************************************/ -bool ZIPFAM::AllocateBuffer(PGLOBAL g) +bool GZFAM::AllocateBuffer(PGLOBAL g) { MODE mode = Tdbp->GetMode(); @@ -223,7 +223,7 @@ bool ZIPFAM::AllocateBuffer(PGLOBAL g) /***********************************************************************/ /* GetRowID: return the RowID of last read record. */ /***********************************************************************/ -int ZIPFAM::GetRowID(void) +int GZFAM::GetRowID(void) { return Rows; } // end of GetRowID @@ -231,7 +231,7 @@ int ZIPFAM::GetRowID(void) /***********************************************************************/ /* GetPos: return the position of last read record. */ /***********************************************************************/ -int ZIPFAM::GetPos(void) +int GZFAM::GetPos(void) { return (int)Zpos; } // end of GetPos @@ -239,7 +239,7 @@ int ZIPFAM::GetPos(void) /***********************************************************************/ /* GetNextPos: return the position of next record. */ /***********************************************************************/ -int ZIPFAM::GetNextPos(void) +int GZFAM::GetNextPos(void) { return gztell(Zfile); } // end of GetNextPos @@ -247,9 +247,9 @@ int ZIPFAM::GetNextPos(void) /***********************************************************************/ /* SetPos: Replace the table at the specified position. */ /***********************************************************************/ -bool ZIPFAM::SetPos(PGLOBAL g, int pos __attribute__((unused))) +bool GZFAM::SetPos(PGLOBAL g, int pos __attribute__((unused))) { - sprintf(g->Message, MSG(NO_SETPOS_YET), "ZIP"); + sprintf(g->Message, MSG(NO_SETPOS_YET), "GZ"); return true; #if 0 Fpos = pos; @@ -267,7 +267,7 @@ bool ZIPFAM::SetPos(PGLOBAL g, int pos __attribute__((unused))) /***********************************************************************/ /* Record file position in case of UPDATE or DELETE. */ /***********************************************************************/ -bool ZIPFAM::RecordPos(PGLOBAL) +bool GZFAM::RecordPos(PGLOBAL) { Zpos = gztell(Zfile); return false; @@ -276,7 +276,7 @@ bool ZIPFAM::RecordPos(PGLOBAL) /***********************************************************************/ /* Skip one record in file. */ /***********************************************************************/ -int ZIPFAM::SkipRecord(PGLOBAL g, bool header) +int GZFAM::SkipRecord(PGLOBAL g, bool header) { // Skip this record if (gzeof(Zfile)) @@ -293,7 +293,7 @@ int ZIPFAM::SkipRecord(PGLOBAL g, bool header) /***********************************************************************/ /* ReadBuffer: Read one line from a compressed text file. */ /***********************************************************************/ -int ZIPFAM::ReadBuffer(PGLOBAL g) +int GZFAM::ReadBuffer(PGLOBAL g) { char *p; int rc; @@ -357,7 +357,7 @@ int ZIPFAM::ReadBuffer(PGLOBAL g) /* WriteDB: Data Base write routine for ZDOS access method. */ /* Update is not possible without using a temporary file (NIY). */ /***********************************************************************/ -int ZIPFAM::WriteBuffer(PGLOBAL g) +int GZFAM::WriteBuffer(PGLOBAL g) { /*********************************************************************/ /* Prepare the write buffer. */ @@ -376,7 +376,7 @@ int ZIPFAM::WriteBuffer(PGLOBAL g) /***********************************************************************/ /* Data Base delete line routine for ZDOS access method. (NIY) */ /***********************************************************************/ -int ZIPFAM::DeleteRecords(PGLOBAL g, int) +int GZFAM::DeleteRecords(PGLOBAL g, int) { strcpy(g->Message, MSG(NO_ZIP_DELETE)); return RC_FX; @@ -385,21 +385,21 @@ int ZIPFAM::DeleteRecords(PGLOBAL g, int) /***********************************************************************/ /* Data Base close routine for DOS access method. */ /***********************************************************************/ -void ZIPFAM::CloseTableFile(PGLOBAL, bool) +void GZFAM::CloseTableFile(PGLOBAL, bool) { int rc = gzclose(Zfile); if (trace) - htrc("ZIP CloseDB: closing %s rc=%d\n", To_File, rc); + htrc("GZ CloseDB: closing %s rc=%d\n", To_File, rc); Zfile = NULL; // So we can know whether table is open //To_Fb->Count = 0; // Avoid double closing by PlugCloseAll } // end of CloseTableFile /***********************************************************************/ -/* Rewind routine for ZIP access method. */ +/* Rewind routine for GZ access method. */ /***********************************************************************/ -void ZIPFAM::Rewind(void) +void GZFAM::Rewind(void) { gzrewind(Zfile); } // end of Rewind @@ -409,7 +409,7 @@ void ZIPFAM::Rewind(void) /***********************************************************************/ /* Constructors. */ /***********************************************************************/ -ZBKFAM::ZBKFAM(PDOSDEF tdp) : ZIPFAM(tdp) +ZBKFAM::ZBKFAM(PDOSDEF tdp) : GZFAM(tdp) { Blocked = true; Block = tdp->GetBlock(); @@ -421,7 +421,7 @@ ZBKFAM::ZBKFAM(PDOSDEF tdp) : ZIPFAM(tdp) BlkPos = tdp->GetTo_Pos(); } // end of ZBKFAM standard constructor -ZBKFAM::ZBKFAM(PZBKFAM txfp) : ZIPFAM(txfp) +ZBKFAM::ZBKFAM(PZBKFAM txfp) : GZFAM(txfp) { CurLine = txfp->CurLine; NxtLine = txfp->NxtLine; @@ -505,7 +505,7 @@ int ZBKFAM::GetPos(void) /***********************************************************************/ bool ZBKFAM::RecordPos(PGLOBAL /*g*/) { -//strcpy(g->Message, "RecordPos not implemented for zip blocked tables"); +//strcpy(g->Message, "RecordPos not implemented for gz blocked tables"); //return true; return RC_OK; } // end of RecordPos @@ -515,7 +515,7 @@ bool ZBKFAM::RecordPos(PGLOBAL /*g*/) /***********************************************************************/ int ZBKFAM::SkipRecord(PGLOBAL /*g*/, bool) { -//strcpy(g->Message, "SkipRecord not implemented for zip blocked tables"); +//strcpy(g->Message, "SkipRecord not implemented for gz blocked tables"); //return RC_FX; return RC_OK; } // end of SkipRecord @@ -615,7 +615,7 @@ int ZBKFAM::WriteBuffer(PGLOBAL g) /*********************************************************************/ /* In Insert mode, blocs are added sequentialy to the file end. */ - /* Note: Update mode is not handled for zip files. */ + /* Note: Update mode is not handled for gz files. */ /*********************************************************************/ if (++CurNum == Rbuf) { /*******************************************************************/ @@ -703,7 +703,7 @@ void ZBKFAM::CloseTableFile(PGLOBAL g, bool) rc = gzclose(Zfile); if (trace) - htrc("ZIP CloseDB: closing %s rc=%d\n", To_File, rc); + htrc("GZ CloseDB: closing %s rc=%d\n", To_File, rc); Zfile = NULL; // So we can know whether table is open //To_Fb->Count = 0; // Avoid double closing by PlugCloseAll @@ -854,7 +854,7 @@ int ZIXFAM::WriteBuffer(PGLOBAL g) { /*********************************************************************/ /* In Insert mode, blocs are added sequentialy to the file end. */ - /* Note: Update mode is not handled for zip files. */ + /* Note: Update mode is not handled for gz files. */ /*********************************************************************/ if (++CurNum == Rbuf) { /*******************************************************************/ @@ -1062,7 +1062,7 @@ int ZLBFAM::GetNextPos(void) /***********************************************************************/ bool ZLBFAM::SetPos(PGLOBAL g, int pos __attribute__((unused))) { - sprintf(g->Message, MSG(NO_SETPOS_YET), "ZIP"); + sprintf(g->Message, MSG(NO_SETPOS_YET), "GZ"); return true; #if 0 // All this must be checked if (pos < 0) { @@ -1423,4 +1423,4 @@ void ZLBFAM::Rewind(void) //Rbuf = 0; commented out in case we reuse last read block } // end of Rewind -/* ------------------------ End of ZipFam ---------------------------- */ +/* ------------------------ End of GzFam ---------------------------- */ diff --git a/storage/connect/filamzip.h b/storage/connect/filamgz.h similarity index 91% rename from storage/connect/filamzip.h rename to storage/connect/filamgz.h index edb8b5db323..d667fdddcc2 100644 --- a/storage/connect/filamzip.h +++ b/storage/connect/filamgz.h @@ -1,16 +1,16 @@ -/************** FilAmZip H Declares Source Code File (.H) **************/ -/* Name: FILAMZIP.H Version 1.2 */ +/*************** FilAmGz H Declares Source Code File (.H) **************/ +/* Name: FILAMGZ.H Version 1.3 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 2005-2014 */ +/* (C) Copyright to the author Olivier BERTRAND 2005-2016 */ /* */ /* This file contains the GZIP access method classes declares. */ /***********************************************************************/ -#ifndef __FILAMZIP_H -#define __FILAMZIP_H +#ifndef __FILAMGZ_H +#define __FILAMGZ_H #include "zlib.h" -typedef class ZIPFAM *PZIPFAM; +typedef class GZFAM *PGZFAM; typedef class ZBKFAM *PZBKFAM; typedef class ZIXFAM *PZIXFAM; typedef class ZLBFAM *PZLBFAM; @@ -20,19 +20,19 @@ typedef class ZLBFAM *PZLBFAM; /* variable record length files compressed using the gzip library */ /* functions. File is accessed record by record (row). */ /***********************************************************************/ -class DllExport ZIPFAM : public TXTFAM { +class DllExport GZFAM : public TXTFAM { // friend class DOSCOL; public: // Constructor - ZIPFAM(PDOSDEF tdp) : TXTFAM(tdp) {Zfile = NULL; Zpos = 0;} - ZIPFAM(PZIPFAM txfp); + GZFAM(PDOSDEF tdp) : TXTFAM(tdp) {Zfile = NULL; Zpos = 0;} + GZFAM(PGZFAM txfp); // Implementation - virtual AMT GetAmType(void) {return TYPE_AM_ZIP;} + virtual AMT GetAmType(void) {return TYPE_AM_GZ;} virtual int GetPos(void); virtual int GetNextPos(void); virtual PTXF Duplicate(PGLOBAL g) - {return (PTXF)new(g) ZIPFAM(this);} + {return (PTXF)new(g) GZFAM(this);} // Methods virtual void Reset(void); @@ -57,14 +57,14 @@ class DllExport ZIPFAM : public TXTFAM { // Members gzFile Zfile; // Points to GZ file structure z_off_t Zpos; // Uncompressed file position - }; // end of class ZIPFAM + }; // end of class GZFAM /***********************************************************************/ /* This is the access method class declaration for optimized variable */ /* record length files compressed using the gzip library functions. */ /* The File is accessed by block (requires an opt file). */ /***********************************************************************/ -class DllExport ZBKFAM : public ZIPFAM { +class DllExport ZBKFAM : public GZFAM { public: // Constructor ZBKFAM(PDOSDEF tdp); @@ -167,4 +167,4 @@ class DllExport ZLBFAM : public BLKFAM { bool Optimized; // true when opt file is available }; // end of class ZLBFAM -#endif // __FILAMZIP_H +#endif // __FILAMGZ_H diff --git a/storage/connect/plgdbsem.h b/storage/connect/plgdbsem.h index 910ce97f48a..e99f5f36444 100644 --- a/storage/connect/plgdbsem.h +++ b/storage/connect/plgdbsem.h @@ -123,7 +123,7 @@ enum AMT {TYPE_AM_ERROR = 0, /* Type not defined */ TYPE_AM_PRX = 129, /* PROXY access method type no */ TYPE_AM_XTB = 130, /* SYS table access method type */ TYPE_AM_BLK = 131, /* BLK access method type no */ - TYPE_AM_ZIP = 132, /* ZIP access method type no */ + TYPE_AM_GZ = 132, /* GZ access method type no */ TYPE_AM_ZLIB = 133, /* ZLIB access method type no */ TYPE_AM_JSON = 134, /* JSON access method type no */ TYPE_AM_JSN = 135, /* JSN access method type no */ diff --git a/storage/connect/reldef.cpp b/storage/connect/reldef.cpp index a62fcbf9416..30e4d49d249 100644 --- a/storage/connect/reldef.cpp +++ b/storage/connect/reldef.cpp @@ -1,7 +1,7 @@ /************* RelDef CPP Program Source Code File (.CPP) **************/ /* PROGRAM NAME: RELDEF */ /* ------------- */ -/* Version 1.5 */ +/* Version 1.6 */ /* */ /* COPYRIGHT: */ /* ---------- */ @@ -43,9 +43,9 @@ #if defined(VCT_SUPPORT) #include "filamvct.h" #endif // VCT_SUPPORT -#if defined(ZIP_SUPPORT) -#include "filamzip.h" -#endif // ZIP_SUPPORT +#if defined(GZ_SUPPORT) +#include "filamgz.h" +#endif // GZ_SUPPORT #include "tabdos.h" #include "valblk.h" #include "tabmul.h" @@ -665,15 +665,15 @@ PTDB OEMDEF::GetTable(PGLOBAL g, MODE mode) /*********************************************************************/ if (!((PTDBDOS)tdbp)->GetTxfp()) { if (cmpr) { -#if defined(ZIP_SUPPORT) +#if defined(GZ_SUPPORT) if (cmpr == 1) - txfp = new(g) ZIPFAM(defp); + txfp = new(g) GZFAM(defp); else txfp = new(g) ZLBFAM(defp); -#else // !ZIP_SUPPORT +#else // !GZ_SUPPORT strcpy(g->Message, "Compress not supported"); return NULL; -#endif // !ZIP_SUPPORT +#endif // !GZ_SUPPORT } else if (rfm == RECFM_VAR) { if (map) txfp = new(g) MAPFAM(defp); diff --git a/storage/connect/tabdos.cpp b/storage/connect/tabdos.cpp index 98633f49d23..06dde34a27f 100644 --- a/storage/connect/tabdos.cpp +++ b/storage/connect/tabdos.cpp @@ -1,11 +1,11 @@ /************* TabDos C++ Program Source Code File (.CPP) **************/ /* PROGRAM NAME: TABDOS */ /* ------------- */ -/* Version 4.9 */ +/* Version 4.9.1 */ /* */ /* COPYRIGHT: */ /* ---------- */ -/* (C) Copyright to the author Olivier BERTRAND 1998-2015 */ +/* (C) Copyright to the author Olivier BERTRAND 1998-2016 */ /* */ /* WHAT THIS PROGRAM DOES: */ /* ----------------------- */ @@ -51,9 +51,9 @@ #include "filamap.h" #include "filamfix.h" #include "filamdbf.h" -#if defined(ZIP_SUPPORT) -#include "filamzip.h" -#endif // ZIP_SUPPORT +#if defined(GZ_SUPPORT) +#include "filamgz.h" +#endif // GZ_SUPPORT #include "tabdos.h" #include "tabfix.h" #include "tabmul.h" @@ -350,28 +350,28 @@ PTDB DOSDEF::GetTable(PGLOBAL g, MODE mode) else if (map) txfp = new(g) MPXFAM(this); else if (Compressed) { -#if defined(ZIP_SUPPORT) +#if defined(GZ_SUPPORT) txfp = new(g) ZIXFAM(this); -#else // !ZIP_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); +#else // !GZ_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "GZ"); return NULL; -#endif // !ZIP_SUPPORT +#endif // !GZ_SUPPORT } else txfp = new(g) FIXFAM(this); tdbp = new(g) TDBFIX(this, txfp); } else { if (Compressed) { -#if defined(ZIP_SUPPORT) +#if defined(GZ_SUPPORT) if (Compressed == 1) - txfp = new(g) ZIPFAM(this); + txfp = new(g) GZFAM(this); else txfp = new(g) ZLBFAM(this); -#else // !ZIP_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); +#else // !GZ_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "GZ"); return NULL; -#endif // !ZIP_SUPPORT +#endif // !GZ_SUPPORT } else if (map) txfp = new(g) MAPFAM(this); else @@ -396,7 +396,7 @@ PTDB DOSDEF::GetTable(PGLOBAL g, MODE mode) if (map) { txfp = new(g) MBKFAM(this); } else if (Compressed) { -#if defined(ZIP_SUPPORT) +#if defined(GZ_SUPPORT) if (Compressed == 1) txfp = new(g) ZBKFAM(this); else { @@ -404,7 +404,7 @@ PTDB DOSDEF::GetTable(PGLOBAL g, MODE mode) ((PZLBFAM)txfp)->SetOptimized(To_Pos != NULL); } // endelse #else - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "GZ"); return NULL; #endif } else @@ -531,13 +531,13 @@ int TDBDOS::ResetTableOpt(PGLOBAL g, bool dop, bool dox) // except for ZLIB access method. if (Txfp->GetAmType() == TYPE_AM_MAP) { Txfp = new(g) MAPFAM((PDOSDEF)To_Def); -#if defined(ZIP_SUPPORT) - } else if (Txfp->GetAmType() == TYPE_AM_ZIP) { - Txfp = new(g) ZIPFAM((PDOSDEF)To_Def); +#if defined(GZ_SUPPORT) + } else if (Txfp->GetAmType() == TYPE_AM_GZ) { + Txfp = new(g) GZFAM((PDOSDEF)To_Def); } else if (Txfp->GetAmType() == TYPE_AM_ZLIB) { Txfp->Reset(); ((PZLBFAM)Txfp)->SetOptimized(false); -#endif // ZIP_SUPPORT +#endif // GZ_SUPPORT } else if (Txfp->GetAmType() == TYPE_AM_BLK) Txfp = new(g) DOSFAM((PDOSDEF)To_Def); @@ -2079,10 +2079,10 @@ bool TDBDOS::OpenDB(PGLOBAL g) /*******************************************************************/ if (Txfp->GetAmType() == TYPE_AM_MAP && Mode == MODE_DELETE) Txfp = new(g) MAPFAM((PDOSDEF)To_Def); -#if defined(ZIP_SUPPORT) - else if (Txfp->GetAmType() == TYPE_AM_ZIP) - Txfp = new(g) ZIPFAM((PDOSDEF)To_Def); -#endif // ZIP_SUPPORT +#if defined(GZ_SUPPORT) + else if (Txfp->GetAmType() == TYPE_AM_GZ) + Txfp = new(g) GZFAM((PDOSDEF)To_Def); +#endif // GZ_SUPPORT else // if (Txfp->GetAmType() != TYPE_AM_DOS) ??? Txfp = new(g) DOSFAM((PDOSDEF)To_Def); diff --git a/storage/connect/tabdos.h b/storage/connect/tabdos.h index c098886f14b..c70e0032f47 100644 --- a/storage/connect/tabdos.h +++ b/storage/connect/tabdos.h @@ -91,7 +91,7 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ int Maxerr; /* Maximum number of bad records (DBF) */ int ReadMode; /* Specific to DBF */ int Ending; /* Length of end of lines */ - int Teds; /* Binary table default endian setting */ + char Teds; /* Binary table default endian setting */ }; // end of DOSDEF /***********************************************************************/ diff --git a/storage/connect/tabfix.cpp b/storage/connect/tabfix.cpp index 55c254f41ea..d99f7800f26 100644 --- a/storage/connect/tabfix.cpp +++ b/storage/connect/tabfix.cpp @@ -1,11 +1,11 @@ /************* TabFix C++ Program Source Code File (.CPP) **************/ /* PROGRAM NAME: TABFIX */ /* ------------- */ -/* Version 4.9 */ +/* Version 4.9.1 */ /* */ /* COPYRIGHT: */ /* ---------- */ -/* (C) Copyright to the author Olivier BERTRAND 1998-2015 */ +/* (C) Copyright to the author Olivier BERTRAND 1998-2016 */ /* */ /* WHAT THIS PROGRAM DOES: */ /* ----------------------- */ @@ -589,9 +589,10 @@ void BINCOL::WriteColumn(PGLOBAL g) switch (Fmt) { case 'X': // Standard not converted values - if (Eds && IsTypeChar(Buf_Type)) - *(longlong *)p = Value->GetBigintValue(); - else if (Value->GetBinValue(p, Long, Status)) { + if (Eds && IsTypeChar(Buf_Type)) { + if (Status) + Value->GetValueNonAligned(p, Value->GetBigintValue()); + } else if (Value->GetBinValue(p, Long, Status)) { sprintf(g->Message, MSG(BIN_F_TOO_LONG), Name, Value->GetSize(), Long); longjmp(g->jumper[g->jump_level], 31); @@ -605,7 +606,7 @@ void BINCOL::WriteColumn(PGLOBAL g) sprintf(g->Message, MSG(VALUE_TOO_BIG), n, Name); longjmp(g->jumper[g->jump_level], 31); } else if (Status) - *(short *)p = (short)n; + Value->GetValueNonAligned(p, (short)n); break; case 'T': // Tiny integer @@ -625,7 +626,7 @@ void BINCOL::WriteColumn(PGLOBAL g) sprintf(g->Message, MSG(VALUE_TOO_BIG), n, Name); longjmp(g->jumper[g->jump_level], 31); } else if (Status) - *(int *)p = Value->GetIntValue(); + Value->GetValueNonAligned(p, (int)n); break; case 'G': // Large (great) integer @@ -636,12 +637,12 @@ void BINCOL::WriteColumn(PGLOBAL g) case 'F': // Float case 'R': // Real if (Status) - *(float *)p = (float)Value->GetFloatValue(); + Value->GetValueNonAligned(p, (float)Value->GetFloatValue()); break; case 'D': // Double if (Status) - *(double *)p = Value->GetFloatValue(); + Value->GetValueNonAligned(p, Value->GetFloatValue()); break; case 'C': // Characters diff --git a/storage/connect/tabfmt.cpp b/storage/connect/tabfmt.cpp index d21a8b977da..4a39ecd6e0f 100644 --- a/storage/connect/tabfmt.cpp +++ b/storage/connect/tabfmt.cpp @@ -1,11 +1,11 @@ /************* TabFmt C++ Program Source Code File (.CPP) **************/ /* PROGRAM NAME: TABFMT */ /* ------------- */ -/* Version 3.9 */ +/* Version 3.9.1 */ /* */ /* COPYRIGHT: */ /* ---------- */ -/* (C) Copyright to the author Olivier BERTRAND 2001 - 2015 */ +/* (C) Copyright to the author Olivier BERTRAND 2001 - 2016 */ /* */ /* WHAT THIS PROGRAM DOES: */ /* ----------------------- */ @@ -51,9 +51,9 @@ #include "plgdbsem.h" #include "mycat.h" #include "filamap.h" -#if defined(ZIP_SUPPORT) -#include "filamzip.h" -#endif // ZIP_SUPPORT +#if defined(GZ_SUPPORT) +#include "filamgz.h" +#endif // GZ_SUPPORT #include "tabfmt.h" #include "tabmul.h" #define NO_FUNC @@ -462,16 +462,16 @@ PTDB CSVDEF::GetTable(PGLOBAL g, MODE mode) // Should be now compatible with UNIX txfp = new(g) MAPFAM(this); } else if (Compressed) { -#if defined(ZIP_SUPPORT) +#if defined(GZ_SUPPORT) if (Compressed == 1) - txfp = new(g) ZIPFAM(this); + txfp = new(g) GZFAM(this); else txfp = new(g) ZLBFAM(this); -#else // !ZIP_SUPPORT +#else // !GZ_SUPPORT strcpy(g->Message, "Compress not supported"); return NULL; -#endif // !ZIP_SUPPORT +#endif // !GZ_SUPPORT } else txfp = new(g) DOSFAM(this); @@ -498,7 +498,7 @@ PTDB CSVDEF::GetTable(PGLOBAL g, MODE mode) if (map) { txfp = new(g) MBKFAM(this); } else if (Compressed) { -#if defined(ZIP_SUPPORT) +#if defined(GZ_SUPPORT) if (Compressed == 1) txfp = new(g) ZBKFAM(this); else { @@ -506,7 +506,7 @@ PTDB CSVDEF::GetTable(PGLOBAL g, MODE mode) ((PZLBFAM)txfp)->SetOptimized(To_Pos != NULL); } // endelse #else - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "GZ"); return NULL; #endif } else diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index 17260836371..5f864f0bd48 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -1,6 +1,6 @@ /************* tabjson C++ Program Source Code File (.CPP) *************/ -/* PROGRAM NAME: tabjson Version 1.1 */ -/* (C) Copyright to the author Olivier BERTRAND 2014 - 2015 */ +/* PROGRAM NAME: tabjson Version 1.2 */ +/* (C) Copyright to the author Olivier BERTRAND 2014 - 2016 */ /* This program are the JSON class DB execution routines. */ /***********************************************************************/ @@ -25,9 +25,9 @@ //#include "resource.h" // for IDS_COLUMNS #include "tabjson.h" #include "filamap.h" -#if defined(ZIP_SUPPORT) -#include "filamzip.h" -#endif // ZIP_SUPPORT +#if defined(GZ_SUPPORT) +#include "filamgz.h" +#endif // GZ_SUPPORT #include "tabmul.h" #include "checklvl.h" #include "resource.h" @@ -396,15 +396,15 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) (m == MODE_UPDATE || m == MODE_DELETE)); if (Compressed) { -#if defined(ZIP_SUPPORT) +#if defined(GZ_SUPPORT) if (Compressed == 1) - txfp = new(g) ZIPFAM(this); + txfp = new(g) GZFAM(this); else txfp = new(g) ZLBFAM(this); -#else // !ZIP_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); +#else // !GZ_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "GZ"); return NULL; -#endif // !ZIP_SUPPORT +#endif // !GZ_SUPPORT } else if (map) txfp = new(g) MAPFAM(this); else diff --git a/storage/connect/value.cpp b/storage/connect/value.cpp index 64d0e13e8c4..ced690e77c0 100644 --- a/storage/connect/value.cpp +++ b/storage/connect/value.cpp @@ -1,7 +1,7 @@ /************* Value C++ Functions Source Code File (.CPP) *************/ -/* Name: VALUE.CPP Version 2.5 */ +/* Name: VALUE.CPP Version 2.6 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 2001-2015 */ +/* (C) Copyright to the author Olivier BERTRAND 2001-2016 */ /* */ /* This file contains the VALUE and derived classes family functions. */ /* These classes contain values of different types. They are used so */ @@ -792,19 +792,29 @@ uchar TYPVAL::GetTypedValue(PVBLK blk, int n) /***********************************************************************/ /* TYPVAL SetBinValue: with bytes extracted from a line. */ +/* Currently only used reading column of binary files. */ /***********************************************************************/ template void TYPVAL::SetBinValue(void *p) - { - Tval = *(TYPE *)p; - Null = false; - } // end of SetBinValue +{ +#if defined(UNALIGNED_OK) + // x86 can cast non-aligned memory directly + Tval = *(TYPE *)p; +#else + // Prevent unaligned memory access on MIPS and ArmHF platforms. + // Make use of memcpy instead of straight pointer dereferencing. + // Currently only used by WriteColumn of binary files. + // From original author: Vicentiu Ciorbaru + memcpy(&Tval, p, sizeof(TYPE)); +#endif + Null = false; +} // end of SetBinValue /***********************************************************************/ /* GetBinValue: fill a buffer with the internal binary value. */ /* This function checks whether the buffer length is enough and */ /* returns true if not. Actual filling occurs only if go is true. */ -/* Currently used by WriteColumn of binary files. */ +/* Currently only used writing column of binary files. */ /***********************************************************************/ template bool TYPVAL::GetBinValue(void *buf, int buflen, bool go) @@ -819,7 +829,16 @@ bool TYPVAL::GetBinValue(void *buf, int buflen, bool go) //#endif if (go) - *(TYPE *)buf = Tval; +#if defined(UNALIGNED_OK) + // x86 can cast non-aligned memory directly + *(TYPE *)buf = Tval; +#else + // Prevent unaligned memory access on MIPS and ArmHF platforms. + // Make use of memcpy instead of straight pointer dereferencing. + // Currently only used by WriteColumn of binary files. + // From original author: Vicentiu Ciorbaru + memcpy(buf, &Tval, sizeof(TYPE)); +#endif Null = false; return false; diff --git a/storage/connect/value.h b/storage/connect/value.h index c5a381e89da..a670ade4c28 100644 --- a/storage/connect/value.h +++ b/storage/connect/value.h @@ -1,7 +1,7 @@ /**************** Value H Declares Source Code File (.H) ***************/ -/* Name: VALUE.H Version 2.1 */ +/* Name: VALUE.H Version 2.2 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 2001-2014 */ +/* (C) Copyright to the author Olivier BERTRAND 2001-2016 */ /* */ /* This file contains the VALUE and derived classes declares. */ /***********************************************************************/ @@ -16,6 +16,13 @@ #include "assert.h" #include "block.h" +/***********************************************************************/ +/* This should list the processors accepting unaligned numeral values.*/ +/***********************************************************************/ +#if defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64) || defined(_M_IA64) +#define UNALIGNED_OK +#endif + /***********************************************************************/ /* Types used in some class definitions. */ /***********************************************************************/ @@ -116,27 +123,46 @@ class DllExport VALUE : public BLOCK { virtual bool Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op); virtual bool FormatValue(PVAL vp, char *fmt) = 0; - /** - Set value from a non-aligned in-memory value in the machine byte order. - TYPE can be either of: - - int, short, longlong - - uint, ushort, ulonglong - - float, double - @param - a pointer to a non-aligned value of type TYPE. - */ - template - void SetValueNonAligned(const char *p) - { -#if defined(__i386__) || defined(__x86_64__) - SetValue(*((TYPE*) p)); // x86 can cast non-aligned memory directly + /** + Set value from a non-aligned in-memory value in the machine byte order. + TYPE can be either of: + - int, short, longlong + - uint, ushort, ulonglong + - float, double + @param - a pointer to a non-aligned value of type TYPE. + */ + template + void SetValueNonAligned(const char *p) + { +#if defined(UNALIGNED_OK) + SetValue(*((TYPE*)p)); // x86 can cast non-aligned memory directly #else - TYPE tmp; // a slower version for non-x86 platforms - memcpy(&tmp, p, sizeof(tmp)); - SetValue(tmp); + TYPE tmp; // a slower version for non-x86 platforms + memcpy(&tmp, p, sizeof(tmp)); + SetValue(tmp); #endif - } + } // end of SetValueNonAligned - protected: + /** + Get value from a non-aligned in-memory value in the machine byte order. + TYPE can be either of: + - int, short, longlong + - uint, ushort, ulonglong + - float, double + @params - a pointer to a non-aligned value of type TYPE, the TYPE value. + */ + template + void GetValueNonAligned(char *p, TYPE n) + { +#if defined(UNALIGNED_OK) + *(TYPE *)p = n; // x86 can cast non-aligned memory directly +#else + TYPE tmp = n; // a slower version for non-x86 platforms + memcpy(p, &tmp, sizeof(tmp)); +#endif + } // end of SetValueNonAligned + +protected: virtual bool SetConstFormat(PGLOBAL, FORMAT&) = 0; const char *GetXfmt(void); From 55b4579633ec81481823b3dfaa45674db6416a50 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Mon, 5 Dec 2016 16:28:29 -0500 Subject: [PATCH 036/258] Fix build failure. --- sql/sql_parse.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 11613fac026..53350751d79 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2643,7 +2643,7 @@ mysql_execute_command(THD *thd) !(thd->variables.wsrep_dirty_reads && lex->sql_command == SQLCOM_SELECT) && !(lex->sql_command == SQLCOM_SELECT && - !all_table) && + !all_tables) && !wsrep_is_show_query(lex->sql_command)) { my_message(ER_UNKNOWN_COM_ERROR, From 1e3f351e92b94a35825e2c9867c5be5e1e2d0618 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Thu, 6 Oct 2016 07:47:49 +0200 Subject: [PATCH 037/258] MDEV-11454: Make innodb_buffer_pool_dump_pct refer to the entire buffer pool size Rather than innodb_buffer_pool_dump_pct referring to the percentage of hot data in the buffer pool, it refers to the entire buffer pool size. This means that a completed load followed by a shutdown will write the exact same data. The problem was: With innodb_buffer_pool_dump_pct say 25% (the default since 10.2.2), a server started will restore 25% of the buffer pool size with the expectation that over time the rest of the buffer pool will be populated. Then on shutdown 25% will be saved. If a server is started and then is shutdown a) without much activity occurring b) is started as a hot spare and shutdown before being used, then 6.25% (25% of 25%) of the buffer pool is saved. This will generate bigger dump files for users who don't have a full innodb_buffer_pool however a realistic scenario is a buffer pool should be completely used. Signed-off-by: Daniel Black --- storage/innobase/buf/buf0dump.cc | 10 +++++++++- storage/xtradb/buf/buf0dump.cc | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/storage/innobase/buf/buf0dump.cc b/storage/innobase/buf/buf0dump.cc index 682be386f2b..800fcd07435 100644 --- a/storage/innobase/buf/buf0dump.cc +++ b/storage/innobase/buf/buf0dump.cc @@ -313,9 +313,17 @@ buf_dump( } if (srv_buf_pool_dump_pct != 100) { + ulint t_pages; + ut_ad(srv_buf_pool_dump_pct < 100); - n_pages = n_pages * srv_buf_pool_dump_pct / 100; + /* limit the number of total pages dumped to X% of the + * total number of pages */ + t_pages = buf_pool->curr_size + * srv_buf_pool_dump_pct / 100; + if (n_pages > t_pages) { + n_pages = t_pages; + } if (n_pages == 0) { n_pages = 1; diff --git a/storage/xtradb/buf/buf0dump.cc b/storage/xtradb/buf/buf0dump.cc index 114c96cec98..ee90cb76ab8 100644 --- a/storage/xtradb/buf/buf0dump.cc +++ b/storage/xtradb/buf/buf0dump.cc @@ -248,9 +248,17 @@ buf_dump( } if (srv_buf_pool_dump_pct != 100) { + ulint t_pages; + ut_ad(srv_buf_pool_dump_pct < 100); - n_pages = n_pages * srv_buf_pool_dump_pct / 100; + /* limit the number of total pages dumped to X% of the + * total number of pages */ + t_pages = buf_pool->curr_size + * srv_buf_pool_dump_pct / 100; + if (n_pages > t_pages) { + n_pages = t_pages; + } if (n_pages == 0) { n_pages = 1; From 050a05bdb73da01741193c9eb5c4fc672883e94b Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Mon, 5 Dec 2016 16:27:51 +1100 Subject: [PATCH 038/258] xtradb: new style ib_logf logging rather than stderr --- storage/xtradb/buf/buf0dump.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/storage/xtradb/buf/buf0dump.cc b/storage/xtradb/buf/buf0dump.cc index ee90cb76ab8..fa7267c1d01 100644 --- a/storage/xtradb/buf/buf0dump.cc +++ b/storage/xtradb/buf/buf0dump.cc @@ -155,8 +155,7 @@ buf_load_status( fmt, ap); if (severity == STATUS_NOTICE || severity == STATUS_ERR) { - ut_print_timestamp(stderr); - fprintf(stderr, " InnoDB: %s\n", + ib_logf((ib_log_level_t) severity, "%s", export_vars.innodb_buffer_pool_load_status); } From d04cb70cc3389f608ee7fdb4221f35cf8109f81b Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Mon, 5 Dec 2016 17:21:31 +1100 Subject: [PATCH 039/258] Report any innodb_buf_pool_dump_pct restriction --- storage/innobase/buf/buf0dump.cc | 4 ++++ storage/xtradb/buf/buf0dump.cc | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/storage/innobase/buf/buf0dump.cc b/storage/innobase/buf/buf0dump.cc index 800fcd07435..7042e25d5ba 100644 --- a/storage/innobase/buf/buf0dump.cc +++ b/storage/innobase/buf/buf0dump.cc @@ -322,6 +322,10 @@ buf_dump( t_pages = buf_pool->curr_size * srv_buf_pool_dump_pct / 100; if (n_pages > t_pages) { + buf_dump_status(STATUS_INFO, + "Instance %d, restricted to %u pages " \ + "due to innodb_buf_pool_dump_pct (%d)", + i, t_pages, srv_buf_pool_dump_pct); n_pages = t_pages; } diff --git a/storage/xtradb/buf/buf0dump.cc b/storage/xtradb/buf/buf0dump.cc index fa7267c1d01..415eb8b50cb 100644 --- a/storage/xtradb/buf/buf0dump.cc +++ b/storage/xtradb/buf/buf0dump.cc @@ -256,6 +256,10 @@ buf_dump( t_pages = buf_pool->curr_size * srv_buf_pool_dump_pct / 100; if (n_pages > t_pages) { + buf_dump_status(STATUS_INFO, + "Instance %d, restricted to %u pages " \ + "due to innodb_buf_pool_dump_pct (%d)", + i, t_pages, srv_buf_pool_dump_pct); n_pages = t_pages; } From 84379b05b28a58d65d0fcbb79bf95410d82ed0d4 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Mon, 5 Dec 2016 17:22:13 +1100 Subject: [PATCH 040/258] MDEV-11454: Add test case innodb_buffer_pool_dump_pct Signed-off-by: Daniel Black --- ...nnodb_buffer_pool_dump_pct_function.result | 54 +++++++++ .../innodb_buffer_pool_dump_pct_function.opt | 5 + .../innodb_buffer_pool_dump_pct_function.test | 110 ++++++++++++++++++ 3 files changed, 169 insertions(+) create mode 100644 mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_pct_function.result create mode 100644 mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.opt create mode 100644 mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.test diff --git a/mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_pct_function.result b/mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_pct_function.result new file mode 100644 index 00000000000..9d764b22419 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_pct_function.result @@ -0,0 +1,54 @@ +SET GLOBAL innodb_buffer_pool_dump_pct=25, global innodb_buffer_pool_dump_at_shutdown=1;; +# populate with data +CREATE TABLE t1 ( +c01 blob, c02 blob, c03 blob, c04 blob, c05 blob, +c06 blob, c07 blob, c08 blob, c09 blob, c10 blob, +c11 blob, c12 blob, c13 blob, c14 blob, c15 blob, +c16 blob, c17 blob, c18 blob, c19 blob, c20 blob, +c21 blob, c22 blob, c23 blob, c24 blob, c25 blob, +c26 blob, c27 blob, c28 blob, c29 blob, c30 blob, +c31 blob, c32 blob, c33 blob, c34 blob, c35 blob, +c36 blob, c37 blob, c38 blob, c39 blob, c40 blob, +c41 blob, c42 blob, c43 blob, c44 blob, c45 blob, +c46 blob, c47 blob, c48 blob, c49 blob, c50 blob, +c51 blob, c52 blob, c53 blob, c54 blob, c55 blob, +c56 blob, c57 blob, c58 blob, c59 blob, c60 blob, +c61 blob, c62 blob, c63 blob, c64 blob +) ROW_FORMAT=dynamic; +SET @a = repeat('a', 16 * 1024); +INSERT INTO t1 VALUES (@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a +); +insert into t1 select * from t1; +# Restart server +SET GLOBAL innodb_buffer_pool_load_now=1; +# Case 1: Limit from innodb_buffer_pool_dump_pct +SELECT 256 as 'Previous pool pages', +ROUND(25 / 100 * @@innodb_buffer_pool_size / @@innodb_page_size) as 'Limit', +128 as 'Pages saved'; +Previous pool pages Limit Pages saved +256 128 128 +# Case 2: blog_pages is the minimum. +# load buffer pool with entire table. +select * from t1; +SET GLOBAL innodb_buffer_pool_dump_pct=75, global innodb_buffer_pool_dump_at_shutdown=1; +# Restart server +SET GLOBAL innodb_buffer_pool_load_now=1; +# now loaded +SELECT 256 as 'Previous pool pages', +ROUND(75 / 100 * @@innodb_buffer_pool_size / @@innodb_page_size) as 'Limit', +256 as 'Pages saved'; +Previous pool pages Limit Pages saved +256 384 256 +DROP TABLE t1; diff --git a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.opt b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.opt new file mode 100644 index 00000000000..787f6ce532d --- /dev/null +++ b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.opt @@ -0,0 +1,5 @@ +--loose-default-storage-engine=innodb +--loose-innodb_buffer_pool_load_at_startup=0 +--loose-innodb_buffer_pool_dump_at_shutdown=0 +--loose-innodb-buffer-pool-size=8M +--loose-innodb-page-size=16k diff --git a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.test b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.test new file mode 100644 index 00000000000..213f45128ed --- /dev/null +++ b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.test @@ -0,0 +1,110 @@ +# +# Functional test for innodb_buffer_pool_dump_pct +# +# From MDEV-11454 the amount dumped is the minimum of: +# * innodb_buffer_pool_dump_pct * Innodb_buffer_pool_pages_total * innodb_page_size +# * innodb_buffer_pool_pages_data * innodb_page_size + +-- source include/have_innodb.inc + +--let $PCT=25 + +--eval SET GLOBAL innodb_buffer_pool_dump_pct=$PCT, global innodb_buffer_pool_dump_at_shutdown=1; + +--echo # populate with data + +CREATE TABLE t1 ( +c01 blob, c02 blob, c03 blob, c04 blob, c05 blob, +c06 blob, c07 blob, c08 blob, c09 blob, c10 blob, +c11 blob, c12 blob, c13 blob, c14 blob, c15 blob, +c16 blob, c17 blob, c18 blob, c19 blob, c20 blob, +c21 blob, c22 blob, c23 blob, c24 blob, c25 blob, +c26 blob, c27 blob, c28 blob, c29 blob, c30 blob, +c31 blob, c32 blob, c33 blob, c34 blob, c35 blob, +c36 blob, c37 blob, c38 blob, c39 blob, c40 blob, +c41 blob, c42 blob, c43 blob, c44 blob, c45 blob, +c46 blob, c47 blob, c48 blob, c49 blob, c50 blob, +c51 blob, c52 blob, c53 blob, c54 blob, c55 blob, +c56 blob, c57 blob, c58 blob, c59 blob, c60 blob, +c61 blob, c62 blob, c63 blob, c64 blob +) ROW_FORMAT=dynamic; + +SET @a = repeat('a', 16 * 1024); +INSERT INTO t1 VALUES (@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a,@a, +@a,@a,@a,@a +); + +insert into t1 select * from t1; + +--let $blob_pages=`select count(*) from information_schema.INNODB_BUFFER_PAGE WHERE PAGE_TYPE='BLOB' group by PAGE_TYPE` + +# Dump on shutdown has been set - shutdown now + +--echo # Restart server +--let $shutdown_timeout= 10 +--let $allow_rpl_inited= 1 +--source include/restart_mysqld.inc + +SET GLOBAL innodb_buffer_pool_load_now=1; + +# Wait fit for the load to complete +let $wait_condition = + SELECT SUBSTR(variable_value, 1, 33) = 'Buffer pool(s) load completed at ' + FROM information_schema.global_status + WHERE LOWER(variable_name) = 'innodb_buffer_pool_load_status'; +-- source include/wait_condition.inc + + +--let $loaded_blob_pages=`select count(*) from information_schema.INNODB_BUFFER_PAGE WHERE PAGE_TYPE='BLOB' group by PAGE_TYPE` + +--echo # Case 1: Limit from innodb_buffer_pool_dump_pct + +eval SELECT $blob_pages as 'Previous pool pages', + ROUND($PCT / 100 * @@innodb_buffer_pool_size / @@innodb_page_size) as 'Limit', + $loaded_blob_pages as 'Pages saved'; + +--echo # Case 2: blog_pages is the minimum. + +--echo # load buffer pool with entire table. +--disable_result_log +select * from t1; +--enable_result_log + +--let $PCT=75 +eval SET GLOBAL innodb_buffer_pool_dump_pct=$PCT, global innodb_buffer_pool_dump_at_shutdown=1; + +--let $blob_pages=`select count(*) from information_schema.INNODB_BUFFER_PAGE WHERE PAGE_TYPE='BLOB' group by PAGE_TYPE` + +--echo # Restart server +--source include/restart_mysqld.inc + + +SET GLOBAL innodb_buffer_pool_load_now=1; + +# Wait for load +-- source include/wait_condition.inc + +--echo # now loaded + +--let $loaded_blob_pages=`select count(*) from information_schema.INNODB_BUFFER_PAGE WHERE PAGE_TYPE='BLOB' group by PAGE_TYPE` + +eval SELECT $blob_pages as 'Previous pool pages', + ROUND($PCT / 100 * @@innodb_buffer_pool_size / @@innodb_page_size) as 'Limit', + $loaded_blob_pages as 'Pages saved'; + +# Clean up +# +# +--remove_file $MYSQLTEST_VARDIR/mysqld.1/data/ib_buffer_pool +DROP TABLE t1; From 473fb9295db547136bedcc6aae4bae4fcfb5c4f0 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Thu, 8 Dec 2016 11:55:35 +1100 Subject: [PATCH 041/258] MDEV-11454: Improve test case innodb_buffer_pool_dump_pct MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based off feedback from Marko Mäkelä: * Don't set timeouts on restart. * Use innodb_fast_shutdown=0 Also: Set innodb_buffer_pool_instances=1 - adds predicability to tests - if a biased pool is used less pages could be saved. Signed-off-by: Daniel Black --- .../r/innodb_buffer_pool_dump_pct_function.result | 2 +- .../sys_vars/t/innodb_buffer_pool_dump_pct_function.opt | 1 + .../sys_vars/t/innodb_buffer_pool_dump_pct_function.test | 9 +++------ 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_pct_function.result b/mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_pct_function.result index 9d764b22419..6037d7a5343 100644 --- a/mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_pct_function.result +++ b/mysql-test/suite/sys_vars/r/innodb_buffer_pool_dump_pct_function.result @@ -1,4 +1,3 @@ -SET GLOBAL innodb_buffer_pool_dump_pct=25, global innodb_buffer_pool_dump_at_shutdown=1;; # populate with data CREATE TABLE t1 ( c01 blob, c02 blob, c03 blob, c04 blob, c05 blob, @@ -31,6 +30,7 @@ INSERT INTO t1 VALUES (@a,@a,@a,@a,@a, @a,@a,@a,@a ); insert into t1 select * from t1; +SET GLOBAL innodb_buffer_pool_dump_pct=25,GLOBAL innodb_fast_shutdown=0, GLOBAL innodb_buffer_pool_dump_at_shutdown=1; # Restart server SET GLOBAL innodb_buffer_pool_load_now=1; # Case 1: Limit from innodb_buffer_pool_dump_pct diff --git a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.opt b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.opt index 787f6ce532d..8d74d91426a 100644 --- a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.opt +++ b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.opt @@ -2,4 +2,5 @@ --loose-innodb_buffer_pool_load_at_startup=0 --loose-innodb_buffer_pool_dump_at_shutdown=0 --loose-innodb-buffer-pool-size=8M +--loose-innodb-buffer-pool-instances=1 --loose-innodb-page-size=16k diff --git a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.test b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.test index 213f45128ed..f682ad2394b 100644 --- a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.test +++ b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_dump_pct_function.test @@ -7,10 +7,6 @@ -- source include/have_innodb.inc ---let $PCT=25 - ---eval SET GLOBAL innodb_buffer_pool_dump_pct=$PCT, global innodb_buffer_pool_dump_at_shutdown=1; - --echo # populate with data CREATE TABLE t1 ( @@ -49,11 +45,12 @@ insert into t1 select * from t1; --let $blob_pages=`select count(*) from information_schema.INNODB_BUFFER_PAGE WHERE PAGE_TYPE='BLOB' group by PAGE_TYPE` +--let $PCT=25 +--eval SET GLOBAL innodb_buffer_pool_dump_pct=$PCT,GLOBAL innodb_fast_shutdown=0, GLOBAL innodb_buffer_pool_dump_at_shutdown=1 + # Dump on shutdown has been set - shutdown now --echo # Restart server ---let $shutdown_timeout= 10 ---let $allow_rpl_inited= 1 --source include/restart_mysqld.inc SET GLOBAL innodb_buffer_pool_load_now=1; From e156ea1b9517dd155f68f8d683704ecf5370346a Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Fri, 9 Dec 2016 12:15:41 -0500 Subject: [PATCH 042/258] Fix failing tests. --- .../suite/galera/r/galera_split_brain.result | 1 - .../r/galera_var_cluster_address.result | 36 ++++------ .../galera/r/galera_var_dirty_reads.result | 15 ++-- mysql-test/suite/galera/suite.pm | 1 + .../suite/galera/t/galera_split_brain.test | 5 +- .../galera/t/galera_var_cluster_address.test | 72 +++++++------------ .../galera/t/galera_var_dirty_reads.test | 12 +++- 7 files changed, 59 insertions(+), 83 deletions(-) diff --git a/mysql-test/suite/galera/r/galera_split_brain.result b/mysql-test/suite/galera/r/galera_split_brain.result index 615615040fe..6473f95735b 100644 --- a/mysql-test/suite/galera/r/galera_split_brain.result +++ b/mysql-test/suite/galera/r/galera_split_brain.result @@ -2,4 +2,3 @@ call mtr.add_suppression("WSREP: TO isolation failed for: "); Killing server ... CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction -SET GLOBAL wsrep_cluster_address = ''; diff --git a/mysql-test/suite/galera/r/galera_var_cluster_address.result b/mysql-test/suite/galera/r/galera_var_cluster_address.result index f8bd869f8fe..17b5a7bca37 100644 --- a/mysql-test/suite/galera/r/galera_var_cluster_address.result +++ b/mysql-test/suite/galera/r/galera_var_cluster_address.result @@ -1,6 +1,6 @@ SET GLOBAL wsrep_cluster_address = 'foo://'; SET SESSION wsrep_sync_wait=0; -SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS; +SELECT COUNT(*) > 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS; ERROR 08S01: WSREP has not yet prepared node for application use SHOW STATUS LIKE 'wsrep_ready'; Variable_name Value @@ -20,32 +20,20 @@ VARIABLE_VALUE = 1 SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; VARIABLE_VALUE = 'Primary' 1 -SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address; -SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; -VARIABLE_VALUE = 'Primary' -1 -SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; -VARIABLE_VALUE = 2 -1 -SET GLOBAL wsrep_cluster_address = 'gcomm://192.0.2.1'; -SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS; -ERROR 08S01: WSREP has not yet prepared node for application use -SHOW STATUS LIKE 'wsrep_ready'; -Variable_name Value -wsrep_ready OFF -SHOW STATUS LIKE 'wsrep_cluster_status'; -Variable_name Value -wsrep_cluster_status non-Primary -SHOW STATUS LIKE 'wsrep_local_state'; -Variable_name Value -wsrep_local_state 0 -SHOW STATUS LIKE 'wsrep_local_state_comment'; -Variable_name Value -wsrep_local_state_comment Initialized -SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address; SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; VARIABLE_VALUE = 'Primary' 1 SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 +CALL mtr.add_suppression("Backend not supported: foo"); +CALL mtr.add_suppression("Failed to initialize backend using 'foo"); +CALL mtr.add_suppression("Failed to open channel 'my_wsrep_cluster' at 'foo"); +CALL mtr.add_suppression("gcs connect failed: Socket type not supported"); +CALL mtr.add_suppression("wsrep::connect\\(\\) failed: 7"); +CALL mtr.add_suppression("gcs_caused\\(\\) returned -103 \\(Software caused connection abort\\)"); +CALL mtr.add_suppression("failed to open gcomm backend connection: 110: failed to reach primary view: 110"); +CALL mtr.add_suppression("Failed to open backend connection: -110 \\(Connection timed out\\)"); +CALL mtr.add_suppression("gcs connect failed: Connection timed out"); +CALL mtr.add_suppression("WSREP: wsrep::connect\\(foo://\\) failed: 7"); +# End of test diff --git a/mysql-test/suite/galera/r/galera_var_dirty_reads.result b/mysql-test/suite/galera/r/galera_var_dirty_reads.result index 6a2aa1eb5e7..c0ffb2d4860 100644 --- a/mysql-test/suite/galera/r/galera_var_dirty_reads.result +++ b/mysql-test/suite/galera/r/galera_var_dirty_reads.result @@ -18,19 +18,22 @@ SET @@session.wsrep_dirty_reads=ON; SELECT * FROM t1; i 1 +# +# MDEV-11016: wsrep_node_is_ready() check is too strict +# SET @@session.wsrep_dirty_reads=OFF; SELECT 2; 2 2 -SELECT @@max_allowed_packet; -@@max_allowed_packet -4194304 SELECT 2+2 from DUAL; 2+2 4 -SELECT sysdate() from DUAL; -sysdate() -2016-10-28 23:13:06 +SET @VAR=1; +SELECT @VAR; +@VAR +1 +SELECT @@max_allowed_packet; +SELECT SYSDATE() from DUAL; SELECT * FROM t1; i 1 diff --git a/mysql-test/suite/galera/suite.pm b/mysql-test/suite/galera/suite.pm index d6cd4273014..5b69ff26615 100644 --- a/mysql-test/suite/galera/suite.pm +++ b/mysql-test/suite/galera/suite.pm @@ -68,6 +68,7 @@ push @::global_suppressions, qr|WSREP: gcs_caused\(\) returned .*|, qr|WSREP: Protocol violation. JOIN message sender .* is not in state transfer \(SYNCED\). Message ignored.|, qr(WSREP: Action message in non-primary configuration from member [0-9]*), + qr(WSREP: discarding established .*), ); diff --git a/mysql-test/suite/galera/t/galera_split_brain.test b/mysql-test/suite/galera/t/galera_split_brain.test index 22f6370241c..a85a2ad9b8d 100644 --- a/mysql-test/suite/galera/t/galera_split_brain.test +++ b/mysql-test/suite/galera/t/galera_split_brain.test @@ -25,11 +25,8 @@ CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; # Reset the master and restart the slave so that post-test checks can run -SET GLOBAL wsrep_cluster_address = ''; ---disable_query_log ---eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_orig'; ---enable_query_log +--connection node_2 --source include/start_mysqld.inc --sleep 5 --source include/wait_until_connected_again.inc diff --git a/mysql-test/suite/galera/t/galera_var_cluster_address.test b/mysql-test/suite/galera/t/galera_var_cluster_address.test index 17e77a9b5af..740c38765f6 100644 --- a/mysql-test/suite/galera/t/galera_var_cluster_address.test +++ b/mysql-test/suite/galera/t/galera_var_cluster_address.test @@ -5,12 +5,17 @@ --source include/galera_cluster.inc --source include/have_innodb.inc +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--source include/auto_increment_offset_save.inc + # # Set to invalid value # ---connection node_1 ---let $wsrep_cluster_address_node1 = `SELECT @@wsrep_cluster_address` +--connection node_2 +--let $wsrep_cluster_address_node2 = `SELECT @@wsrep_cluster_address` SET GLOBAL wsrep_cluster_address = 'foo://'; # With wsrep_sync_wait, this returns an error @@ -20,7 +25,7 @@ SET GLOBAL wsrep_cluster_address = 'foo://'; SET SESSION wsrep_sync_wait=0; --error ER_UNKNOWN_COM_ERROR -SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS; +SELECT COUNT(*) > 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS; # Must return 'OFF' SHOW STATUS LIKE 'wsrep_ready'; @@ -32,9 +37,9 @@ SHOW STATUS LIKE 'wsrep_cluster_status'; SHOW STATUS LIKE 'wsrep_local_state'; SHOW STATUS LIKE 'wsrep_local_state_comment'; ---connection node_2 +--connection node_1 --sleep 1 -# Node #2 thinks that it is now part of a single-node primary cluster +# Node #1 thinks that it is now part of a single-node primary cluster SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; @@ -42,13 +47,10 @@ SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VA # Reset everything as it was # ---connection node_1 ---disable_query_log ---eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_node1'; ---enable_query_log - --connection node_2 -SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address; +--disable_query_log +--eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_node2'; +--enable_query_log --source include/wait_until_connected_again.inc @@ -56,40 +58,20 @@ SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address; SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; -# -# Set to invalid host -# - ---connection node_1 -SET GLOBAL wsrep_cluster_address = 'gcomm://192.0.2.1'; - ---error ER_UNKNOWN_COM_ERROR -SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS; - -# Must return 'OFF' -SHOW STATUS LIKE 'wsrep_ready'; - -# Must return 'Non-primary' -SHOW STATUS LIKE 'wsrep_cluster_status'; - -# Must return 0 = 'Initialized' -SHOW STATUS LIKE 'wsrep_local_state'; -SHOW STATUS LIKE 'wsrep_local_state_comment'; - -# -# Reset everything as it was -# - ---connection node_1 ---disable_query_log ---eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_node1'; ---enable_query_log - --connection node_2 -SET GLOBAL wsrep_cluster_address = @@wsrep_cluster_address; ---sleep 1 +CALL mtr.add_suppression("Backend not supported: foo"); +CALL mtr.add_suppression("Failed to initialize backend using 'foo"); +CALL mtr.add_suppression("Failed to open channel 'my_wsrep_cluster' at 'foo"); +CALL mtr.add_suppression("gcs connect failed: Socket type not supported"); +CALL mtr.add_suppression("wsrep::connect\\(\\) failed: 7"); +CALL mtr.add_suppression("gcs_caused\\(\\) returned -103 \\(Software caused connection abort\\)"); +CALL mtr.add_suppression("failed to open gcomm backend connection: 110: failed to reach primary view: 110"); +CALL mtr.add_suppression("Failed to open backend connection: -110 \\(Connection timed out\\)"); +CALL mtr.add_suppression("gcs connect failed: Connection timed out"); +CALL mtr.add_suppression("WSREP: wsrep::connect\\(foo://\\) failed: 7"); ---connection node_1 -SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; -SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; +# Restore original auto_increment_offset values. +--source include/auto_increment_offset_restore.inc +--source include/galera_end.inc +--echo # End of test diff --git a/mysql-test/suite/galera/t/galera_var_dirty_reads.test b/mysql-test/suite/galera/t/galera_var_dirty_reads.test index 0c81779ca65..7a76a71a265 100644 --- a/mysql-test/suite/galera/t/galera_var_dirty_reads.test +++ b/mysql-test/suite/galera/t/galera_var_dirty_reads.test @@ -36,12 +36,18 @@ SET @@session.wsrep_dirty_reads=ON; SELECT * FROM t1; -#Select query which does not access table should be allowed MDEV-11016 +--echo # +--echo # MDEV-11016: wsrep_node_is_ready() check is too strict +--echo # SET @@session.wsrep_dirty_reads=OFF; SELECT 2; -SELECT @@max_allowed_packet; SELECT 2+2 from DUAL; -SELECT sysdate() from DUAL; +SET @VAR=1; +SELECT @VAR; +--disable_result_log +SELECT @@max_allowed_packet; +SELECT SYSDATE() from DUAL; +--enable_result_log --disable_query_log --eval SET @@global.wsrep_cluster_address = '$wsrep_cluster_address_saved' From 14e1f32894cdbe63a614738cfd93e9d0818dedee Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Sun, 11 Dec 2016 00:50:00 +0200 Subject: [PATCH 043/258] Follow-up for 02d153c7b9 (str2decimal: don't return a negative zero) --- mysql-test/suite/engines/iuds/r/insert_decimal.result | 1 - 1 file changed, 1 deletion(-) diff --git a/mysql-test/suite/engines/iuds/r/insert_decimal.result b/mysql-test/suite/engines/iuds/r/insert_decimal.result index 50fde80d81d..eab8592c4ee 100644 --- a/mysql-test/suite/engines/iuds/r/insert_decimal.result +++ b/mysql-test/suite/engines/iuds/r/insert_decimal.result @@ -48,7 +48,6 @@ Warning 1264 Out of range value for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 insert into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); Warnings: -Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 6 insert into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); Warnings: From d44723e62153d9fb4165d038e9448c20a3ad890b Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Mon, 12 Dec 2016 10:57:19 +0100 Subject: [PATCH 044/258] - MDEV-11295: developing handling files contained in ZIP file. A first experimental and limited implementation. modified: storage/connect/CMakeLists.txt modified: storage/connect/filamap.cpp new file: storage/connect/filamzip.cpp new file: storage/connect/filamzip.h modified: storage/connect/ha_connect.cc new file: storage/connect/ioapi.c new file: storage/connect/ioapi.h modified: storage/connect/mycat.cc modified: storage/connect/plgdbsem.h modified: storage/connect/plgdbutl.cpp modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabfmt.h modified: storage/connect/tabjson.cpp modified: storage/connect/tabjson.h new file: storage/connect/tabzip.cpp new file: storage/connect/tabzip.h new file: storage/connect/unzip.c new file: storage/connect/unzip.h new file: storage/connect/zip.c --- storage/connect/CMakeLists.txt | 12 + storage/connect/filamap.cpp | 6 +- storage/connect/filamzip.cpp | 501 ++++++++ storage/connect/filamzip.h | 83 ++ storage/connect/ha_connect.cc | 27 +- storage/connect/ioapi.c | 247 ++++ storage/connect/ioapi.h | 208 ++++ storage/connect/mycat.cc | 16 +- storage/connect/plgdbsem.h | 15 +- storage/connect/plgdbutl.cpp | 14 +- storage/connect/tabdos.cpp | 36 +- storage/connect/tabdos.h | 6 +- storage/connect/tabfmt.cpp | 168 ++- storage/connect/tabfmt.h | 29 +- storage/connect/tabjson.cpp | 72 +- storage/connect/tabjson.h | 3 +- storage/connect/tabzip.cpp | 230 ++++ storage/connect/tabzip.h | 100 ++ storage/connect/unzip.c | 2125 ++++++++++++++++++++++++++++++++ storage/connect/unzip.h | 437 +++++++ storage/connect/zip.c | 2007 ++++++++++++++++++++++++++++++ storage/connect/zip.h | 362 ++++++ 22 files changed, 6579 insertions(+), 125 deletions(-) create mode 100644 storage/connect/filamzip.cpp create mode 100644 storage/connect/filamzip.h create mode 100644 storage/connect/ioapi.c create mode 100644 storage/connect/ioapi.h create mode 100644 storage/connect/tabzip.cpp create mode 100644 storage/connect/tabzip.h create mode 100644 storage/connect/unzip.c create mode 100644 storage/connect/unzip.h create mode 100644 storage/connect/zip.c create mode 100644 storage/connect/zip.h diff --git a/storage/connect/CMakeLists.txt b/storage/connect/CMakeLists.txt index f1567730b26..ce6de424421 100644 --- a/storage/connect/CMakeLists.txt +++ b/storage/connect/CMakeLists.txt @@ -279,6 +279,18 @@ IF(CONNECT_WITH_JDBC) ENDIF() ENDIF(CONNECT_WITH_JDBC) +# +# ZIP +# + +OPTION(CONNECT_WITH_ZIP "Compile CONNECT storage engine with ZIP support" ON) + +IF(CONNECT_WITH_ZIP) + SET(CONNECT_SOURCES ${CONNECT_SOURCES} filamzip.cpp tabzip.cpp unzip.c ioapi.c zip.c + filamzip.h tabzip.h ioapi.h unzip.h zip.h) + add_definitions(-DZIP_SUPPORT -DNOCRYPT) +ENDIF(CONNECT_WITH_ZIP) + # # XMAP diff --git a/storage/connect/filamap.cpp b/storage/connect/filamap.cpp index 5cf9a4d945c..3c5b3ae7592 100644 --- a/storage/connect/filamap.cpp +++ b/storage/connect/filamap.cpp @@ -87,7 +87,7 @@ int MAPFAM::GetFileLength(PGLOBAL g) { int len; - len = (To_Fb) ? To_Fb->Length : TXTFAM::GetFileLength(g); + len = (To_Fb && To_Fb->Count) ? To_Fb->Length : TXTFAM::GetFileLength(g); if (trace) htrc("Mapped file length=%d\n", len); @@ -413,7 +413,7 @@ int MAPFAM::DeleteRecords(PGLOBAL g, int irc) if (Tpos == Spos) { /*******************************************************************/ - /* First line to delete. Move of eventual preceeding lines is */ + /* First line to delete. Move of eventual preceding lines is */ /* not required here, just setting of future Spos and Tpos. */ /*******************************************************************/ Tpos = Spos = Fpos; @@ -498,7 +498,7 @@ int MAPFAM::DeleteRecords(PGLOBAL g, int irc) void MAPFAM::CloseTableFile(PGLOBAL g, bool) { PlugCloseFile(g, To_Fb); - To_Fb = NULL; // To get correct file size in Cardinality +//To_Fb = NULL; // To get correct file size in Cardinality if (trace) htrc("MAP Close: closing %s count=%d\n", diff --git a/storage/connect/filamzip.cpp b/storage/connect/filamzip.cpp new file mode 100644 index 00000000000..ea8b827974b --- /dev/null +++ b/storage/connect/filamzip.cpp @@ -0,0 +1,501 @@ +/*********** File AM Zip C++ Program Source Code File (.CPP) ***********/ +/* PROGRAM NAME: FILAMZIP */ +/* ------------- */ +/* Version 1.0 */ +/* */ +/* COPYRIGHT: */ +/* ---------- */ +/* (C) Copyright to the author Olivier BERTRAND 2016 */ +/* */ +/* WHAT THIS PROGRAM DOES: */ +/* ----------------------- */ +/* This program are the ZIP file access method classes. */ +/* */ +/***********************************************************************/ + +/***********************************************************************/ +/* Include relevant sections of the System header files. */ +/***********************************************************************/ +#include "my_global.h" +#if !defined(__WIN__) +#if defined(UNIX) +#include +#include +#else // !UNIX +#include +#endif // !UNIX +#include +#endif // !__WIN__ + +/***********************************************************************/ +/* Include application header files: */ +/* global.h is header containing all global declarations. */ +/* plgdbsem.h is header containing the DB application declarations. */ +/***********************************************************************/ +#include "global.h" +#include "plgdbsem.h" +#include "osutil.h" +#include "filamtxt.h" +#include "tabfmt.h" +//#include "tabzip.h" +#include "filamzip.h" + +/* -------------------------- class ZIPFAM --------------------------- */ + +/***********************************************************************/ +/* Constructors. */ +/***********************************************************************/ +ZIPFAM::ZIPFAM(PDOSDEF tdp) : MAPFAM(tdp) +{ + zipfile = NULL; + zfn = tdp->Zipfn; + target = tdp->Fn; +//*fn = 0; + entryopen = false; + multiple = tdp->Multiple; + + // Init the case mapping table. +#if defined(__WIN__) + for (int i = 0; i < 256; ++i) mapCaseTable[i] = toupper(i); +#else + for (int i = 0; i < 256; ++i) mapCaseTable[i] = i; +#endif +} // end of ZIPFAM standard constructor + +ZIPFAM::ZIPFAM(PZIPFAM txfp) : MAPFAM(txfp) +{ + zipfile = txfp->zipfile; + zfn = txfp->zfn; + target = txfp->target; +//strcpy(fn, txfp->fn); + finfo = txfp->finfo; + entryopen = txfp->entryopen; + multiple = txfp->multiple; + for (int i = 0; i < 256; ++i) mapCaseTable[i] = txfp->mapCaseTable[i]; +} // end of ZIPFAM copy constructor + +/***********************************************************************/ +/* This code is the copyright property of Alessandro Felice Cantatore. */ +/* http://xoomer.virgilio.it/acantato/dev/wildcard/wildmatch.html */ +/***********************************************************************/ +bool ZIPFAM::WildMatch(PSZ pat, PSZ str) { + PSZ s, p; + bool star = FALSE; + + loopStart: + for (s = str, p = pat; *s; ++s, ++p) { + switch (*p) { + case '?': + if (*s == '.') goto starCheck; + break; + case '*': + star = TRUE; + str = s, pat = p; + if (!*++pat) return TRUE; + goto loopStart; + default: + if (mapCaseTable[*s] != mapCaseTable[*p]) + goto starCheck; + break; + } /* endswitch */ + } /* endfor */ + if (*p == '*') ++p; + return (!*p); + + starCheck: + if (!star) return FALSE; + str++; + goto loopStart; +} // end of WildMatch + +/***********************************************************************/ +/* ZIP GetFileLength: returns file size in number of bytes. */ +/***********************************************************************/ +int ZIPFAM::GetFileLength(PGLOBAL g) +{ + int len = (entryopen) ? Top - Memory : 100; // not 0 to avoid ASSERT + + if (trace) + htrc("Zipped file length=%d\n", len); + + return len; +} // end of GetFileLength + +/***********************************************************************/ +/* open a zip file. */ +/* param: filename path and the filename of the zip file to open. */ +/* return: true if open, false otherwise. */ +/***********************************************************************/ +bool ZIPFAM::open(PGLOBAL g, const char *filename) +{ + if (!zipfile && !(zipfile = unzOpen64(filename))) + sprintf(g->Message, "Zipfile open error"); + + return (zipfile == NULL); +} // end of open + +/***********************************************************************/ +/* Close the zip file. */ +/***********************************************************************/ +void ZIPFAM::close() +{ + if (zipfile) { + closeEntry(); + unzClose(zipfile); + zipfile = NULL; + } // endif zipfile + +} // end of close + +/***********************************************************************/ +/* Find next entry matching target pattern. */ +/***********************************************************************/ +int ZIPFAM::findEntry(PGLOBAL g, bool next) +{ + int rc; + char fn[FILENAME_MAX]; // The current entry file name + + do { + if (next) { + rc = unzGoToNextFile(zipfile); + + if (rc == UNZ_END_OF_LIST_OF_FILE) + return RC_EF; + else if (rc != UNZ_OK) { + sprintf(g->Message, "unzGoToNextFile rc = ", rc); + return RC_FX; + } // endif rc + + } // endif next + + if (target && *target) { + rc = unzGetCurrentFileInfo(zipfile, NULL, fn, sizeof(fn), + NULL, 0, NULL, 0); + if (rc == UNZ_OK) { + if (WildMatch(target, fn)) + return RC_OK; + + } else { + sprintf(g->Message, "GetCurrentFileInfo rc = %d", rc); + return RC_FX; + } // endif rc + + } else + return RC_OK; + + next = true; + } while (true); + + strcpy(g->Message, "FindNext logical error"); + return RC_FX; +} // end of FindNext + +/***********************************************************************/ +/* OpenTableFile: Open a DOS/UNIX table file from a ZIP file. */ +/***********************************************************************/ +bool ZIPFAM::OpenTableFile(PGLOBAL g) +{ + char filename[_MAX_PATH]; + MODE mode = Tdbp->GetMode(); + PFBLOCK fp; + PDBUSER dbuserp = (PDBUSER)g->Activityp->Aptr; + + /*********************************************************************/ + /* The file will be decompressed into virtual memory. */ + /*********************************************************************/ + if (mode == MODE_READ) { + // We used the file name relative to recorded datapath + PlugSetPath(filename, zfn, Tdbp->GetPath()); + + bool b = open(g, filename); + + if (!b) { + int rc; + + if (target && *target) { + if (!multiple) { + rc = unzLocateFile(zipfile, target, 0); + + if (rc == UNZ_END_OF_LIST_OF_FILE) { + sprintf(g->Message, "Target file %s not in %s", target, filename); + return true; + } else if (rc != UNZ_OK) { + sprintf(g->Message, "unzLocateFile rc=%d", rc); + return true; + } // endif's rc + + } else { + if ((rc = findEntry(g, false)) == RC_FX) + return true; + else if (rc == RC_NF) { + sprintf(g->Message, "No match of %s in %s", target, filename); + return true; + } // endif rc + + } // endif multiple + + } // endif target + + if (openEntry(g)) + return true; + + if (Top > Memory) { + /*******************************************************************/ + /* Link a Fblock. This make possible to automatically close it */ + /* in case of error g->jump. */ + /*******************************************************************/ + fp = (PFBLOCK)PlugSubAlloc(g, NULL, sizeof(FBLOCK)); + fp->Type = TYPE_FB_ZIP; + fp->Fname = PlugDup(g, filename); + fp->Next = dbuserp->Openlist; + dbuserp->Openlist = fp; + fp->Count = 1; + fp->Length = Top - Memory; + fp->Memory = Memory; + fp->Mode = mode; + fp->File = this; + fp->Handle = NULL; + } // endif fp + + To_Fb = fp; // Useful when closing + } // endif b + + } else { + strcpy(g->Message, "Only READ mode supported for ZIP files"); + return true; + } // endif mode + + return false; + } // end of OpenTableFile + +/***********************************************************************/ +/* Open target in zip file. */ +/***********************************************************************/ +bool ZIPFAM::openEntry(PGLOBAL g) +{ + int rc; + uint size; + + rc = unzGetCurrentFileInfo(zipfile, &finfo, 0, 0, 0, 0, 0, 0); + + if (rc != UNZ_OK) { + sprintf(g->Message, "unzGetCurrentFileInfo64 rc=%d", rc); + return true; + } else if ((rc = unzOpenCurrentFile(zipfile)) != UNZ_OK) { + sprintf(g->Message, "unzOpenCurrentFile rc=%d", rc); + return true; + } // endif rc + + size = finfo.uncompressed_size; + Memory = new char[size]; + + if ((rc = unzReadCurrentFile(zipfile, Memory, size)) < 0) { + sprintf(g->Message, "unzReadCurrentFile rc = ", rc); + unzCloseCurrentFile(zipfile); + free(Memory); + entryopen = false; + } else { + // The pseudo "buffer" is here the entire real buffer + Fpos = Mempos = Memory; + Top = Memory + size; + + if (trace) + htrc("Memory=%p size=%ud Top=%p\n", Memory, size, Top); + + entryopen = true; + } // endif rc + + return !entryopen; +} // end of openEntry + +/***********************************************************************/ +/* Close the zip file. */ +/***********************************************************************/ +void ZIPFAM::closeEntry() +{ + if (entryopen) { + unzCloseCurrentFile(zipfile); + entryopen = false; + } // endif entryopen + + if (Memory) { + free(Memory); + Memory = NULL; + } // endif Memory + +} // end of closeEntry + +/***********************************************************************/ +/* ReadBuffer: Read one line for a ZIP file. */ +/***********************************************************************/ +int ZIPFAM::ReadBuffer(PGLOBAL g) +{ + int rc, len; + + // Are we at the end of the memory + if (Mempos >= Top) { + if (multiple) { + closeEntry(); + + if ((rc = findEntry(g, true)) != RC_OK) + return rc; + + if (openEntry(g)) + return RC_FX; + + } else + return RC_EF; + + } // endif Mempos + +#if 0 + if (!Placed) { + /*******************************************************************/ + /* Record file position in case of UPDATE or DELETE. */ + /*******************************************************************/ + int rc; + + next: + Fpos = Mempos; + CurBlk = (int)Rows++; + + /*******************************************************************/ + /* Check whether optimization on ROWID */ + /* can be done, as well as for join as for local filtering. */ + /*******************************************************************/ + switch (Tdbp->TestBlock(g)) { + case RC_EF: + return RC_EF; + case RC_NF: + // Skip this record + if ((rc = SkipRecord(g, false)) != RC_OK) + return rc; + + goto next; + } // endswitch rc + + } else + Placed = false; +#else + // Perhaps unuseful + Fpos = Mempos; + CurBlk = (int)Rows++; + Placed = false; +#endif + + // Immediately calculate next position (Used by DeleteDB) + while (*Mempos++ != '\n'); // What about Unix ??? + + // Set caller line buffer + len = (Mempos - Fpos) - 1; + + // Don't rely on ENDING setting + if (len > 0 && *(Mempos - 2) == '\r') + len--; // Line ends by CRLF + + memcpy(Tdbp->GetLine(), Fpos, len); + Tdbp->GetLine()[len] = '\0'; + return RC_OK; +} // end of ReadBuffer + +#if 0 +/***********************************************************************/ +/* Table file close routine for MAP access method. */ +/***********************************************************************/ +void ZIPFAM::CloseTableFile(PGLOBAL g, bool) +{ + close(); +} // end of CloseTableFile +#endif // 0 + +/* -------------------------- class ZPXFAM --------------------------- */ + +/***********************************************************************/ +/* Constructors. */ +/***********************************************************************/ +ZPXFAM::ZPXFAM(PDOSDEF tdp) : ZIPFAM(tdp) +{ + Lrecl = tdp->GetLrecl(); +} // end of ZPXFAM standard constructor + +ZPXFAM::ZPXFAM(PZPXFAM txfp) : ZIPFAM(txfp) +{ + Lrecl = txfp->Lrecl; +} // end of ZPXFAM copy constructor + +/***********************************************************************/ +/* ReadBuffer: Read one line for a fixed ZIP file. */ +/***********************************************************************/ +int ZPXFAM::ReadBuffer(PGLOBAL g) +{ + int rc, len; + + // Are we at the end of the memory + if (Mempos >= Top) { + if (multiple) { + closeEntry(); + + if ((rc = findEntry(g, true)) != RC_OK) + return rc; + + if (openEntry(g)) + return RC_FX; + + } else + return RC_EF; + + } // endif Mempos + +#if 0 + if (!Placed) { + /*******************************************************************/ + /* Record file position in case of UPDATE or DELETE. */ + /*******************************************************************/ + int rc; + + next: + Fpos = Mempos; + CurBlk = (int)Rows++; + + /*******************************************************************/ + /* Check whether optimization on ROWID */ + /* can be done, as well as for join as for local filtering. */ + /*******************************************************************/ + switch (Tdbp->TestBlock(g)) { + case RC_EF: + return RC_EF; + case RC_NF: + // Skip this record + if ((rc = SkipRecord(g, false)) != RC_OK) + return rc; + + goto next; + } // endswitch rc + + } else + Placed = false; +#else + // Perhaps unuseful + Fpos = Mempos; + CurBlk = (int)Rows++; + Placed = false; +#endif + + // Immediately calculate next position (Used by DeleteDB) + Mempos += Lrecl; + + // Set caller line buffer + len = Lrecl; + + // Don't rely on ENDING setting + if (len > 0 && *(Mempos - 1) == '\n') + len--; // Line ends by LF + + if (len > 0 && *(Mempos - 2) == '\r') + len--; // Line ends by CRLF + + memcpy(Tdbp->GetLine(), Fpos, len); + Tdbp->GetLine()[len] = '\0'; + return RC_OK; +} // end of ReadBuffer + diff --git a/storage/connect/filamzip.h b/storage/connect/filamzip.h new file mode 100644 index 00000000000..85c1f907d20 --- /dev/null +++ b/storage/connect/filamzip.h @@ -0,0 +1,83 @@ +/************** filamzip H Declares Source Code File (.H) **************/ +/* Name: filamzip.h Version 1.0 */ +/* */ +/* (C) Copyright to the author Olivier BERTRAND 2016 */ +/* */ +/* This file contains the ZIP file access method classes declares. */ +/***********************************************************************/ +#ifndef __FILAMZIP_H +#define __FILAMZIP_H + +#include "block.h" +#include "filamap.h" +#include "unzip.h" + +#define DLLEXPORT extern "C" + +typedef class ZIPFAM *PZIPFAM; +typedef class ZPXFAM *PZPXFAM; + +/***********************************************************************/ +/* This is the ZIP file access method. */ +/***********************************************************************/ +class DllExport ZIPFAM : public MAPFAM { +public: + // Constructor + ZIPFAM(PDOSDEF tdp); + ZIPFAM(PZIPFAM txfp); + + // Implementation + virtual AMT GetAmType(void) {return TYPE_AM_ZIP;} + virtual PTXF Duplicate(PGLOBAL g) {return (PTXF) new(g) ZIPFAM(this);} + + // Methods + virtual int GetFileLength(PGLOBAL g); + virtual int Cardinality(PGLOBAL g) {return (g) ? 10 : 1;} +//virtual int MaxBlkSize(PGLOBAL g, int s) {return s;} + virtual bool OpenTableFile(PGLOBAL g); + virtual bool DeferReading(void) {return false;} + virtual int ReadBuffer(PGLOBAL g); +//virtual int WriteBuffer(PGLOBAL g); +//virtual int DeleteRecords(PGLOBAL g, int irc); +//virtual void CloseTableFile(PGLOBAL g, bool abort); + void close(void); + +protected: + bool open(PGLOBAL g, const char *filename); + bool openEntry(PGLOBAL g); + void closeEntry(void); + bool WildMatch(PSZ pat, PSZ str); + int findEntry(PGLOBAL g, bool next); + + // Members + unzFile zipfile; // The ZIP container file + PSZ zfn; // The ZIP file name + PSZ target; // The target file name + unz_file_info finfo; // The current file info +//char fn[FILENAME_MAX]; // The current file name + bool entryopen; // True when open current entry + int multiple; // Multiple targets + char mapCaseTable[256]; +}; // end of ZIPFAM + +/***********************************************************************/ +/* This is the fixed ZIP file access method. */ +/***********************************************************************/ +class DllExport ZPXFAM : public ZIPFAM { +public: + // Constructor + ZPXFAM(PDOSDEF tdp); + ZPXFAM(PZPXFAM txfp); + + // Implementation + virtual PTXF Duplicate(PGLOBAL g) {return (PTXF) new(g) ZPXFAM(this);} + + // Methods + virtual int ReadBuffer(PGLOBAL g); + +protected: + // Members + int Lrecl; +}; // end of ZPXFAM + +#endif // __FILAMZIP_H diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index 2222e51b083..b690dff24f4 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -171,9 +171,9 @@ #define JSONMAX 10 // JSON Default max grp size extern "C" { - char version[]= "Version 1.04.0008 October 20, 2016"; + char version[]= "Version 1.04.0009 December 09, 2016"; #if defined(__WIN__) - char compver[]= "Version 1.04.0008 " __DATE__ " " __TIME__; + char compver[]= "Version 1.04.0009 " __DATE__ " " __TIME__; char slash= '\\'; #else // !__WIN__ char slash= '/'; @@ -4165,7 +4165,8 @@ bool ha_connect::check_privileges(THD *thd, PTOS options, char *dbn, bool quick) case TAB_DIR: case TAB_MAC: case TAB_WMI: - case TAB_OEM: + case TAB_ZIP: + case TAB_OEM: #ifdef NO_EMBEDDED_ACCESS_CHECKS return false; #endif @@ -5173,13 +5174,13 @@ static int connect_assisted_discovery(handlerton *, THD* thd, char v=0, spc= ',', qch= 0; const char *fncn= "?"; const char *user, *fn, *db, *host, *pwd, *sep, *tbl, *src; - const char *col, *ocl, *rnk, *pic, *fcl, *skc; + const char *col, *ocl, *rnk, *pic, *fcl, *skc, *zfn; char *tab, *dsn, *shm, *dpath; #if defined(__WIN__) char *nsp= NULL, *cls= NULL; #endif // __WIN__ - int port= 0, hdr= 0, mxr= 0, mxe= 0, rc= 0; - int cop __attribute__((unused))= 0, lrecl= 0; +//int hdr, mxe; + int port = 0, mxr = 0, rc = 0, mul = 0, lrecl = 0; #if defined(ODBC_SUPPORT) POPARM sop= NULL; char *ucnc= NULL; @@ -5211,7 +5212,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, if (!g) return HA_ERR_INTERNAL_ERROR; - user= host= pwd= tbl= src= col= ocl= pic= fcl= skc= rnk= dsn= NULL; + user= host= pwd= tbl= src= col= ocl= pic= fcl= skc= rnk= zfn= dsn= NULL; // Get the useful create options ttp= GetTypeID(topt->type); @@ -5224,7 +5225,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, sep= topt->separator; spc= (!sep) ? ',' : *sep; qch= topt->qchar ? *topt->qchar : (signed)topt->quoted >= 0 ? '"' : 0; - hdr= (int)topt->header; + mul = (int)topt->multiple; tbl= topt->tablist; col= topt->colist; @@ -5260,11 +5261,13 @@ static int connect_assisted_discovery(handlerton *, THD* thd, // prop = GetListOption(g, "Properties", topt->oplist, NULL); tabtyp = GetListOption(g, "Tabtype", topt->oplist, NULL); #endif // JDBC_SUPPORT - mxe= atoi(GetListOption(g,"maxerr", topt->oplist, "0")); #if defined(PROMPT_OK) cop= atoi(GetListOption(g, "checkdsn", topt->oplist, "0")); #endif // PROMPT_OK - } else { +#if defined(ZIP_SUPPORT) + zfn = GetListOption(g, "Zipfile", topt->oplist, NULL); +#endif // ZIP_SUPPORT + } else { host= "localhost"; user= (ttp == TAB_ODBC ? NULL : "root"); } // endif option_list @@ -5471,7 +5474,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, case TAB_XML: #endif // LIBXML2_SUPPORT || DOMDOC_SUPPORT case TAB_JSON: - if (!fn) + if (!fn && !zfn && !mul) sprintf(g->Message, "Missing %s file name", topt->type); else ok= true; @@ -5585,7 +5588,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd, NULL, port, fnc == FNC_COL); break; case TAB_CSV: - qrp= CSVColumns(g, dpath, fn, spc, qch, hdr, mxe, fnc == FNC_COL); + qrp = CSVColumns(g, dpath, topt, fnc == FNC_COL); break; #if defined(__WIN__) case TAB_WMI: diff --git a/storage/connect/ioapi.c b/storage/connect/ioapi.c new file mode 100644 index 00000000000..7f5c191b2af --- /dev/null +++ b/storage/connect/ioapi.c @@ -0,0 +1,247 @@ +/* ioapi.h -- IO base function header for compress/uncompress .zip + part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) + + Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + + Modifications for Zip64 support + Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + + For more info read MiniZip_info.txt + +*/ + +#if defined(_WIN32) && (!(defined(_CRT_SECURE_NO_WARNINGS))) + #define _CRT_SECURE_NO_WARNINGS +#endif + +#if defined(__APPLE__) || defined(IOAPI_NO_64) +// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions +#define FOPEN_FUNC(filename, mode) fopen(filename, mode) +#define FTELLO_FUNC(stream) ftello(stream) +#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin) +#else +#define FOPEN_FUNC(filename, mode) fopen64(filename, mode) +#define FTELLO_FUNC(stream) ftello64(stream) +#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin) +#endif + + +#include "ioapi.h" + +voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode) +{ + if (pfilefunc->zfile_func64.zopen64_file != NULL) + return (*(pfilefunc->zfile_func64.zopen64_file)) (pfilefunc->zfile_func64.opaque,filename,mode); + else + { + return (*(pfilefunc->zopen32_file))(pfilefunc->zfile_func64.opaque,(const char*)filename,mode); + } +} + +long call_zseek64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin) +{ + if (pfilefunc->zfile_func64.zseek64_file != NULL) + return (*(pfilefunc->zfile_func64.zseek64_file)) (pfilefunc->zfile_func64.opaque,filestream,offset,origin); + else + { + uLong offsetTruncated = (uLong)offset; + if (offsetTruncated != offset) + return -1; + else + return (*(pfilefunc->zseek32_file))(pfilefunc->zfile_func64.opaque,filestream,offsetTruncated,origin); + } +} + +ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream) +{ + if (pfilefunc->zfile_func64.zseek64_file != NULL) + return (*(pfilefunc->zfile_func64.ztell64_file)) (pfilefunc->zfile_func64.opaque,filestream); + else + { + uLong tell_uLong = (*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream); + if ((tell_uLong) == MAXU32) + return (ZPOS64_T)-1; + else + return tell_uLong; + } +} + +void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32) +{ + p_filefunc64_32->zfile_func64.zopen64_file = NULL; + p_filefunc64_32->zopen32_file = p_filefunc32->zopen_file; + p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file; + p_filefunc64_32->zfile_func64.zread_file = p_filefunc32->zread_file; + p_filefunc64_32->zfile_func64.zwrite_file = p_filefunc32->zwrite_file; + p_filefunc64_32->zfile_func64.ztell64_file = NULL; + p_filefunc64_32->zfile_func64.zseek64_file = NULL; + p_filefunc64_32->zfile_func64.zclose_file = p_filefunc32->zclose_file; + p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file; + p_filefunc64_32->zfile_func64.opaque = p_filefunc32->opaque; + p_filefunc64_32->zseek32_file = p_filefunc32->zseek_file; + p_filefunc64_32->ztell32_file = p_filefunc32->ztell_file; +} + + + +static voidpf ZCALLBACK fopen_file_func OF((voidpf opaque, const char* filename, int mode)); +static uLong ZCALLBACK fread_file_func OF((voidpf opaque, voidpf stream, void* buf, uLong size)); +static uLong ZCALLBACK fwrite_file_func OF((voidpf opaque, voidpf stream, const void* buf,uLong size)); +static ZPOS64_T ZCALLBACK ftell64_file_func OF((voidpf opaque, voidpf stream)); +static long ZCALLBACK fseek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin)); +static int ZCALLBACK fclose_file_func OF((voidpf opaque, voidpf stream)); +static int ZCALLBACK ferror_file_func OF((voidpf opaque, voidpf stream)); + +static voidpf ZCALLBACK fopen_file_func (voidpf opaque, const char* filename, int mode) +{ + FILE* file = NULL; + const char* mode_fopen = NULL; + if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ) + mode_fopen = "rb"; + else + if (mode & ZLIB_FILEFUNC_MODE_EXISTING) + mode_fopen = "r+b"; + else + if (mode & ZLIB_FILEFUNC_MODE_CREATE) + mode_fopen = "wb"; + + if ((filename!=NULL) && (mode_fopen != NULL)) + file = fopen(filename, mode_fopen); + return file; +} + +static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename, int mode) +{ + FILE* file = NULL; + const char* mode_fopen = NULL; + if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ) + mode_fopen = "rb"; + else + if (mode & ZLIB_FILEFUNC_MODE_EXISTING) + mode_fopen = "r+b"; + else + if (mode & ZLIB_FILEFUNC_MODE_CREATE) + mode_fopen = "wb"; + + if ((filename!=NULL) && (mode_fopen != NULL)) + file = FOPEN_FUNC((const char*)filename, mode_fopen); + return file; +} + + +static uLong ZCALLBACK fread_file_func (voidpf opaque, voidpf stream, void* buf, uLong size) +{ + uLong ret; + ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream); + return ret; +} + +static uLong ZCALLBACK fwrite_file_func (voidpf opaque, voidpf stream, const void* buf, uLong size) +{ + uLong ret; + ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream); + return ret; +} + +static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream) +{ + long ret; + ret = ftell((FILE *)stream); + return ret; +} + + +static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream) +{ + ZPOS64_T ret; + ret = FTELLO_FUNC((FILE *)stream); + return ret; +} + +static long ZCALLBACK fseek_file_func (voidpf opaque, voidpf stream, uLong offset, int origin) +{ + int fseek_origin=0; + long ret; + switch (origin) + { + case ZLIB_FILEFUNC_SEEK_CUR : + fseek_origin = SEEK_CUR; + break; + case ZLIB_FILEFUNC_SEEK_END : + fseek_origin = SEEK_END; + break; + case ZLIB_FILEFUNC_SEEK_SET : + fseek_origin = SEEK_SET; + break; + default: return -1; + } + ret = 0; + if (fseek((FILE *)stream, offset, fseek_origin) != 0) + ret = -1; + return ret; +} + +static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T offset, int origin) +{ + int fseek_origin=0; + long ret; + switch (origin) + { + case ZLIB_FILEFUNC_SEEK_CUR : + fseek_origin = SEEK_CUR; + break; + case ZLIB_FILEFUNC_SEEK_END : + fseek_origin = SEEK_END; + break; + case ZLIB_FILEFUNC_SEEK_SET : + fseek_origin = SEEK_SET; + break; + default: return -1; + } + ret = 0; + + if(FSEEKO_FUNC((FILE *)stream, offset, fseek_origin) != 0) + ret = -1; + + return ret; +} + + +static int ZCALLBACK fclose_file_func (voidpf opaque, voidpf stream) +{ + int ret; + ret = fclose((FILE *)stream); + return ret; +} + +static int ZCALLBACK ferror_file_func (voidpf opaque, voidpf stream) +{ + int ret; + ret = ferror((FILE *)stream); + return ret; +} + +void fill_fopen_filefunc (pzlib_filefunc_def) + zlib_filefunc_def* pzlib_filefunc_def; +{ + pzlib_filefunc_def->zopen_file = fopen_file_func; + pzlib_filefunc_def->zread_file = fread_file_func; + pzlib_filefunc_def->zwrite_file = fwrite_file_func; + pzlib_filefunc_def->ztell_file = ftell_file_func; + pzlib_filefunc_def->zseek_file = fseek_file_func; + pzlib_filefunc_def->zclose_file = fclose_file_func; + pzlib_filefunc_def->zerror_file = ferror_file_func; + pzlib_filefunc_def->opaque = NULL; +} + +void fill_fopen64_filefunc (zlib_filefunc64_def* pzlib_filefunc_def) +{ + pzlib_filefunc_def->zopen64_file = fopen64_file_func; + pzlib_filefunc_def->zread_file = fread_file_func; + pzlib_filefunc_def->zwrite_file = fwrite_file_func; + pzlib_filefunc_def->ztell64_file = ftell64_file_func; + pzlib_filefunc_def->zseek64_file = fseek64_file_func; + pzlib_filefunc_def->zclose_file = fclose_file_func; + pzlib_filefunc_def->zerror_file = ferror_file_func; + pzlib_filefunc_def->opaque = NULL; +} diff --git a/storage/connect/ioapi.h b/storage/connect/ioapi.h new file mode 100644 index 00000000000..8dcbdb06e35 --- /dev/null +++ b/storage/connect/ioapi.h @@ -0,0 +1,208 @@ +/* ioapi.h -- IO base function header for compress/uncompress .zip + part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) + + Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + + Modifications for Zip64 support + Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + + For more info read MiniZip_info.txt + + Changes + + Oct-2009 - Defined ZPOS64_T to fpos_t on windows and u_int64_t on linux. (might need to find a better why for this) + Oct-2009 - Change to fseeko64, ftello64 and fopen64 so large files would work on linux. + More if/def section may be needed to support other platforms + Oct-2009 - Defined fxxxx64 calls to normal fopen/ftell/fseek so they would compile on windows. + (but you should use iowin32.c for windows instead) + +*/ + +#ifndef _ZLIBIOAPI64_H +#define _ZLIBIOAPI64_H + +#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) + + // Linux needs this to support file operation on files larger then 4+GB + // But might need better if/def to select just the platforms that needs them. + + #ifndef __USE_FILE_OFFSET64 + #define __USE_FILE_OFFSET64 + #endif + #ifndef __USE_LARGEFILE64 + #define __USE_LARGEFILE64 + #endif + #ifndef _LARGEFILE64_SOURCE + #define _LARGEFILE64_SOURCE + #endif + #ifndef _FILE_OFFSET_BIT + #define _FILE_OFFSET_BIT 64 + #endif + +#endif + +#include +#include +#include "zlib.h" + +#if defined(USE_FILE32API) +#define fopen64 fopen +#define ftello64 ftell +#define fseeko64 fseek +#else +#ifdef __FreeBSD__ +#define fopen64 fopen +#define ftello64 ftello +#define fseeko64 fseeko +#endif +#ifdef _MSC_VER + #define fopen64 fopen + #if (_MSC_VER >= 1400) && (!(defined(NO_MSCVER_FILE64_FUNC))) + #define ftello64 _ftelli64 + #define fseeko64 _fseeki64 + #else // old MSC + #define ftello64 ftell + #define fseeko64 fseek + #endif +#endif +#endif + +/* +#ifndef ZPOS64_T + #ifdef _WIN32 + #define ZPOS64_T fpos_t + #else + #include + #define ZPOS64_T uint64_t + #endif +#endif +*/ + +#ifdef HAVE_MINIZIP64_CONF_H +#include "mz64conf.h" +#endif + +/* a type choosen by DEFINE */ +#ifdef HAVE_64BIT_INT_CUSTOM +typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T; +#else +#ifdef HAS_STDINT_H +#include "stdint.h" +typedef uint64_t ZPOS64_T; +#else + +/* Maximum unsigned 32-bit value used as placeholder for zip64 */ +#define MAXU32 0xffffffff + +#if defined(_MSC_VER) || defined(__BORLANDC__) +typedef unsigned __int64 ZPOS64_T; +#else +typedef unsigned long long int ZPOS64_T; +#endif +#endif +#endif + + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define ZLIB_FILEFUNC_SEEK_CUR (1) +#define ZLIB_FILEFUNC_SEEK_END (2) +#define ZLIB_FILEFUNC_SEEK_SET (0) + +#define ZLIB_FILEFUNC_MODE_READ (1) +#define ZLIB_FILEFUNC_MODE_WRITE (2) +#define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3) + +#define ZLIB_FILEFUNC_MODE_EXISTING (4) +#define ZLIB_FILEFUNC_MODE_CREATE (8) + + +#ifndef ZCALLBACK + #if (defined(WIN32) || defined(_WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK) + #define ZCALLBACK CALLBACK + #else + #define ZCALLBACK + #endif +#endif + + + + +typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); +typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size)); +typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size)); +typedef int (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream)); +typedef int (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream)); + +typedef long (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream)); +typedef long (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin)); + + +/* here is the "old" 32 bits structure structure */ +typedef struct zlib_filefunc_def_s +{ + open_file_func zopen_file; + read_file_func zread_file; + write_file_func zwrite_file; + tell_file_func ztell_file; + seek_file_func zseek_file; + close_file_func zclose_file; + testerror_file_func zerror_file; + voidpf opaque; +} zlib_filefunc_def; + +typedef ZPOS64_T (ZCALLBACK *tell64_file_func) OF((voidpf opaque, voidpf stream)); +typedef long (ZCALLBACK *seek64_file_func) OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin)); +typedef voidpf (ZCALLBACK *open64_file_func) OF((voidpf opaque, const void* filename, int mode)); + +typedef struct zlib_filefunc64_def_s +{ + open64_file_func zopen64_file; + read_file_func zread_file; + write_file_func zwrite_file; + tell64_file_func ztell64_file; + seek64_file_func zseek64_file; + close_file_func zclose_file; + testerror_file_func zerror_file; + voidpf opaque; +} zlib_filefunc64_def; + +void fill_fopen64_filefunc OF((zlib_filefunc64_def* pzlib_filefunc_def)); +void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def)); + +/* now internal definition, only for zip.c and unzip.h */ +typedef struct zlib_filefunc64_32_def_s +{ + zlib_filefunc64_def zfile_func64; + open_file_func zopen32_file; + tell_file_func ztell32_file; + seek_file_func zseek32_file; +} zlib_filefunc64_32_def; + + +#define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size)) +#define ZWRITE64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zwrite_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size)) +//#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream)) +//#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode)) +#define ZCLOSE64(filefunc,filestream) ((*((filefunc).zfile_func64.zclose_file)) ((filefunc).zfile_func64.opaque,filestream)) +#define ZERROR64(filefunc,filestream) ((*((filefunc).zfile_func64.zerror_file)) ((filefunc).zfile_func64.opaque,filestream)) + +voidpf call_zopen64 OF((const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode)); +long call_zseek64 OF((const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin)); +ZPOS64_T call_ztell64 OF((const zlib_filefunc64_32_def* pfilefunc,voidpf filestream)); + +void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32); + +#define ZOPEN64(filefunc,filename,mode) (call_zopen64((&(filefunc)),(filename),(mode))) +#define ZTELL64(filefunc,filestream) (call_ztell64((&(filefunc)),(filestream))) +#define ZSEEK64(filefunc,filestream,pos,mode) (call_zseek64((&(filefunc)),(filestream),(pos),(mode))) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/storage/connect/mycat.cc b/storage/connect/mycat.cc index 19c9f62b5bf..497fe5e1aa8 100644 --- a/storage/connect/mycat.cc +++ b/storage/connect/mycat.cc @@ -16,7 +16,7 @@ /*************** Mycat CC Program Source Code File (.CC) ***************/ /* PROGRAM NAME: MYCAT */ /* ------------- */ -/* Version 1.4 */ +/* Version 1.5 */ /* */ /* Author: Olivier Bertrand 2012 - 2016 */ /* */ @@ -95,6 +95,9 @@ #if defined(XML_SUPPORT) #include "tabxml.h" #endif // XML_SUPPORT +#if defined(ZIP_SUPPORT) +#include "tabzip.h" +#endif // ZIP_SUPPORT #include "mycat.h" /***********************************************************************/ @@ -154,7 +157,10 @@ TABTYPE GetTypeID(const char *type) #endif : (!stricmp(type, "VIR")) ? TAB_VIR : (!stricmp(type, "JSON")) ? TAB_JSON - : (!stricmp(type, "OEM")) ? TAB_OEM : TAB_NIY; +#ifdef ZIP_SUPPORT + : (!stricmp(type, "ZIP")) ? TAB_ZIP +#endif + : (!stricmp(type, "OEM")) ? TAB_OEM : TAB_NIY; } // end of GetTypeID /***********************************************************************/ @@ -175,6 +181,7 @@ bool IsFileType(TABTYPE type) case TAB_INI: case TAB_VEC: case TAB_JSON: +// case TAB_ZIP: isfile= true; break; default: @@ -575,7 +582,10 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am) #endif // PIVOT_SUPPORT case TAB_VIR: tdp= new(g) VIRDEF; break; case TAB_JSON: tdp= new(g) JSONDEF; break; - default: +#if defined(ZIP_SUPPORT) + case TAB_ZIP: tdp= new(g) ZIPDEF; break; +#endif // ZIP_SUPPORT + default: sprintf(g->Message, MSG(BAD_TABLE_TYPE), am, name); } // endswitch diff --git a/storage/connect/plgdbsem.h b/storage/connect/plgdbsem.h index e99f5f36444..cb408494319 100644 --- a/storage/connect/plgdbsem.h +++ b/storage/connect/plgdbsem.h @@ -1,9 +1,9 @@ /************** PlgDBSem H Declares Source Code File (.H) **************/ -/* Name: PLGDBSEM.H Version 3.6 */ +/* Name: PLGDBSEM.H Version 3.7 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 1998-2015 */ +/* (C) Copyright to the author Olivier BERTRAND 1998-2016 */ /* */ -/* This file contains the PlugDB++ application type definitions. */ +/* This file contains the CONNECT storage engine definitions. */ /***********************************************************************/ /***********************************************************************/ @@ -49,7 +49,8 @@ enum BLKTYP {TYPE_TABLE = 50, /* Table Name/Srcdef/... Block */ TYPE_FB_MAP = 23, /* Mapped file block (storage) */ TYPE_FB_HANDLE = 24, /* File block (handle) */ TYPE_FB_XML = 21, /* DOM XML file block */ - TYPE_FB_XML2 = 27}; /* libxml2 XML file block */ + TYPE_FB_XML2 = 27, /* libxml2 XML file block */ + TYPE_FB_ZIP = 28}; /* ZIP file block */ enum TABTYPE {TAB_UNDEF = 0, /* Table of undefined type */ TAB_DOS = 1, /* Fixed column offset, variable LRECL */ @@ -78,7 +79,8 @@ enum TABTYPE {TAB_UNDEF = 0, /* Table of undefined type */ TAB_JCT = 24, /* Junction tables NIY */ TAB_DMY = 25, /* DMY Dummy tables NIY */ TAB_JDBC = 26, /* Table accessed via JDBC */ - TAB_NIY = 27}; /* Table not implemented yet */ + TAB_ZIP = 27, /* ZIP file info table */ + TAB_NIY = 28}; /* Table not implemented yet */ enum AMT {TYPE_AM_ERROR = 0, /* Type not defined */ TYPE_AM_ROWID = 1, /* ROWID type (special column) */ @@ -140,7 +142,8 @@ enum AMT {TYPE_AM_ERROR = 0, /* Type not defined */ TYPE_AM_MYSQL = 192, /* MYSQL access method type no */ TYPE_AM_MYX = 193, /* MYSQL EXEC access method type */ TYPE_AM_CAT = 195, /* Catalog access method type no */ - TYPE_AM_OUT = 200}; /* Output relations (storage) */ + TYPE_AM_ZIP = 198, /* ZIP access method type no */ + TYPE_AM_OUT = 200}; /* Output relations (storage) */ enum RECFM {RECFM_NAF = -2, /* Not a file */ RECFM_OEM = -1, /* OEM file access method */ diff --git a/storage/connect/plgdbutl.cpp b/storage/connect/plgdbutl.cpp index 13c0dfd1e18..31c040c6957 100644 --- a/storage/connect/plgdbutl.cpp +++ b/storage/connect/plgdbutl.cpp @@ -68,6 +68,9 @@ #include "tabcol.h" // header of XTAB and COLUMN classes #include "valblk.h" #include "rcmsg.h" +#ifdef ZIP_SUPPORT +#include "filamzip.h" +#endif // ZIP_SUPPORT /***********************************************************************/ /* DB static variables. */ @@ -934,7 +937,16 @@ int PlugCloseFile(PGLOBAL g __attribute__((unused)), PFBLOCK fp, bool all) CloseXML2File(g, fp, all); break; #endif // LIBXML2_SUPPORT - default: +#ifdef ZIP_SUPPORT + case TYPE_FB_ZIP: + ((PZIPFAM)fp->File)->close(); + fp->Memory = NULL; + fp->Mode = MODE_ANY; + fp->Count = 0; + fp->File = NULL; + break; +#endif // ZIP_SUPPORT + default: rc = RC_FX; } // endswitch Type diff --git a/storage/connect/tabdos.cpp b/storage/connect/tabdos.cpp index 06dde34a27f..9bcac0b5f1a 100644 --- a/storage/connect/tabdos.cpp +++ b/storage/connect/tabdos.cpp @@ -1,7 +1,7 @@ /************* TabDos C++ Program Source Code File (.CPP) **************/ /* PROGRAM NAME: TABDOS */ /* ------------- */ -/* Version 4.9.1 */ +/* Version 4.9.2 */ /* */ /* COPYRIGHT: */ /* ---------- */ @@ -54,6 +54,9 @@ #if defined(GZ_SUPPORT) #include "filamgz.h" #endif // GZ_SUPPORT +#if defined(ZIP_SUPPORT) +#include "filamzip.h" +#endif // ZIP_SUPPORT #include "tabdos.h" #include "tabfix.h" #include "tabmul.h" @@ -93,6 +96,7 @@ DOSDEF::DOSDEF(void) Pseudo = 3; Fn = NULL; Ofn = NULL; + Zipfn = NULL; To_Indx = NULL; Recfm = RECFM_VAR; Mapped = false; @@ -126,7 +130,20 @@ bool DOSDEF::DefineAM(PGLOBAL g, LPCSTR am, int) : (am && (*am == 'B' || *am == 'b')) ? "B" : (am && !stricmp(am, "DBF")) ? "D" : "V"; - Desc = Fn = GetStringCatInfo(g, "Filename", NULL); + if (*dfm != 'D') + Zipfn = GetStringCatInfo(g, "Zipfile", NULL); + + if (Zipfn && Multiple) { + // Prevent Fn to default to table name + Desc = GetStringCatInfo(g, "Filename", NULL); + Fn = GetStringCatInfo(g, "Filename", "<%>"); + + if (!strcmp(Fn, "<%>")) + Fn = NULL; + + } else + Desc = Fn = GetStringCatInfo(g, "Filename", NULL); + Ofn = GetStringCatInfo(g, "Optname", Fn); GetCharCatInfo("Recfm", (PSZ)dfm, buf, sizeof(buf)); Recfm = (toupper(*buf) == 'F') ? RECFM_FIX : @@ -333,7 +350,20 @@ PTDB DOSDEF::GetTable(PGLOBAL g, MODE mode) /* Allocate table and file processing class of the proper type. */ /* Column blocks will be allocated only when needed. */ /*********************************************************************/ - if (Recfm == RECFM_DBF) { + if (Zipfn) { +#if defined(ZIP_SUPPORT) + if (Recfm == RECFM_VAR) + txfp = new(g) ZIPFAM(this); + else + txfp = new(g) ZPXFAM(this); + + tdbp = new(g) TDBDOS(this, txfp); + return tdbp; +#else // !ZIP_SUPPORT + strcpy(g->Message, "ZIP not supported"); + return NULL; +#endif // !ZIP_SUPPORT + } else if (Recfm == RECFM_DBF) { if (Catfunc == FNC_NO) { if (map) txfp = new(g) DBMFAM(this); diff --git a/storage/connect/tabdos.h b/storage/connect/tabdos.h index c70e0032f47..501ddbc2e0b 100644 --- a/storage/connect/tabdos.h +++ b/storage/connect/tabdos.h @@ -28,6 +28,7 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ friend class TDBFIX; friend class TXTFAM; friend class DBFBASE; + friend class ZIPFAM; public: // Constructor DOSDEF(void); @@ -58,7 +59,7 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ // Methods virtual int Indexable(void) - {return (!Multiple && Compressed != 1) ? 1 : 0;} + {return (!Multiple && !Zipfn && Compressed != 1) ? 1 : 0;} virtual bool DeleteIndexFile(PGLOBAL g, PIXDEF pxdf); virtual bool DefineAM(PGLOBAL g, LPCSTR am, int poff); virtual PTDB GetTable(PGLOBAL g, MODE mode); @@ -72,7 +73,8 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ // Members PSZ Fn; /* Path/Name of corresponding file */ PSZ Ofn; /* Base Path/Name of matching index files*/ - PIXDEF To_Indx; /* To index definitions blocks */ + PSZ Zipfn; /* Zip container name */ + PIXDEF To_Indx; /* To index definitions blocks */ RECFM Recfm; /* 0:VAR, 1:FIX, 2:BIN, 3:VCT, 6:DBF */ bool Mapped; /* 0: disk file, 1: memory mapped file */ bool Padded; /* true for padded table file */ diff --git a/storage/connect/tabfmt.cpp b/storage/connect/tabfmt.cpp index 4a39ecd6e0f..d6649a0093b 100644 --- a/storage/connect/tabfmt.cpp +++ b/storage/connect/tabfmt.cpp @@ -1,7 +1,7 @@ /************* TabFmt C++ Program Source Code File (.CPP) **************/ /* PROGRAM NAME: TABFMT */ /* ------------- */ -/* Version 3.9.1 */ +/* Version 3.9.2 */ /* */ /* COPYRIGHT: */ /* ---------- */ @@ -54,6 +54,9 @@ #if defined(GZ_SUPPORT) #include "filamgz.h" #endif // GZ_SUPPORT +#if defined(ZIP_SUPPORT) +#include "filamzip.h" +#endif // ZIP_SUPPORT #include "tabfmt.h" #include "tabmul.h" #define NO_FUNC @@ -78,20 +81,24 @@ USETEMP UseTemp(void); /* of types (TYPE_STRING < TYPE_DOUBLE < TYPE_INT) (1 < 2 < 7). */ /* If these values are changed, this will have to be revisited. */ /***********************************************************************/ -PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, - char q, int hdr, int mxr, bool info) +PQRYRES CSVColumns(PGLOBAL g, char *dp, PTOS topt, bool info) { static int buftyp[] = {TYPE_STRING, TYPE_SHORT, TYPE_STRING, TYPE_INT, TYPE_INT, TYPE_SHORT}; static XFLD fldtyp[] = {FLD_NAME, FLD_TYPE, FLD_TYPENAME, FLD_PREC, FLD_LENGTH, FLD_SCALE}; static unsigned int length[] = {6, 6, 8, 10, 10, 6}; - char *p, *colname[MAXCOL], dechar, filename[_MAX_PATH], buf[4096]; + const char *fn; + char sep, q; + int rc, mxr; + bool hdr; + char *p, *colname[MAXCOL], dechar, buf[8]; int i, imax, hmax, n, nerr, phase, blank, digit, dec, type; int ncol = sizeof(buftyp) / sizeof(int); int num_read = 0, num_max = 10000000; // Statistics int len[MAXCOL], typ[MAXCOL], prc[MAXCOL]; - FILE *infile; + PCSVDEF tdp; + PTDBCSV tdbp; PQRYRES qrp; PCOLRES crp; @@ -102,26 +109,7 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, } // endif info // num_max = atoi(p+1); // Max num of record to test -#if defined(__WIN__) - if (sep == ',' || strnicmp(setlocale(LC_NUMERIC, NULL), "French", 6)) - dechar = '.'; - else - dechar = ','; -#else // !__WIN__ - dechar = '.'; -#endif // !__WIN__ - - if (trace) - htrc("File %s sep=%c q=%c hdr=%d mxr=%d\n", - SVP(fn), sep, q, hdr, mxr); - - if (!fn) { - strcpy(g->Message, MSG(MISSING_FNAME)); - return NULL; - } // endif fn - imax = hmax = nerr = 0; - mxr = MY_MAX(0, mxr); for (i = 0; i < MAXCOL; i++) { colname[i] = NULL; @@ -131,12 +119,73 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, } // endfor i /*********************************************************************/ - /* Open the input file. */ + /* Get the CSV table description block. */ /*********************************************************************/ - PlugSetPath(filename, fn, dp); + tdp = new(g) CSVDEF; +#if defined(ZIP_SUPPORT) + tdp->Zipfn = GetStringTableOption(g, topt, "Zipfile", NULL); + tdp->Multiple = GetIntegerTableOption(g, topt, "Multiple", 0); +#endif // ZIP_SUPPORT + tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); - if (!(infile= global_fopen(g, MSGID_CANNOT_OPEN, filename, "r"))) - return NULL; + if (!tdp->Fn && !tdp->Zipfn && !tdp->Multiple) { + strcpy(g->Message, MSG(MISSING_FNAME)); + return NULL; + } // endif Fn + + fn = (tdp->Fn) ? tdp->Fn : "unnamed"; + + if (!(tdp->Lrecl = GetIntegerTableOption(g, topt, "Lrecl", 0))) + tdp->Lrecl = 4096; + + p = GetStringTableOption(g, topt, "Separator", ","); + tdp->Sep = (strlen(p) == 2 && p[0] == '\\' && p[1] == 't') ? '\t' : *p; + +#if defined(__WIN__) + if (tdp->Sep == ',' || strnicmp(setlocale(LC_NUMERIC, NULL), "French", 6)) + dechar = '.'; + else + dechar = ','; +#else // !__WIN__ + dechar = '.'; +#endif // !__WIN__ + + sep = tdp->Sep; + tdp->Quoted = GetIntegerTableOption(g, topt, "Quoted", -1); + p = GetStringTableOption(g, topt, "Qchar", ""); + tdp->Qot = *p; + + if (tdp->Qot && tdp->Quoted < 0) + tdp->Quoted = 0; + else if (!tdp->Qot && tdp->Quoted >= 0) + tdp->Qot = '"'; + + q = tdp->Qot; + hdr = GetBooleanTableOption(g, topt, "Header", false); + tdp->Maxerr = GetIntegerTableOption(g, topt, "Maxerr", 0); + tdp->Accept = GetBooleanTableOption(g, topt, "Accept", false); + + if (tdp->Accept && tdp->Maxerr == 0) + tdp->Maxerr = INT_MAX32; // Accept all bad lines + + mxr = MY_MAX(0, tdp->Maxerr); + + if (trace) + htrc("File %s Sep=%c Qot=%c Header=%d maxerr=%d\n", + SVP(tdp->Fn), tdp->Sep, tdp->Qot, tdp->Header, tdp->Maxerr); + + if (tdp->Zipfn) + tdbp = new(g) TDBCSV(tdp, new(g) ZIPFAM(tdp)); + else + tdbp = new(g) TDBCSV(tdp, new(g) DOSFAM(tdp)); + + tdbp->SetMode(MODE_READ); + + /*********************************************************************/ + /* Open the CSV file. */ + /*********************************************************************/ + if (tdbp->OpenDB(g)) + return NULL; if (hdr) { /*******************************************************************/ @@ -144,16 +193,8 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, /*******************************************************************/ phase = 0; - if (fgets(buf, sizeof(buf), infile)) { - n = strlen(buf) + 1; - buf[n - 2] = '\0'; -#if !defined(__WIN__) - // The file can be imported from Windows - if (buf[n - 3] == '\r') - buf[n - 3] = 0; -#endif // UNIX - p = (char*)PlugSubAlloc(g, NULL, n); - memcpy(p, buf, n); + if ((rc = tdbp->ReadDB(g)) == RC_OK) { + p = PlgDBDup(g, tdbp->To_Line); //skip leading blanks for (; *p == ' '; p++) ; @@ -165,10 +206,11 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, } // endif q colname[0] = p; - } else { + } else if (rc == RC_EF) { sprintf(g->Message, MSG(FILE_IS_EMPTY), fn); goto err; - } // endif's + } else + goto err; for (i = 1; *p; p++) if (phase == 1 && *p == q) { @@ -201,15 +243,8 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, /*******************************************************************/ /* Now start the reading process. Read one line. */ /*******************************************************************/ - if (fgets(buf, sizeof(buf), infile)) { - n = strlen(buf); - buf[n - 1] = '\0'; -#if !defined(__WIN__) - // The file can be imported from Windows - if (buf[n - 2] == '\r') - buf[n - 2] = 0; -#endif // UNIX - } else if (feof(infile)) { + if ((rc = tdbp->ReadDB(g)) == RC_OK) { + } else if (rc == RC_EF) { sprintf(g->Message, MSG(EOF_AFTER_LINE), num_read -1); break; } else { @@ -222,7 +257,7 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, /*******************************************************************/ i = n = phase = blank = digit = dec = 0; - for (p = buf; *p; p++) + for (p = tdbp->To_Line; *p; p++) if (*p == sep) { if (phase != 1) { if (i == MAXCOL - 1) { @@ -331,7 +366,7 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, htrc("\n"); } // endif trace - fclose(infile); + tdbp->CloseDB(g); skipit: if (trace) @@ -381,7 +416,7 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, return qrp; err: - fclose(infile); + tdbp->CloseDB(g); return NULL; } // end of CSVCColumns @@ -458,7 +493,21 @@ PTDB CSVDEF::GetTable(PGLOBAL g, MODE mode) /*******************************************************************/ /* Allocate a file processing class of the proper type. */ /*******************************************************************/ - if (map) { + if (Zipfn) { +#if defined(ZIP_SUPPORT) + txfp = new(g) ZIPFAM(this); + + if (!Fmtd) + tdbp = new(g) TDBCSV(this, txfp); + else + tdbp = new(g) TDBFMT(this, txfp); + + return tdbp; +#else // !ZIP_SUPPORT + strcpy(g->Message, "ZIP not supported"); + return NULL; +#endif // !ZIP_SUPPORT + } else if (map) { // Should be now compatible with UNIX txfp = new(g) MAPFAM(this); } else if (Compressed) { @@ -1476,21 +1525,16 @@ void CSVCOL::WriteColumn(PGLOBAL g) /* TDBCCL class constructor. */ /***********************************************************************/ TDBCCL::TDBCCL(PCSVDEF tdp) : TDBCAT(tdp) - { - Fn = tdp->GetFn(); - Hdr = tdp->Header; - Mxr = tdp->Maxerr; - Qtd = tdp->Quoted; - Sep = tdp->Sep; - } // end of TDBCCL constructor +{ + Topt = tdp->GetTopt(); +} // end of TDBCCL constructor /***********************************************************************/ /* GetResult: Get the list the CSV file columns. */ /***********************************************************************/ PQRYRES TDBCCL::GetResult(PGLOBAL g) { - return CSVColumns(g, ((PTABDEF)To_Def)->GetPath(), - Fn, Sep, Qtd, Hdr, Mxr, false); + return CSVColumns(g, ((PTABDEF)To_Def)->GetPath(), Topt, false); } // end of GetResult /* ------------------------ End of TabFmt ---------------------------- */ diff --git a/storage/connect/tabfmt.h b/storage/connect/tabfmt.h index ce80a276cdc..5ce8d399a64 100644 --- a/storage/connect/tabfmt.h +++ b/storage/connect/tabfmt.h @@ -1,7 +1,7 @@ /*************** TabFmt H Declares Source Code File (.H) ***************/ -/* Name: TABFMT.H Version 2.4 */ +/* Name: TABFMT.H Version 2.5 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 2001-2014 */ +/* (C) Copyright to the author Olivier BERTRAND 2001-2016 */ /* */ /* This file contains the CSV and FMT classes declares. */ /***********************************************************************/ @@ -13,8 +13,7 @@ typedef class TDBFMT *PTDBFMT; /***********************************************************************/ /* Functions used externally. */ /***********************************************************************/ -PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, - char q, int hdr, int mxr, bool info); +PQRYRES CSVColumns(PGLOBAL g, char *dp, PTOS topt, bool info); /***********************************************************************/ /* CSV table. */ @@ -22,7 +21,8 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, const char *fn, char sep, class DllExport CSVDEF : public DOSDEF { /* Logical table description */ friend class TDBCSV; friend class TDBCCL; - public: + friend PQRYRES CSVColumns(PGLOBAL, char *, PTOS, bool); +public: // Constructor CSVDEF(void); @@ -50,9 +50,10 @@ class DllExport CSVDEF : public DOSDEF { /* Logical table description */ /* This is the DOS/UNIX Access Method class declaration for files */ /* that are CSV files with columns separated by the Sep character. */ /***********************************************************************/ -class TDBCSV : public TDBDOS { +class DllExport TDBCSV : public TDBDOS { friend class CSVCOL; - public: + friend PQRYRES CSVColumns(PGLOBAL, char *, PTOS, bool); +public: // Constructor TDBCSV(PCSVDEF tdp, PTXF txfp); TDBCSV(PGLOBAL g, PTDBCSV tdbp); @@ -101,7 +102,7 @@ class TDBCSV : public TDBDOS { /* Class CSVCOL: CSV access method column descriptor. */ /* This A.M. is used for Comma Separated V(?) files. */ /***********************************************************************/ -class CSVCOL : public DOSCOL { +class DllExport CSVCOL : public DOSCOL { friend class TDBCSV; friend class TDBFMT; public: @@ -129,7 +130,7 @@ class CSVCOL : public DOSCOL { /* This is the DOS/UNIX Access Method class declaration for files */ /* whose record format is described by a Format keyword. */ /***********************************************************************/ -class TDBFMT : public TDBCSV { +class DllExport TDBFMT : public TDBCSV { friend class CSVCOL; //friend class FMTCOL; public: @@ -173,7 +174,7 @@ class TDBFMT : public TDBCSV { /***********************************************************************/ /* This is the class declaration for the CSV catalog table. */ /***********************************************************************/ -class TDBCCL : public TDBCAT { +class DllExport TDBCCL : public TDBCAT { public: // Constructor TDBCCL(PCSVDEF tdp); @@ -183,11 +184,7 @@ class TDBCCL : public TDBCAT { virtual PQRYRES GetResult(PGLOBAL g); // Members - char *Fn; // The CSV file (path) name - bool Hdr; // true if first line contains headers - int Mxr; // Maximum number of bad records - int Qtd; // Quoting level for quoted fields - char Sep; // Separator for standard CSV files - }; // end of class TDBCCL + PTOS Topt; +}; // end of class TDBCCL /* ------------------------- End of TabFmt.H ------------------------- */ diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index 5f864f0bd48..73c6a6d85a4 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -1,5 +1,5 @@ /************* tabjson C++ Program Source Code File (.CPP) *************/ -/* PROGRAM NAME: tabjson Version 1.2 */ +/* PROGRAM NAME: tabjson Version 1.3 */ /* (C) Copyright to the author Olivier BERTRAND 2014 - 2016 */ /* This program are the JSON class DB execution routines. */ /***********************************************************************/ @@ -28,6 +28,9 @@ #if defined(GZ_SUPPORT) #include "filamgz.h" #endif // GZ_SUPPORT +#if defined(ZIP_SUPPORT) +#include "filamzip.h" +#endif // ZIP_SUPPORT #include "tabmul.h" #include "checklvl.h" #include "resource.h" @@ -67,7 +70,7 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) static XFLD fldtyp[] = {FLD_NAME, FLD_TYPE, FLD_TYPENAME, FLD_PREC, FLD_LENGTH, FLD_SCALE, FLD_NULL, FLD_FORMAT}; static unsigned int length[] = {0, 6, 8, 10, 10, 6, 6, 0}; - char *fn, colname[65], fmt[129]; + char colname[65], fmt[129]; int i, j, lvl, n = 0; int ncol = sizeof(buftyp) / sizeof(int); PVAL valp; @@ -94,16 +97,21 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) /*********************************************************************/ /* Open the input file. */ /*********************************************************************/ - if (!(fn = GetStringTableOption(g, topt, "Filename", NULL))) { - strcpy(g->Message, MSG(MISSING_FNAME)); - return NULL; - } else { - lvl = GetIntegerTableOption(g, topt, "Level", 0); - lvl = (lvl < 0) ? 0 : (lvl > 16) ? 16 : lvl; - } // endif fn + lvl = GetIntegerTableOption(g, topt, "Level", 0); + lvl = (lvl < 0) ? 0 : (lvl > 16) ? 16 : lvl; tdp = new(g) JSONDEF; - tdp->Fn = fn; +#if defined(ZIP_SUPPORT) + tdp->Zipfn = GetStringTableOption(g, topt, "Zipfile", NULL); + tdp->Multiple = GetIntegerTableOption(g, topt, "Multiple", 0); +#endif // ZIP_SUPPORT + tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); + + if (!tdp->Fn && !tdp->Zipfn && !tdp->Multiple) { + strcpy(g->Message, MSG(MISSING_FNAME)); + return NULL; + } // endif Fn + tdp->Database = SetPath(g, db); tdp->Objname = GetStringTableOption(g, topt, "Object", NULL); tdp->Base = GetIntegerTableOption(g, topt, "Base", 0) ? 1 : 0; @@ -114,7 +122,10 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) tdp->Fn, tdp->Objname, tdp->Pretty, lvl); if (tdp->Pretty == 2) { - tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp)); + if (tdp->Zipfn) + tjsp = new(g) TDBJSON(tdp, new(g) ZIPFAM(tdp)); + else + tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp)); if (tjsp->MakeDocument(g)) return NULL; @@ -127,10 +138,28 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) } // endif lrecl tdp->Ending = GetIntegerTableOption(g, topt, "Ending", CRLF); - tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); + + if (tdp->Zipfn) + tjnp = new(g) TDBJSN(tdp, new(g) ZIPFAM(tdp)); + else + tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); + tjnp->SetMode(MODE_READ); - if (tjnp->OpenDB(g)) +#if USE_G + // Allocate the parse work memory + PGLOBAL G = (PGLOBAL)PlugSubAlloc(g, NULL, sizeof(GLOBAL)); + memset(G, 0, sizeof(GLOBAL)); + G->Sarea_Size = tdp->Lrecl * 10; + G->Sarea = PlugSubAlloc(g, NULL, G->Sarea_Size); + PlugSubSet(G, G->Sarea, G->Sarea_Size); + G->jump_level = -1; + tjnp->SetG(G); +#else + tjnp->SetG(g); +#endif + + if (tjnp->OpenDB(g)) return NULL; switch (tjnp->ReadDB(g)) { @@ -395,7 +424,14 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) !(tmp == TMP_FORCE && (m == MODE_UPDATE || m == MODE_DELETE)); - if (Compressed) { + if (Zipfn) { +#if defined(ZIP_SUPPORT) + txfp = new(g) ZIPFAM(this); +#else // !ZIP_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return NULL; +#endif // !ZIP_SUPPORT + } else if (Compressed) { #if defined(GZ_SUPPORT) if (Compressed == 1) txfp = new(g) GZFAM(this); @@ -426,12 +462,16 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) ((TDBJSN*)tdbp)->G = g; #endif } else { - txfp = new(g) MAPFAM(this); + if (Zipfn) + txfp = new(g) ZIPFAM(this); + else + txfp = new(g) MAPFAM(this); + tdbp = new(g) TDBJSON(this, txfp); ((TDBJSON*)tdbp)->G = g; } // endif Pretty - if (Multiple) + if (Multiple && !Zipfn) tdbp = new(g) TDBMUL(tdbp); return tdbp; diff --git a/storage/connect/tabjson.h b/storage/connect/tabjson.h index f7cb74c3c4d..c9d30d48f2a 100644 --- a/storage/connect/tabjson.h +++ b/storage/connect/tabjson.h @@ -78,7 +78,8 @@ public: virtual AMT GetAmType(void) {return TYPE_AM_JSN;} virtual bool SkipHeader(PGLOBAL g); virtual PTDB Duplicate(PGLOBAL g) {return (PTDB)new(g) TDBJSN(this);} - PJSON GetRow(void) {return Row;} + PJSON GetRow(void) {return Row;} + void SetG(PGLOBAL g) {G = g;} // Methods virtual PTDB CopyOne(PTABS t); diff --git a/storage/connect/tabzip.cpp b/storage/connect/tabzip.cpp new file mode 100644 index 00000000000..11f414ee154 --- /dev/null +++ b/storage/connect/tabzip.cpp @@ -0,0 +1,230 @@ +/************* TabZip C++ Program Source Code File (.CPP) **************/ +/* PROGRAM NAME: TABZIP Version 1.0 */ +/* (C) Copyright to the author Olivier BERTRAND 2016 */ +/* This program are the TABZIP class DB execution routines. */ +/***********************************************************************/ + +/***********************************************************************/ +/* Include relevant sections of the MariaDB header file. */ +/***********************************************************************/ +#include + +/***********************************************************************/ +/* Include application header files: */ +/* global.h is header containing all global declarations. */ +/* plgdbsem.h is header containing the DB application declarations. */ +/* (x)table.h is header containing the TDBASE declarations. */ +/* tabzip.h is header containing the TABZIP classes declarations. */ +/***********************************************************************/ +#include "global.h" +#include "plgdbsem.h" +#include "xtable.h" +#include "filamtxt.h" +#include "filamzip.h" +#include "resource.h" // for IDS_COLUMNS +#include "tabdos.h" +#include "tabzip.h" + +/* -------------------------- Class ZIPDEF --------------------------- */ + +/************************************************************************/ +/* DefineAM: define specific AM block values. */ +/************************************************************************/ +bool ZIPDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) +{ +//target = GetStringCatInfo(g, "Target", NULL); + return DOSDEF::DefineAM(g, "ZIP", poff); +} // end of DefineAM + +/***********************************************************************/ +/* GetTable: makes a new Table Description Block. */ +/***********************************************************************/ +PTDB ZIPDEF::GetTable(PGLOBAL g, MODE m) +{ + return new(g) TDBZIP(this); +} // end of GetTable + +/* ------------------------------------------------------------------- */ + +/***********************************************************************/ +/* Implementation of the TDBZIP class. */ +/***********************************************************************/ +TDBZIP::TDBZIP(PZIPDEF tdp) : TDBASE(tdp) +{ + zipfile = NULL; + zfn = tdp->Fn; +//target = tdp->target; + nexterr = UNZ_OK; +} // end of TDBZIP standard constructor + +/***********************************************************************/ +/* Allocate ZIP column description block. */ +/***********************************************************************/ +PCOL TDBZIP::MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n) +{ + return new(g) ZIPCOL(cdp, this, cprec, n); +} // end of MakeCol + +/***********************************************************************/ +/* open a zip file. */ +/* param: filename path and the filename of the zip file to open. */ +/* return: true if open, false otherwise. */ +/***********************************************************************/ +bool TDBZIP::open(PGLOBAL g, const char *filename) +{ + if (!zipfile && !(zipfile = unzOpen64(filename))) + sprintf(g->Message, "Zipfile open error"); + + return (zipfile == NULL); +} // end of open + +/***********************************************************************/ +/* Close the zip file. */ +/***********************************************************************/ +void TDBZIP::close() +{ + if (zipfile) { + unzClose(zipfile); + zipfile = NULL; + } // endif zipfile + +} // end of close + +/***********************************************************************/ +/* ZIP Cardinality: returns table size in number of rows. */ +/***********************************************************************/ +int TDBZIP::Cardinality(PGLOBAL g) +{ + if (!g) + return 1; + else if (Cardinal < 0) { + if (!open(g, zfn)) { + unz_global_info64 ginfo; + int err = unzGetGlobalInfo64(zipfile, &ginfo); + + Cardinal = (err == UNZ_OK) ? ginfo.number_entry : 0; + } else + Cardinal = 0; + + } // endif Cardinal + + return Cardinal; +} // end of Cardinality + +/***********************************************************************/ +/* ZIP GetMaxSize: returns file size estimate in number of lines. */ +/***********************************************************************/ +int TDBZIP::GetMaxSize(PGLOBAL g) +{ + if (MaxSize < 0) + MaxSize = Cardinality(g); + + return MaxSize; +} // end of GetMaxSize + +/***********************************************************************/ +/* ZIP Access Method opening routine. */ +/***********************************************************************/ +bool TDBZIP::OpenDB(PGLOBAL g) +{ + if (Use == USE_OPEN) + // Table already open + return false; + + Use = USE_OPEN; // To be clean + return open(g, zfn); +} // end of OpenDB + +/***********************************************************************/ +/* ReadDB: Data Base read routine for ZIP access method. */ +/***********************************************************************/ +int TDBZIP::ReadDB(PGLOBAL g) +{ + if (nexterr == UNZ_END_OF_LIST_OF_FILE) + return RC_EF; + else if (nexterr != UNZ_OK) { + sprintf(g->Message, "unzGoToNextFile error %d", nexterr); + return RC_FX; + } // endif nexterr + + int err = unzGetCurrentFileInfo64(zipfile, &finfo, fn, + sizeof(fn), NULL, 0, NULL, 0); + + if (err != UNZ_OK) { + sprintf(g->Message, "unzGetCurrentFileInfo64 error %d", err); + return RC_FX; + } // endif err + + nexterr = unzGoToNextFile(zipfile); + return RC_OK; +} // end of ReadDB + +/***********************************************************************/ +/* WriteDB: Data Base write routine for ZIP access method. */ +/***********************************************************************/ +int TDBZIP::WriteDB(PGLOBAL g) +{ + strcpy(g->Message, "ZIP tables are read only"); + return RC_FX; +} // end of WriteDB + +/***********************************************************************/ +/* Data Base delete line routine for ZIP access method. */ +/***********************************************************************/ +int TDBZIP::DeleteDB(PGLOBAL g, int irc) +{ + strcpy(g->Message, "Delete not enabled for ZIP tables"); + return RC_FX; +} // end of DeleteDB + +/***********************************************************************/ +/* Data Base close routine for ZIP access method. */ +/***********************************************************************/ +void TDBZIP::CloseDB(PGLOBAL g) +{ + close(); + Use = USE_READY; // Just to be clean +} // end of CloseDB + +/* ---------------------------- ZIPCOL ------------------------------- */ + +/***********************************************************************/ +/* ZIPCOL public constructor. */ +/***********************************************************************/ +ZIPCOL::ZIPCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PSZ am) + : COLBLK(cdp, tdbp, i) +{ + if (cprec) { + Next = cprec->GetNext(); + cprec->SetNext(this); + } else { + Next = tdbp->GetColumns(); + tdbp->SetColumns(this); + } // endif cprec + + Tdbz = (TDBZIP*)tdbp; + flag = cdp->GetOffset(); +} // end of ZIPCOL constructor + +/***********************************************************************/ +/* ReadColumn: */ +/***********************************************************************/ +void ZIPCOL::ReadColumn(PGLOBAL g) +{ + switch (flag) { + case 1: + Value->SetValue(Tdbz->finfo.compressed_size); + break; + case 2: + Value->SetValue(Tdbz->finfo.uncompressed_size); + break; + case 3: + Value->SetValue((int)Tdbz->finfo.compression_method); + break; + default: + Value->SetValue_psz((PSZ)Tdbz->fn); + } // endswitch flag + +} // end of ReadColumn + +/* -------------------------- End of tabzip -------------------------- */ diff --git a/storage/connect/tabzip.h b/storage/connect/tabzip.h new file mode 100644 index 00000000000..6f1735258e7 --- /dev/null +++ b/storage/connect/tabzip.h @@ -0,0 +1,100 @@ +/*************** tabzip H Declares Source Code File (.H) ***************/ +/* Name: tabzip.h Version 1.0 */ +/* */ +/* (C) Copyright to the author Olivier BERTRAND 2016 */ +/* */ +/* This file contains the ZIP classe declares. */ +/***********************************************************************/ +#include "osutil.h" +#include "block.h" +#include "colblk.h" +#include "xtable.h" +#include "unzip.h" + +typedef class ZIPDEF *PZIPDEF; +typedef class TDBZIP *PTDBZIP; +typedef class ZIPCOL *PZIPCOL; + +/***********************************************************************/ +/* ZIP table: display info about a ZIP file. */ +/***********************************************************************/ +class DllExport ZIPDEF : public DOSDEF { /* Table description */ + friend class TDBZIP; + friend class ZIPFAM; +public: + // Constructor + ZIPDEF(void) {} + + // Implementation + virtual const char *GetType(void) {return "ZIP";} + + // Methods + virtual bool DefineAM(PGLOBAL g, LPCSTR am, int poff); + virtual PTDB GetTable(PGLOBAL g, MODE m); + +protected: + // Members + PSZ target; // The inside file to query +}; // end of ZIPDEF + +/***********************************************************************/ +/* This is the ZIP Access Method class declaration. */ +/***********************************************************************/ +class DllExport TDBZIP : public TDBASE { + friend class ZIPCOL; +public: + // Constructor + TDBZIP(PZIPDEF tdp); + + // Implementation + virtual AMT GetAmType(void) {return TYPE_AM_ZIP;} + + // Methods + virtual PCOL MakeCol(PGLOBAL g, PCOLDEF cdp, PCOL cprec, int n); + virtual int Cardinality(PGLOBAL g); + virtual int GetMaxSize(PGLOBAL g); + virtual int GetRecpos(void) {return 0;} + + // Database routines + virtual bool OpenDB(PGLOBAL g); + virtual int ReadDB(PGLOBAL g); + virtual int WriteDB(PGLOBAL g); + virtual int DeleteDB(PGLOBAL g, int irc); + virtual void CloseDB(PGLOBAL g); + +protected: + bool open(PGLOBAL g, const char *filename); + void close(void); + + // Members + unzFile zipfile; // The ZIP container file + PSZ zfn; // The ZIP file name +//PSZ target; + unz_file_info64 finfo; // The current file info + char fn[FILENAME_MAX]; // The current file name + int nexterr; // Next file error +}; // end of class TDBZIP + +/***********************************************************************/ +/* Class ZIPCOL: ZIP access method column descriptor. */ +/***********************************************************************/ +class DllExport ZIPCOL : public COLBLK { + friend class TDBZIP; +public: + // Constructors + ZIPCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PSZ am = "ZIP"); + + // Implementation + virtual int GetAmType(void) { return TYPE_AM_ZIP; } + + // Methods + virtual void ReadColumn(PGLOBAL g); + +protected: + // Default constructor not to be used + ZIPCOL(void) {} + + // Members + TDBZIP *Tdbz; + int flag; +}; // end of class ZIPCOL diff --git a/storage/connect/unzip.c b/storage/connect/unzip.c new file mode 100644 index 00000000000..909350435a5 --- /dev/null +++ b/storage/connect/unzip.c @@ -0,0 +1,2125 @@ +/* unzip.c -- IO for uncompress .zip files using zlib + Version 1.1, February 14h, 2010 + part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) + + Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + + Modifications of Unzip for Zip64 + Copyright (C) 2007-2008 Even Rouault + + Modifications for Zip64 support on both zip and unzip + Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + + For more info read MiniZip_info.txt + + + ------------------------------------------------------------------------------------ + Decryption code comes from crypt.c by Info-ZIP but has been greatly reduced in terms of + compatibility with older software. The following is from the original crypt.c. + Code woven in by Terry Thorsen 1/2003. + + Copyright (c) 1990-2000 Info-ZIP. All rights reserved. + + See the accompanying file LICENSE, version 2000-Apr-09 or later + (the contents of which are also included in zip.h) for terms of use. + If, for some reason, all these files are missing, the Info-ZIP license + also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html + + crypt.c (full version) by Info-ZIP. Last revised: [see crypt.h] + + The encryption/decryption parts of this source code (as opposed to the + non-echoing password parts) were originally written in Europe. The + whole source package can be freely distributed, including from the USA. + (Prior to January 2000, re-export from the US was a violation of US law.) + + This encryption code is a direct transcription of the algorithm from + Roger Schlafly, described by Phil Katz in the file appnote.txt. This + file (appnote.txt) is distributed with the PKZIP program (even in the + version without encryption capabilities). + + ------------------------------------------------------------------------------------ + + Changes in unzip.c + + 2007-2008 - Even Rouault - Addition of cpl_unzGetCurrentFileZStreamPos + 2007-2008 - Even Rouault - Decoration of symbol names unz* -> cpl_unz* + 2007-2008 - Even Rouault - Remove old C style function prototypes + 2007-2008 - Even Rouault - Add unzip support for ZIP64 + + Copyright (C) 2007-2008 Even Rouault + + + Oct-2009 - Mathias Svensson - Removed cpl_* from symbol names (Even Rouault added them but since this is now moved to a new project (minizip64) I renamed them again). + Oct-2009 - Mathias Svensson - Fixed problem if uncompressed size was > 4G and compressed size was <4G + should only read the compressed/uncompressed size from the Zip64 format if + the size from normal header was 0xFFFFFFFF + Oct-2009 - Mathias Svensson - Applied some bug fixes from paches recived from Gilles Vollant + Oct-2009 - Mathias Svensson - Applied support to unzip files with compression mathod BZIP2 (bzip2 lib is required) + Patch created by Daniel Borca + + Jan-2010 - back to unzip and minizip 1.0 name scheme, with compatibility layer + + Copyright (C) 1998 - 2010 Gilles Vollant, Even Rouault, Mathias Svensson + +*/ + + +#include +#include +#include + +#ifndef NOUNCRYPT + #define NOUNCRYPT +#endif + +#include "zlib.h" +#include "unzip.h" + +#ifdef STDC +# include +# include +# include +#endif +#ifdef NO_ERRNO_H + extern int errno; +#else +# include +#endif + + +#ifndef local +# define local static +#endif +/* compile with -Dlocal if your debugger can't find static symbols */ + + +#ifndef CASESENSITIVITYDEFAULT_NO +# if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES) +# define CASESENSITIVITYDEFAULT_NO +# endif +#endif + + +#ifndef UNZ_BUFSIZE +#define UNZ_BUFSIZE (16384) +#endif + +#ifndef UNZ_MAXFILENAMEINZIP +#define UNZ_MAXFILENAMEINZIP (256) +#endif + +#ifndef ALLOC +# define ALLOC(size) (malloc(size)) +#endif +#ifndef TRYFREE +# define TRYFREE(p) {if (p) free(p);} +#endif + +#define SIZECENTRALDIRITEM (0x2e) +#define SIZEZIPLOCALHEADER (0x1e) + + +const char unz_copyright[] = + " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll"; + +/* unz_file_info_interntal contain internal info about a file in zipfile*/ +typedef struct unz_file_info64_internal_s +{ + ZPOS64_T offset_curfile;/* relative offset of local header 8 bytes */ +} unz_file_info64_internal; + + +/* file_in_zip_read_info_s contain internal information about a file in zipfile, + when reading and decompress it */ +typedef struct +{ + char *read_buffer; /* internal buffer for compressed data */ + z_stream stream; /* zLib stream structure for inflate */ + +#ifdef HAVE_BZIP2 + bz_stream bstream; /* bzLib stream structure for bziped */ +#endif + + ZPOS64_T pos_in_zipfile; /* position in byte on the zipfile, for fseek*/ + uLong stream_initialised; /* flag set if stream structure is initialised*/ + + ZPOS64_T offset_local_extrafield;/* offset of the local extra field */ + uInt size_local_extrafield;/* size of the local extra field */ + ZPOS64_T pos_local_extrafield; /* position in the local extra field in read*/ + ZPOS64_T total_out_64; + + uLong crc32; /* crc32 of all data uncompressed */ + uLong crc32_wait; /* crc32 we must obtain after decompress all */ + ZPOS64_T rest_read_compressed; /* number of byte to be decompressed */ + ZPOS64_T rest_read_uncompressed;/*number of byte to be obtained after decomp*/ + zlib_filefunc64_32_def z_filefunc; + voidpf filestream; /* io structore of the zipfile */ + uLong compression_method; /* compression method (0==store) */ + ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ + int raw; +} file_in_zip64_read_info_s; + + +/* unz64_s contain internal information about the zipfile +*/ +typedef struct +{ + zlib_filefunc64_32_def z_filefunc; + int is64bitOpenFunction; + voidpf filestream; /* io structore of the zipfile */ + unz_global_info64 gi; /* public global information */ + ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ + ZPOS64_T num_file; /* number of the current file in the zipfile*/ + ZPOS64_T pos_in_central_dir; /* pos of the current file in the central dir*/ + ZPOS64_T current_file_ok; /* flag about the usability of the current file*/ + ZPOS64_T central_pos; /* position of the beginning of the central dir*/ + + ZPOS64_T size_central_dir; /* size of the central directory */ + ZPOS64_T offset_central_dir; /* offset of start of central directory with + respect to the starting disk number */ + + unz_file_info64 cur_file_info; /* public info about the current file in zip*/ + unz_file_info64_internal cur_file_info_internal; /* private info about it*/ + file_in_zip64_read_info_s* pfile_in_zip_read; /* structure about the current + file if we are decompressing it */ + int encrypted; + + int isZip64; + +# ifndef NOUNCRYPT + unsigned long keys[3]; /* keys defining the pseudo-random sequence */ + const z_crc_t* pcrc_32_tab; +# endif +} unz64_s; + + +#ifndef NOUNCRYPT +#include "crypt.h" +#endif + +/* =========================================================================== + Read a byte from a gz_stream; update next_in and avail_in. Return EOF + for end of file. + IN assertion: the stream s has been sucessfully opened for reading. +*/ + + +local int unz64local_getByte OF(( + const zlib_filefunc64_32_def* pzlib_filefunc_def, + voidpf filestream, + int *pi)); + +local int unz64local_getByte(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, int *pi) +{ + unsigned char c; + int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1); + if (err==1) + { + *pi = (int)c; + return UNZ_OK; + } + else + { + if (ZERROR64(*pzlib_filefunc_def,filestream)) + return UNZ_ERRNO; + else + return UNZ_EOF; + } +} + + +/* =========================================================================== + Reads a long in LSB order from the given gz_stream. Sets +*/ +local int unz64local_getShort OF(( + const zlib_filefunc64_32_def* pzlib_filefunc_def, + voidpf filestream, + uLong *pX)); + +local int unz64local_getShort (const zlib_filefunc64_32_def* pzlib_filefunc_def, + voidpf filestream, + uLong *pX) +{ + uLong x ; + int i = 0; + int err; + + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x = (uLong)i; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((uLong)i)<<8; + + if (err==UNZ_OK) + *pX = x; + else + *pX = 0; + return err; +} + +local int unz64local_getLong OF(( + const zlib_filefunc64_32_def* pzlib_filefunc_def, + voidpf filestream, + uLong *pX)); + +local int unz64local_getLong (const zlib_filefunc64_32_def* pzlib_filefunc_def, + voidpf filestream, + uLong *pX) +{ + uLong x ; + int i = 0; + int err; + + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x = (uLong)i; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((uLong)i)<<8; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((uLong)i)<<16; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((uLong)i)<<24; + + if (err==UNZ_OK) + *pX = x; + else + *pX = 0; + return err; +} + +local int unz64local_getLong64 OF(( + const zlib_filefunc64_32_def* pzlib_filefunc_def, + voidpf filestream, + ZPOS64_T *pX)); + + +local int unz64local_getLong64 (const zlib_filefunc64_32_def* pzlib_filefunc_def, + voidpf filestream, + ZPOS64_T *pX) +{ + ZPOS64_T x ; + int i = 0; + int err; + + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x = (ZPOS64_T)i; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((ZPOS64_T)i)<<8; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((ZPOS64_T)i)<<16; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((ZPOS64_T)i)<<24; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((ZPOS64_T)i)<<32; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((ZPOS64_T)i)<<40; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((ZPOS64_T)i)<<48; + + if (err==UNZ_OK) + err = unz64local_getByte(pzlib_filefunc_def,filestream,&i); + x |= ((ZPOS64_T)i)<<56; + + if (err==UNZ_OK) + *pX = x; + else + *pX = 0; + return err; +} + +/* My own strcmpi / strcasecmp */ +local int strcmpcasenosensitive_internal (const char* fileName1, const char* fileName2) +{ + for (;;) + { + char c1=*(fileName1++); + char c2=*(fileName2++); + if ((c1>='a') && (c1<='z')) + c1 -= 0x20; + if ((c2>='a') && (c2<='z')) + c2 -= 0x20; + if (c1=='\0') + return ((c2=='\0') ? 0 : -1); + if (c2=='\0') + return 1; + if (c1c2) + return 1; + } +} + + +#ifdef CASESENSITIVITYDEFAULT_NO +#define CASESENSITIVITYDEFAULTVALUE 2 +#else +#define CASESENSITIVITYDEFAULTVALUE 1 +#endif + +#ifndef STRCMPCASENOSENTIVEFUNCTION +#define STRCMPCASENOSENTIVEFUNCTION strcmpcasenosensitive_internal +#endif + +/* + Compare two filename (fileName1,fileName2). + If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) + If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi + or strcasecmp) + If iCaseSenisivity = 0, case sensitivity is defaut of your operating system + (like 1 on Unix, 2 on Windows) + +*/ +extern int ZEXPORT unzStringFileNameCompare (const char* fileName1, + const char* fileName2, + int iCaseSensitivity) + +{ + if (iCaseSensitivity==0) + iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE; + + if (iCaseSensitivity==1) + return strcmp(fileName1,fileName2); + + return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2); +} + +#ifndef BUFREADCOMMENT +#define BUFREADCOMMENT (0x400) +#endif + +/* + Locate the Central directory of a zipfile (at the end, just before + the global comment) +*/ +local ZPOS64_T unz64local_SearchCentralDir OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)); +local ZPOS64_T unz64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream) +{ + unsigned char* buf; + ZPOS64_T uSizeFile; + ZPOS64_T uBackRead; + ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */ + ZPOS64_T uPosFound=0; + + if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0) + return 0; + + + uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream); + + if (uMaxBack>uSizeFile) + uMaxBack = uSizeFile; + + buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); + if (buf==NULL) + return 0; + + uBackRead = 4; + while (uBackReaduMaxBack) + uBackRead = uMaxBack; + else + uBackRead+=BUFREADCOMMENT; + uReadPos = uSizeFile-uBackRead ; + + uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? + (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos); + if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0) + break; + + if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize) + break; + + for (i=(int)uReadSize-3; (i--)>0;) + if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && + ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06)) + { + uPosFound = uReadPos+i; + break; + } + + if (uPosFound!=0) + break; + } + TRYFREE(buf); + return uPosFound; +} + + +/* + Locate the Central directory 64 of a zipfile (at the end, just before + the global comment) +*/ +local ZPOS64_T unz64local_SearchCentralDir64 OF(( + const zlib_filefunc64_32_def* pzlib_filefunc_def, + voidpf filestream)); + +local ZPOS64_T unz64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib_filefunc_def, + voidpf filestream) +{ + unsigned char* buf; + ZPOS64_T uSizeFile; + ZPOS64_T uBackRead; + ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */ + ZPOS64_T uPosFound=0; + uLong uL; + ZPOS64_T relativeOffset; + + if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0) + return 0; + + + uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream); + + if (uMaxBack>uSizeFile) + uMaxBack = uSizeFile; + + buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); + if (buf==NULL) + return 0; + + uBackRead = 4; + while (uBackReaduMaxBack) + uBackRead = uMaxBack; + else + uBackRead+=BUFREADCOMMENT; + uReadPos = uSizeFile-uBackRead ; + + uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? + (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos); + if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0) + break; + + if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize) + break; + + for (i=(int)uReadSize-3; (i--)>0;) + if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && + ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07)) + { + uPosFound = uReadPos+i; + break; + } + + if (uPosFound!=0) + break; + } + TRYFREE(buf); + if (uPosFound == 0) + return 0; + + /* Zip64 end of central directory locator */ + if (ZSEEK64(*pzlib_filefunc_def,filestream, uPosFound,ZLIB_FILEFUNC_SEEK_SET)!=0) + return 0; + + /* the signature, already checked */ + if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) + return 0; + + /* number of the disk with the start of the zip64 end of central directory */ + if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) + return 0; + if (uL != 0) + return 0; + + /* relative offset of the zip64 end of central directory record */ + if (unz64local_getLong64(pzlib_filefunc_def,filestream,&relativeOffset)!=UNZ_OK) + return 0; + + /* total number of disks */ + if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) + return 0; + if (uL != 1) + return 0; + + /* Goto end of central directory record */ + if (ZSEEK64(*pzlib_filefunc_def,filestream, relativeOffset,ZLIB_FILEFUNC_SEEK_SET)!=0) + return 0; + + /* the signature */ + if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK) + return 0; + + if (uL != 0x06064b50) + return 0; + + return relativeOffset; +} + +/* + Open a Zip file. path contain the full pathname (by example, + on a Windows NT computer "c:\\test\\zlib114.zip" or on an Unix computer + "zlib/zlib114.zip". + If the zipfile cannot be opened (file doesn't exist or in not valid), the + return value is NULL. + Else, the return value is a unzFile Handle, usable with other function + of this unzip package. +*/ +local unzFile unzOpenInternal (const void *path, + zlib_filefunc64_32_def* pzlib_filefunc64_32_def, + int is64bitOpenFunction) +{ + unz64_s us; + unz64_s *s; + ZPOS64_T central_pos; + uLong uL; + + uLong number_disk; /* number of the current dist, used for + spaning ZIP, unsupported, always 0*/ + uLong number_disk_with_CD; /* number the the disk with central dir, used + for spaning ZIP, unsupported, always 0*/ + ZPOS64_T number_entry_CD; /* total number of entries in + the central dir + (same than number_entry on nospan) */ + + int err=UNZ_OK; + + if (unz_copyright[0]!=' ') + return NULL; + + us.z_filefunc.zseek32_file = NULL; + us.z_filefunc.ztell32_file = NULL; + if (pzlib_filefunc64_32_def==NULL) + fill_fopen64_filefunc(&us.z_filefunc.zfile_func64); + else + us.z_filefunc = *pzlib_filefunc64_32_def; + us.is64bitOpenFunction = is64bitOpenFunction; + + + + us.filestream = ZOPEN64(us.z_filefunc, + path, + ZLIB_FILEFUNC_MODE_READ | + ZLIB_FILEFUNC_MODE_EXISTING); + if (us.filestream==NULL) + return NULL; + + central_pos = unz64local_SearchCentralDir64(&us.z_filefunc,us.filestream); + if (central_pos) + { + uLong uS; + ZPOS64_T uL64; + + us.isZip64 = 1; + + if (ZSEEK64(us.z_filefunc, us.filestream, + central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0) + err=UNZ_ERRNO; + + /* the signature, already checked */ + if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) + err=UNZ_ERRNO; + + /* size of zip64 end of central directory record */ + if (unz64local_getLong64(&us.z_filefunc, us.filestream,&uL64)!=UNZ_OK) + err=UNZ_ERRNO; + + /* version made by */ + if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK) + err=UNZ_ERRNO; + + /* version needed to extract */ + if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK) + err=UNZ_ERRNO; + + /* number of this disk */ + if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK) + err=UNZ_ERRNO; + + /* number of the disk with the start of the central directory */ + if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK) + err=UNZ_ERRNO; + + /* total number of entries in the central directory on this disk */ + if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.gi.number_entry)!=UNZ_OK) + err=UNZ_ERRNO; + + /* total number of entries in the central directory */ + if (unz64local_getLong64(&us.z_filefunc, us.filestream,&number_entry_CD)!=UNZ_OK) + err=UNZ_ERRNO; + + if ((number_entry_CD!=us.gi.number_entry) || + (number_disk_with_CD!=0) || + (number_disk!=0)) + err=UNZ_BADZIPFILE; + + /* size of the central directory */ + if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.size_central_dir)!=UNZ_OK) + err=UNZ_ERRNO; + + /* offset of start of central directory with respect to the + starting disk number */ + if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.offset_central_dir)!=UNZ_OK) + err=UNZ_ERRNO; + + us.gi.size_comment = 0; + } + else + { + central_pos = unz64local_SearchCentralDir(&us.z_filefunc,us.filestream); + if (central_pos==0) + err=UNZ_ERRNO; + + us.isZip64 = 0; + + if (ZSEEK64(us.z_filefunc, us.filestream, + central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0) + err=UNZ_ERRNO; + + /* the signature, already checked */ + if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) + err=UNZ_ERRNO; + + /* number of this disk */ + if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK) + err=UNZ_ERRNO; + + /* number of the disk with the start of the central directory */ + if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK) + err=UNZ_ERRNO; + + /* total number of entries in the central dir on this disk */ + if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) + err=UNZ_ERRNO; + us.gi.number_entry = uL; + + /* total number of entries in the central dir */ + if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) + err=UNZ_ERRNO; + number_entry_CD = uL; + + if ((number_entry_CD!=us.gi.number_entry) || + (number_disk_with_CD!=0) || + (number_disk!=0)) + err=UNZ_BADZIPFILE; + + /* size of the central directory */ + if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) + err=UNZ_ERRNO; + us.size_central_dir = uL; + + /* offset of start of central directory with respect to the + starting disk number */ + if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) + err=UNZ_ERRNO; + us.offset_central_dir = uL; + + /* zipfile comment length */ + if (unz64local_getShort(&us.z_filefunc, us.filestream,&us.gi.size_comment)!=UNZ_OK) + err=UNZ_ERRNO; + } + + if ((central_pospfile_in_zip_read!=NULL) + unzCloseCurrentFile(file); + + ZCLOSE64(s->z_filefunc, s->filestream); + TRYFREE(s); + return UNZ_OK; +} + + +/* + Write info about the ZipFile in the *pglobal_info structure. + No preparation of the structure is needed + return UNZ_OK if there is no problem. */ +extern int ZEXPORT unzGetGlobalInfo64 (unzFile file, unz_global_info64* pglobal_info) +{ + unz64_s* s; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + *pglobal_info=s->gi; + return UNZ_OK; +} + +extern int ZEXPORT unzGetGlobalInfo (unzFile file, unz_global_info* pglobal_info32) +{ + unz64_s* s; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + /* to do : check if number_entry is not truncated */ + pglobal_info32->number_entry = (uLong)s->gi.number_entry; + pglobal_info32->size_comment = s->gi.size_comment; + return UNZ_OK; +} +/* + Translate date/time from Dos format to tm_unz (readable more easilty) +*/ +local void unz64local_DosDateToTmuDate (ZPOS64_T ulDosDate, tm_unz* ptm) +{ + ZPOS64_T uDate; + uDate = (ZPOS64_T)(ulDosDate>>16); + ptm->tm_mday = (uInt)(uDate&0x1f) ; + ptm->tm_mon = (uInt)((((uDate)&0x1E0)/0x20)-1) ; + ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ; + + ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800); + ptm->tm_min = (uInt) ((ulDosDate&0x7E0)/0x20) ; + ptm->tm_sec = (uInt) (2*(ulDosDate&0x1f)) ; +} + +/* + Get Info about the current file in the zipfile, with internal only info +*/ +local int unz64local_GetCurrentFileInfoInternal OF((unzFile file, + unz_file_info64 *pfile_info, + unz_file_info64_internal + *pfile_info_internal, + char *szFileName, + uLong fileNameBufferSize, + void *extraField, + uLong extraFieldBufferSize, + char *szComment, + uLong commentBufferSize)); + +local int unz64local_GetCurrentFileInfoInternal (unzFile file, + unz_file_info64 *pfile_info, + unz_file_info64_internal + *pfile_info_internal, + char *szFileName, + uLong fileNameBufferSize, + void *extraField, + uLong extraFieldBufferSize, + char *szComment, + uLong commentBufferSize) +{ + unz64_s* s; + unz_file_info64 file_info; + unz_file_info64_internal file_info_internal; + int err=UNZ_OK; + uLong uMagic; + long lSeek=0; + uLong uL; + + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + if (ZSEEK64(s->z_filefunc, s->filestream, + s->pos_in_central_dir+s->byte_before_the_zipfile, + ZLIB_FILEFUNC_SEEK_SET)!=0) + err=UNZ_ERRNO; + + + /* we check the magic */ + if (err==UNZ_OK) + { + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) + err=UNZ_ERRNO; + else if (uMagic!=0x02014b50) + err=UNZ_BADZIPFILE; + } + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version_needed) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.flag) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.compression_method) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.dosDate) != UNZ_OK) + err=UNZ_ERRNO; + + unz64local_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date); + + if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.crc) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK) + err=UNZ_ERRNO; + file_info.compressed_size = uL; + + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK) + err=UNZ_ERRNO; + file_info.uncompressed_size = uL; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_filename) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_extra) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_comment) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.disk_num_start) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.internal_fa) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.external_fa) != UNZ_OK) + err=UNZ_ERRNO; + + // relative offset of local header + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK) + err=UNZ_ERRNO; + file_info_internal.offset_curfile = uL; + + lSeek+=file_info.size_filename; + if ((err==UNZ_OK) && (szFileName!=NULL)) + { + uLong uSizeRead ; + if (file_info.size_filename0) && (fileNameBufferSize>0)) + if (ZREAD64(s->z_filefunc, s->filestream,szFileName,uSizeRead)!=uSizeRead) + err=UNZ_ERRNO; + lSeek -= uSizeRead; + } + + // Read extrafield + if ((err==UNZ_OK) && (extraField!=NULL)) + { + ZPOS64_T uSizeRead ; + if (file_info.size_file_extraz_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) + lSeek=0; + else + err=UNZ_ERRNO; + } + + if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0)) + if (ZREAD64(s->z_filefunc, s->filestream,extraField,(uLong)uSizeRead)!=uSizeRead) + err=UNZ_ERRNO; + + lSeek += file_info.size_file_extra - (uLong)uSizeRead; + } + else + lSeek += file_info.size_file_extra; + + + if ((err==UNZ_OK) && (file_info.size_file_extra != 0)) + { + uLong acc = 0; + + // since lSeek now points to after the extra field we need to move back + lSeek -= file_info.size_file_extra; + + if (lSeek!=0) + { + if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) + lSeek=0; + else + err=UNZ_ERRNO; + } + + while(acc < file_info.size_file_extra) + { + uLong headerId; + uLong dataSize; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&headerId) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&dataSize) != UNZ_OK) + err=UNZ_ERRNO; + + /* ZIP64 extra fields */ + if (headerId == 0x0001) + { + uLong uL; + + if(file_info.uncompressed_size == MAXU32) + { + if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK) + err=UNZ_ERRNO; + } + + if(file_info.compressed_size == MAXU32) + { + if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK) + err=UNZ_ERRNO; + } + + if(file_info_internal.offset_curfile == MAXU32) + { + /* Relative Header offset */ + if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK) + err=UNZ_ERRNO; + } + + if(file_info.disk_num_start == MAXU32) + { + /* Disk Start Number */ + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK) + err=UNZ_ERRNO; + } + + } + else + { + if (ZSEEK64(s->z_filefunc, s->filestream,dataSize,ZLIB_FILEFUNC_SEEK_CUR)!=0) + err=UNZ_ERRNO; + } + + acc += 2 + 2 + dataSize; + } + } + + if ((err==UNZ_OK) && (szComment!=NULL)) + { + uLong uSizeRead ; + if (file_info.size_file_commentz_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) + lSeek=0; + else + err=UNZ_ERRNO; + } + + if ((file_info.size_file_comment>0) && (commentBufferSize>0)) + if (ZREAD64(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead) + err=UNZ_ERRNO; + lSeek+=file_info.size_file_comment - uSizeRead; + } + else + lSeek+=file_info.size_file_comment; + + + if ((err==UNZ_OK) && (pfile_info!=NULL)) + *pfile_info=file_info; + + if ((err==UNZ_OK) && (pfile_info_internal!=NULL)) + *pfile_info_internal=file_info_internal; + + return err; +} + + + +/* + Write info about the ZipFile in the *pglobal_info structure. + No preparation of the structure is needed + return UNZ_OK if there is no problem. +*/ +extern int ZEXPORT unzGetCurrentFileInfo64 (unzFile file, + unz_file_info64 * pfile_info, + char * szFileName, uLong fileNameBufferSize, + void *extraField, uLong extraFieldBufferSize, + char* szComment, uLong commentBufferSize) +{ + return unz64local_GetCurrentFileInfoInternal(file,pfile_info,NULL, + szFileName,fileNameBufferSize, + extraField,extraFieldBufferSize, + szComment,commentBufferSize); +} + +extern int ZEXPORT unzGetCurrentFileInfo (unzFile file, + unz_file_info * pfile_info, + char * szFileName, uLong fileNameBufferSize, + void *extraField, uLong extraFieldBufferSize, + char* szComment, uLong commentBufferSize) +{ + int err; + unz_file_info64 file_info64; + err = unz64local_GetCurrentFileInfoInternal(file,&file_info64,NULL, + szFileName,fileNameBufferSize, + extraField,extraFieldBufferSize, + szComment,commentBufferSize); + if ((err==UNZ_OK) && (pfile_info != NULL)) + { + pfile_info->version = file_info64.version; + pfile_info->version_needed = file_info64.version_needed; + pfile_info->flag = file_info64.flag; + pfile_info->compression_method = file_info64.compression_method; + pfile_info->dosDate = file_info64.dosDate; + pfile_info->crc = file_info64.crc; + + pfile_info->size_filename = file_info64.size_filename; + pfile_info->size_file_extra = file_info64.size_file_extra; + pfile_info->size_file_comment = file_info64.size_file_comment; + + pfile_info->disk_num_start = file_info64.disk_num_start; + pfile_info->internal_fa = file_info64.internal_fa; + pfile_info->external_fa = file_info64.external_fa; + + pfile_info->tmu_date = file_info64.tmu_date, + + + pfile_info->compressed_size = (uLong)file_info64.compressed_size; + pfile_info->uncompressed_size = (uLong)file_info64.uncompressed_size; + + } + return err; +} +/* + Set the current file of the zipfile to the first file. + return UNZ_OK if there is no problem +*/ +extern int ZEXPORT unzGoToFirstFile (unzFile file) +{ + int err=UNZ_OK; + unz64_s* s; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + s->pos_in_central_dir=s->offset_central_dir; + s->num_file=0; + err=unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info, + &s->cur_file_info_internal, + NULL,0,NULL,0,NULL,0); + s->current_file_ok = (err == UNZ_OK); + return err; +} + +/* + Set the current file of the zipfile to the next file. + return UNZ_OK if there is no problem + return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. +*/ +extern int ZEXPORT unzGoToNextFile (unzFile file) +{ + unz64_s* s; + int err; + + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + if (!s->current_file_ok) + return UNZ_END_OF_LIST_OF_FILE; + if (s->gi.number_entry != 0xffff) /* 2^16 files overflow hack */ + if (s->num_file+1==s->gi.number_entry) + return UNZ_END_OF_LIST_OF_FILE; + + s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename + + s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ; + s->num_file++; + err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info, + &s->cur_file_info_internal, + NULL,0,NULL,0,NULL,0); + s->current_file_ok = (err == UNZ_OK); + return err; +} + + +/* + Try locate the file szFileName in the zipfile. + For the iCaseSensitivity signification, see unzStringFileNameCompare + + return value : + UNZ_OK if the file is found. It becomes the current file. + UNZ_END_OF_LIST_OF_FILE if the file is not found +*/ +extern int ZEXPORT unzLocateFile (unzFile file, const char *szFileName, int iCaseSensitivity) +{ + unz64_s* s; + int err; + + /* We remember the 'current' position in the file so that we can jump + * back there if we fail. + */ + unz_file_info64 cur_file_infoSaved; + unz_file_info64_internal cur_file_info_internalSaved; + ZPOS64_T num_fileSaved; + ZPOS64_T pos_in_central_dirSaved; + + + if (file==NULL) + return UNZ_PARAMERROR; + + if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP) + return UNZ_PARAMERROR; + + s=(unz64_s*)file; + if (!s->current_file_ok) + return UNZ_END_OF_LIST_OF_FILE; + + /* Save the current state */ + num_fileSaved = s->num_file; + pos_in_central_dirSaved = s->pos_in_central_dir; + cur_file_infoSaved = s->cur_file_info; + cur_file_info_internalSaved = s->cur_file_info_internal; + + err = unzGoToFirstFile(file); + + while (err == UNZ_OK) + { + char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1]; + err = unzGetCurrentFileInfo64(file,NULL, + szCurrentFileName,sizeof(szCurrentFileName)-1, + NULL,0,NULL,0); + if (err == UNZ_OK) + { + if (unzStringFileNameCompare(szCurrentFileName, + szFileName,iCaseSensitivity)==0) + return UNZ_OK; + err = unzGoToNextFile(file); + } + } + + /* We failed, so restore the state of the 'current file' to where we + * were. + */ + s->num_file = num_fileSaved ; + s->pos_in_central_dir = pos_in_central_dirSaved ; + s->cur_file_info = cur_file_infoSaved; + s->cur_file_info_internal = cur_file_info_internalSaved; + return err; +} + + +/* +/////////////////////////////////////////// +// Contributed by Ryan Haksi (mailto://cryogen@infoserve.net) +// I need random access +// +// Further optimization could be realized by adding an ability +// to cache the directory in memory. The goal being a single +// comprehensive file read to put the file I need in a memory. +*/ + +/* +typedef struct unz_file_pos_s +{ + ZPOS64_T pos_in_zip_directory; // offset in file + ZPOS64_T num_of_file; // # of file +} unz_file_pos; +*/ + +extern int ZEXPORT unzGetFilePos64(unzFile file, unz64_file_pos* file_pos) +{ + unz64_s* s; + + if (file==NULL || file_pos==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + if (!s->current_file_ok) + return UNZ_END_OF_LIST_OF_FILE; + + file_pos->pos_in_zip_directory = s->pos_in_central_dir; + file_pos->num_of_file = s->num_file; + + return UNZ_OK; +} + +extern int ZEXPORT unzGetFilePos( + unzFile file, + unz_file_pos* file_pos) +{ + unz64_file_pos file_pos64; + int err = unzGetFilePos64(file,&file_pos64); + if (err==UNZ_OK) + { + file_pos->pos_in_zip_directory = (uLong)file_pos64.pos_in_zip_directory; + file_pos->num_of_file = (uLong)file_pos64.num_of_file; + } + return err; +} + +extern int ZEXPORT unzGoToFilePos64(unzFile file, const unz64_file_pos* file_pos) +{ + unz64_s* s; + int err; + + if (file==NULL || file_pos==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + + /* jump to the right spot */ + s->pos_in_central_dir = file_pos->pos_in_zip_directory; + s->num_file = file_pos->num_of_file; + + /* set the current file */ + err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info, + &s->cur_file_info_internal, + NULL,0,NULL,0,NULL,0); + /* return results */ + s->current_file_ok = (err == UNZ_OK); + return err; +} + +extern int ZEXPORT unzGoToFilePos( + unzFile file, + unz_file_pos* file_pos) +{ + unz64_file_pos file_pos64; + if (file_pos == NULL) + return UNZ_PARAMERROR; + + file_pos64.pos_in_zip_directory = file_pos->pos_in_zip_directory; + file_pos64.num_of_file = file_pos->num_of_file; + return unzGoToFilePos64(file,&file_pos64); +} + +/* +// Unzip Helper Functions - should be here? +/////////////////////////////////////////// +*/ + +/* + Read the local header of the current zipfile + Check the coherency of the local header and info in the end of central + directory about this file + store in *piSizeVar the size of extra info in local header + (filename and size of extra field data) +*/ +local int unz64local_CheckCurrentFileCoherencyHeader (unz64_s* s, uInt* piSizeVar, + ZPOS64_T * poffset_local_extrafield, + uInt * psize_local_extrafield) +{ + uLong uMagic,uData,uFlags; + uLong size_filename; + uLong size_extra_field; + int err=UNZ_OK; + + *piSizeVar = 0; + *poffset_local_extrafield = 0; + *psize_local_extrafield = 0; + + if (ZSEEK64(s->z_filefunc, s->filestream,s->cur_file_info_internal.offset_curfile + + s->byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET)!=0) + return UNZ_ERRNO; + + + if (err==UNZ_OK) + { + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) + err=UNZ_ERRNO; + else if (uMagic!=0x04034b50) + err=UNZ_BADZIPFILE; + } + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) + err=UNZ_ERRNO; +/* + else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion)) + err=UNZ_BADZIPFILE; +*/ + if (unz64local_getShort(&s->z_filefunc, s->filestream,&uFlags) != UNZ_OK) + err=UNZ_ERRNO; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) + err=UNZ_ERRNO; + else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method)) + err=UNZ_BADZIPFILE; + + if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) && +/* #ifdef HAVE_BZIP2 */ + (s->cur_file_info.compression_method!=Z_BZIP2ED) && +/* #endif */ + (s->cur_file_info.compression_method!=Z_DEFLATED)) + err=UNZ_BADZIPFILE; + + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* date/time */ + err=UNZ_ERRNO; + + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* crc */ + err=UNZ_ERRNO; + else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && ((uFlags & 8)==0)) + err=UNZ_BADZIPFILE; + + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size compr */ + err=UNZ_ERRNO; + else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && ((uFlags & 8)==0)) + err=UNZ_BADZIPFILE; + + if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size uncompr */ + err=UNZ_ERRNO; + else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && ((uFlags & 8)==0)) + err=UNZ_BADZIPFILE; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_filename) != UNZ_OK) + err=UNZ_ERRNO; + else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename)) + err=UNZ_BADZIPFILE; + + *piSizeVar += (uInt)size_filename; + + if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_extra_field) != UNZ_OK) + err=UNZ_ERRNO; + *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile + + SIZEZIPLOCALHEADER + size_filename; + *psize_local_extrafield = (uInt)size_extra_field; + + *piSizeVar += (uInt)size_extra_field; + + return err; +} + +/* + Open for reading data the current file in the zipfile. + If there is no error and the file is opened, the return value is UNZ_OK. +*/ +extern int ZEXPORT unzOpenCurrentFile3 (unzFile file, int* method, + int* level, int raw, const char* password) +{ + int err=UNZ_OK; + uInt iSizeVar; + unz64_s* s; + file_in_zip64_read_info_s* pfile_in_zip_read_info; + ZPOS64_T offset_local_extrafield; /* offset of the local extra field */ + uInt size_local_extrafield; /* size of the local extra field */ +# ifndef NOUNCRYPT + char source[12]; +# else + if (password != NULL) + return UNZ_PARAMERROR; +# endif + + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + if (!s->current_file_ok) + return UNZ_PARAMERROR; + + if (s->pfile_in_zip_read != NULL) + unzCloseCurrentFile(file); + + if (unz64local_CheckCurrentFileCoherencyHeader(s,&iSizeVar, &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK) + return UNZ_BADZIPFILE; + + pfile_in_zip_read_info = (file_in_zip64_read_info_s*)ALLOC(sizeof(file_in_zip64_read_info_s)); + if (pfile_in_zip_read_info==NULL) + return UNZ_INTERNALERROR; + + pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE); + pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield; + pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield; + pfile_in_zip_read_info->pos_local_extrafield=0; + pfile_in_zip_read_info->raw=raw; + + if (pfile_in_zip_read_info->read_buffer==NULL) + { + TRYFREE(pfile_in_zip_read_info); + return UNZ_INTERNALERROR; + } + + pfile_in_zip_read_info->stream_initialised=0; + + if (method!=NULL) + *method = (int)s->cur_file_info.compression_method; + + if (level!=NULL) + { + *level = 6; + switch (s->cur_file_info.flag & 0x06) + { + case 6 : *level = 1; break; + case 4 : *level = 2; break; + case 2 : *level = 9; break; + } + } + + if ((s->cur_file_info.compression_method!=0) && +/* #ifdef HAVE_BZIP2 */ + (s->cur_file_info.compression_method!=Z_BZIP2ED) && +/* #endif */ + (s->cur_file_info.compression_method!=Z_DEFLATED)) + + err=UNZ_BADZIPFILE; + + pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc; + pfile_in_zip_read_info->crc32=0; + pfile_in_zip_read_info->total_out_64=0; + pfile_in_zip_read_info->compression_method = s->cur_file_info.compression_method; + pfile_in_zip_read_info->filestream=s->filestream; + pfile_in_zip_read_info->z_filefunc=s->z_filefunc; + pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile; + + pfile_in_zip_read_info->stream.total_out = 0; + + if ((s->cur_file_info.compression_method==Z_BZIP2ED) && (!raw)) + { +#ifdef HAVE_BZIP2 + pfile_in_zip_read_info->bstream.bzalloc = (void *(*) (void *, int, int))0; + pfile_in_zip_read_info->bstream.bzfree = (free_func)0; + pfile_in_zip_read_info->bstream.opaque = (voidpf)0; + pfile_in_zip_read_info->bstream.state = (voidpf)0; + + pfile_in_zip_read_info->stream.zalloc = (alloc_func)0; + pfile_in_zip_read_info->stream.zfree = (free_func)0; + pfile_in_zip_read_info->stream.opaque = (voidpf)0; + pfile_in_zip_read_info->stream.next_in = (voidpf)0; + pfile_in_zip_read_info->stream.avail_in = 0; + + err=BZ2_bzDecompressInit(&pfile_in_zip_read_info->bstream, 0, 0); + if (err == Z_OK) + pfile_in_zip_read_info->stream_initialised=Z_BZIP2ED; + else + { + TRYFREE(pfile_in_zip_read_info); + return err; + } +#else + pfile_in_zip_read_info->raw=1; +#endif + } + else if ((s->cur_file_info.compression_method==Z_DEFLATED) && (!raw)) + { + pfile_in_zip_read_info->stream.zalloc = (alloc_func)0; + pfile_in_zip_read_info->stream.zfree = (free_func)0; + pfile_in_zip_read_info->stream.opaque = (voidpf)0; + pfile_in_zip_read_info->stream.next_in = 0; + pfile_in_zip_read_info->stream.avail_in = 0; + + err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS); + if (err == Z_OK) + pfile_in_zip_read_info->stream_initialised=Z_DEFLATED; + else + { + TRYFREE(pfile_in_zip_read_info); + return err; + } + /* windowBits is passed < 0 to tell that there is no zlib header. + * Note that in this case inflate *requires* an extra "dummy" byte + * after the compressed stream in order to complete decompression and + * return Z_STREAM_END. + * In unzip, i don't wait absolutely Z_STREAM_END because I known the + * size of both compressed and uncompressed data + */ + } + pfile_in_zip_read_info->rest_read_compressed = + s->cur_file_info.compressed_size ; + pfile_in_zip_read_info->rest_read_uncompressed = + s->cur_file_info.uncompressed_size ; + + + pfile_in_zip_read_info->pos_in_zipfile = + s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + + iSizeVar; + + pfile_in_zip_read_info->stream.avail_in = (uInt)0; + + s->pfile_in_zip_read = pfile_in_zip_read_info; + s->encrypted = 0; + +# ifndef NOUNCRYPT + if (password != NULL) + { + int i; + s->pcrc_32_tab = get_crc_table(); + init_keys(password,s->keys,s->pcrc_32_tab); + if (ZSEEK64(s->z_filefunc, s->filestream, + s->pfile_in_zip_read->pos_in_zipfile + + s->pfile_in_zip_read->byte_before_the_zipfile, + SEEK_SET)!=0) + return UNZ_INTERNALERROR; + if(ZREAD64(s->z_filefunc, s->filestream,source, 12)<12) + return UNZ_INTERNALERROR; + + for (i = 0; i<12; i++) + zdecode(s->keys,s->pcrc_32_tab,source[i]); + + s->pfile_in_zip_read->pos_in_zipfile+=12; + s->encrypted=1; + } +# endif + + + return UNZ_OK; +} + +extern int ZEXPORT unzOpenCurrentFile (unzFile file) +{ + return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL); +} + +extern int ZEXPORT unzOpenCurrentFilePassword (unzFile file, const char* password) +{ + return unzOpenCurrentFile3(file, NULL, NULL, 0, password); +} + +extern int ZEXPORT unzOpenCurrentFile2 (unzFile file, int* method, int* level, int raw) +{ + return unzOpenCurrentFile3(file, method, level, raw, NULL); +} + +/** Addition for GDAL : START */ + +extern ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64( unzFile file) +{ + unz64_s* s; + file_in_zip64_read_info_s* pfile_in_zip_read_info; + s=(unz64_s*)file; + if (file==NULL) + return 0; //UNZ_PARAMERROR; + pfile_in_zip_read_info=s->pfile_in_zip_read; + if (pfile_in_zip_read_info==NULL) + return 0; //UNZ_PARAMERROR; + return pfile_in_zip_read_info->pos_in_zipfile + + pfile_in_zip_read_info->byte_before_the_zipfile; +} + +/** Addition for GDAL : END */ + +/* + Read bytes from the current file. + buf contain buffer where data must be copied + len the size of buf. + + return the number of byte copied if somes bytes are copied + return 0 if the end of file was reached + return <0 with error code if there is an error + (UNZ_ERRNO for IO error, or zLib error for uncompress error) +*/ +extern int ZEXPORT unzReadCurrentFile (unzFile file, voidp buf, unsigned len) +{ + int err=UNZ_OK; + uInt iRead = 0; + unz64_s* s; + file_in_zip64_read_info_s* pfile_in_zip_read_info; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + pfile_in_zip_read_info=s->pfile_in_zip_read; + + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; + + + if (pfile_in_zip_read_info->read_buffer == NULL) + return UNZ_END_OF_LIST_OF_FILE; + if (len==0) + return 0; + + pfile_in_zip_read_info->stream.next_out = (Bytef*)buf; + + pfile_in_zip_read_info->stream.avail_out = (uInt)len; + + if ((len>pfile_in_zip_read_info->rest_read_uncompressed) && + (!(pfile_in_zip_read_info->raw))) + pfile_in_zip_read_info->stream.avail_out = + (uInt)pfile_in_zip_read_info->rest_read_uncompressed; + + if ((len>pfile_in_zip_read_info->rest_read_compressed+ + pfile_in_zip_read_info->stream.avail_in) && + (pfile_in_zip_read_info->raw)) + pfile_in_zip_read_info->stream.avail_out = + (uInt)pfile_in_zip_read_info->rest_read_compressed+ + pfile_in_zip_read_info->stream.avail_in; + + while (pfile_in_zip_read_info->stream.avail_out>0) + { + if ((pfile_in_zip_read_info->stream.avail_in==0) && + (pfile_in_zip_read_info->rest_read_compressed>0)) + { + uInt uReadThis = UNZ_BUFSIZE; + if (pfile_in_zip_read_info->rest_read_compressedrest_read_compressed; + if (uReadThis == 0) + return UNZ_EOF; + if (ZSEEK64(pfile_in_zip_read_info->z_filefunc, + pfile_in_zip_read_info->filestream, + pfile_in_zip_read_info->pos_in_zipfile + + pfile_in_zip_read_info->byte_before_the_zipfile, + ZLIB_FILEFUNC_SEEK_SET)!=0) + return UNZ_ERRNO; + if (ZREAD64(pfile_in_zip_read_info->z_filefunc, + pfile_in_zip_read_info->filestream, + pfile_in_zip_read_info->read_buffer, + uReadThis)!=uReadThis) + return UNZ_ERRNO; + + +# ifndef NOUNCRYPT + if(s->encrypted) + { + uInt i; + for(i=0;iread_buffer[i] = + zdecode(s->keys,s->pcrc_32_tab, + pfile_in_zip_read_info->read_buffer[i]); + } +# endif + + + pfile_in_zip_read_info->pos_in_zipfile += uReadThis; + + pfile_in_zip_read_info->rest_read_compressed-=uReadThis; + + pfile_in_zip_read_info->stream.next_in = + (Bytef*)pfile_in_zip_read_info->read_buffer; + pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis; + } + + if ((pfile_in_zip_read_info->compression_method==0) || (pfile_in_zip_read_info->raw)) + { + uInt uDoCopy,i ; + + if ((pfile_in_zip_read_info->stream.avail_in == 0) && + (pfile_in_zip_read_info->rest_read_compressed == 0)) + return (iRead==0) ? UNZ_EOF : iRead; + + if (pfile_in_zip_read_info->stream.avail_out < + pfile_in_zip_read_info->stream.avail_in) + uDoCopy = pfile_in_zip_read_info->stream.avail_out ; + else + uDoCopy = pfile_in_zip_read_info->stream.avail_in ; + + for (i=0;istream.next_out+i) = + *(pfile_in_zip_read_info->stream.next_in+i); + + pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uDoCopy; + + pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32, + pfile_in_zip_read_info->stream.next_out, + uDoCopy); + pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy; + pfile_in_zip_read_info->stream.avail_in -= uDoCopy; + pfile_in_zip_read_info->stream.avail_out -= uDoCopy; + pfile_in_zip_read_info->stream.next_out += uDoCopy; + pfile_in_zip_read_info->stream.next_in += uDoCopy; + pfile_in_zip_read_info->stream.total_out += uDoCopy; + iRead += uDoCopy; + } + else if (pfile_in_zip_read_info->compression_method==Z_BZIP2ED) + { +#ifdef HAVE_BZIP2 + uLong uTotalOutBefore,uTotalOutAfter; + const Bytef *bufBefore; + uLong uOutThis; + + pfile_in_zip_read_info->bstream.next_in = (char*)pfile_in_zip_read_info->stream.next_in; + pfile_in_zip_read_info->bstream.avail_in = pfile_in_zip_read_info->stream.avail_in; + pfile_in_zip_read_info->bstream.total_in_lo32 = pfile_in_zip_read_info->stream.total_in; + pfile_in_zip_read_info->bstream.total_in_hi32 = 0; + pfile_in_zip_read_info->bstream.next_out = (char*)pfile_in_zip_read_info->stream.next_out; + pfile_in_zip_read_info->bstream.avail_out = pfile_in_zip_read_info->stream.avail_out; + pfile_in_zip_read_info->bstream.total_out_lo32 = pfile_in_zip_read_info->stream.total_out; + pfile_in_zip_read_info->bstream.total_out_hi32 = 0; + + uTotalOutBefore = pfile_in_zip_read_info->bstream.total_out_lo32; + bufBefore = (const Bytef *)pfile_in_zip_read_info->bstream.next_out; + + err=BZ2_bzDecompress(&pfile_in_zip_read_info->bstream); + + uTotalOutAfter = pfile_in_zip_read_info->bstream.total_out_lo32; + uOutThis = uTotalOutAfter-uTotalOutBefore; + + pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis; + + pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,bufBefore, (uInt)(uOutThis)); + pfile_in_zip_read_info->rest_read_uncompressed -= uOutThis; + iRead += (uInt)(uTotalOutAfter - uTotalOutBefore); + + pfile_in_zip_read_info->stream.next_in = (Bytef*)pfile_in_zip_read_info->bstream.next_in; + pfile_in_zip_read_info->stream.avail_in = pfile_in_zip_read_info->bstream.avail_in; + pfile_in_zip_read_info->stream.total_in = pfile_in_zip_read_info->bstream.total_in_lo32; + pfile_in_zip_read_info->stream.next_out = (Bytef*)pfile_in_zip_read_info->bstream.next_out; + pfile_in_zip_read_info->stream.avail_out = pfile_in_zip_read_info->bstream.avail_out; + pfile_in_zip_read_info->stream.total_out = pfile_in_zip_read_info->bstream.total_out_lo32; + + if (err==BZ_STREAM_END) + return (iRead==0) ? UNZ_EOF : iRead; + if (err!=BZ_OK) + break; +#endif + } // end Z_BZIP2ED + else + { + ZPOS64_T uTotalOutBefore,uTotalOutAfter; + const Bytef *bufBefore; + ZPOS64_T uOutThis; + int flush=Z_SYNC_FLUSH; + + uTotalOutBefore = pfile_in_zip_read_info->stream.total_out; + bufBefore = pfile_in_zip_read_info->stream.next_out; + + /* + if ((pfile_in_zip_read_info->rest_read_uncompressed == + pfile_in_zip_read_info->stream.avail_out) && + (pfile_in_zip_read_info->rest_read_compressed == 0)) + flush = Z_FINISH; + */ + err=inflate(&pfile_in_zip_read_info->stream,flush); + + if ((err>=0) && (pfile_in_zip_read_info->stream.msg!=NULL)) + err = Z_DATA_ERROR; + + uTotalOutAfter = pfile_in_zip_read_info->stream.total_out; + uOutThis = uTotalOutAfter-uTotalOutBefore; + + pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis; + + pfile_in_zip_read_info->crc32 = + crc32(pfile_in_zip_read_info->crc32,bufBefore, + (uInt)(uOutThis)); + + pfile_in_zip_read_info->rest_read_uncompressed -= + uOutThis; + + iRead += (uInt)(uTotalOutAfter - uTotalOutBefore); + + if (err==Z_STREAM_END) + return (iRead==0) ? UNZ_EOF : iRead; + if (err!=Z_OK) + break; + } + } + + if (err==Z_OK) + return iRead; + return err; +} + + +/* + Give the current position in uncompressed data +*/ +extern z_off_t ZEXPORT unztell (unzFile file) +{ + unz64_s* s; + file_in_zip64_read_info_s* pfile_in_zip_read_info; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + pfile_in_zip_read_info=s->pfile_in_zip_read; + + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; + + return (z_off_t)pfile_in_zip_read_info->stream.total_out; +} + +extern ZPOS64_T ZEXPORT unztell64 (unzFile file) +{ + + unz64_s* s; + file_in_zip64_read_info_s* pfile_in_zip_read_info; + if (file==NULL) + return (ZPOS64_T)-1; + s=(unz64_s*)file; + pfile_in_zip_read_info=s->pfile_in_zip_read; + + if (pfile_in_zip_read_info==NULL) + return (ZPOS64_T)-1; + + return pfile_in_zip_read_info->total_out_64; +} + + +/* + return 1 if the end of file was reached, 0 elsewhere +*/ +extern int ZEXPORT unzeof (unzFile file) +{ + unz64_s* s; + file_in_zip64_read_info_s* pfile_in_zip_read_info; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + pfile_in_zip_read_info=s->pfile_in_zip_read; + + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; + + if (pfile_in_zip_read_info->rest_read_uncompressed == 0) + return 1; + else + return 0; +} + + + +/* +Read extra field from the current file (opened by unzOpenCurrentFile) +This is the local-header version of the extra field (sometimes, there is +more info in the local-header version than in the central-header) + + if buf==NULL, it return the size of the local extra field that can be read + + if buf!=NULL, len is the size of the buffer, the extra header is copied in + buf. + the return value is the number of bytes copied in buf, or (if <0) + the error code +*/ +extern int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned len) +{ + unz64_s* s; + file_in_zip64_read_info_s* pfile_in_zip_read_info; + uInt read_now; + ZPOS64_T size_to_read; + + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + pfile_in_zip_read_info=s->pfile_in_zip_read; + + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; + + size_to_read = (pfile_in_zip_read_info->size_local_extrafield - + pfile_in_zip_read_info->pos_local_extrafield); + + if (buf==NULL) + return (int)size_to_read; + + if (len>size_to_read) + read_now = (uInt)size_to_read; + else + read_now = (uInt)len ; + + if (read_now==0) + return 0; + + if (ZSEEK64(pfile_in_zip_read_info->z_filefunc, + pfile_in_zip_read_info->filestream, + pfile_in_zip_read_info->offset_local_extrafield + + pfile_in_zip_read_info->pos_local_extrafield, + ZLIB_FILEFUNC_SEEK_SET)!=0) + return UNZ_ERRNO; + + if (ZREAD64(pfile_in_zip_read_info->z_filefunc, + pfile_in_zip_read_info->filestream, + buf,read_now)!=read_now) + return UNZ_ERRNO; + + return (int)read_now; +} + +/* + Close the file in zip opened with unzOpenCurrentFile + Return UNZ_CRCERROR if all the file was read but the CRC is not good +*/ +extern int ZEXPORT unzCloseCurrentFile (unzFile file) +{ + int err=UNZ_OK; + + unz64_s* s; + file_in_zip64_read_info_s* pfile_in_zip_read_info; + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + pfile_in_zip_read_info=s->pfile_in_zip_read; + + if (pfile_in_zip_read_info==NULL) + return UNZ_PARAMERROR; + + + if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) && + (!pfile_in_zip_read_info->raw)) + { + if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait) + err=UNZ_CRCERROR; + } + + + TRYFREE(pfile_in_zip_read_info->read_buffer); + pfile_in_zip_read_info->read_buffer = NULL; + if (pfile_in_zip_read_info->stream_initialised == Z_DEFLATED) + inflateEnd(&pfile_in_zip_read_info->stream); +#ifdef HAVE_BZIP2 + else if (pfile_in_zip_read_info->stream_initialised == Z_BZIP2ED) + BZ2_bzDecompressEnd(&pfile_in_zip_read_info->bstream); +#endif + + + pfile_in_zip_read_info->stream_initialised = 0; + TRYFREE(pfile_in_zip_read_info); + + s->pfile_in_zip_read=NULL; + + return err; +} + + +/* + Get the global comment string of the ZipFile, in the szComment buffer. + uSizeBuf is the size of the szComment buffer. + return the number of byte copied or an error code <0 +*/ +extern int ZEXPORT unzGetGlobalComment (unzFile file, char * szComment, uLong uSizeBuf) +{ + unz64_s* s; + uLong uReadThis ; + if (file==NULL) + return (int)UNZ_PARAMERROR; + s=(unz64_s*)file; + + uReadThis = uSizeBuf; + if (uReadThis>s->gi.size_comment) + uReadThis = s->gi.size_comment; + + if (ZSEEK64(s->z_filefunc,s->filestream,s->central_pos+22,ZLIB_FILEFUNC_SEEK_SET)!=0) + return UNZ_ERRNO; + + if (uReadThis>0) + { + *szComment='\0'; + if (ZREAD64(s->z_filefunc,s->filestream,szComment,uReadThis)!=uReadThis) + return UNZ_ERRNO; + } + + if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment)) + *(szComment+s->gi.size_comment)='\0'; + return (int)uReadThis; +} + +/* Additions by RX '2004 */ +extern ZPOS64_T ZEXPORT unzGetOffset64(unzFile file) +{ + unz64_s* s; + + if (file==NULL) + return 0; //UNZ_PARAMERROR; + s=(unz64_s*)file; + if (!s->current_file_ok) + return 0; + if (s->gi.number_entry != 0 && s->gi.number_entry != 0xffff) + if (s->num_file==s->gi.number_entry) + return 0; + return s->pos_in_central_dir; +} + +extern uLong ZEXPORT unzGetOffset (unzFile file) +{ + ZPOS64_T offset64; + + if (file==NULL) + return 0; //UNZ_PARAMERROR; + offset64 = unzGetOffset64(file); + return (uLong)offset64; +} + +extern int ZEXPORT unzSetOffset64(unzFile file, ZPOS64_T pos) +{ + unz64_s* s; + int err; + + if (file==NULL) + return UNZ_PARAMERROR; + s=(unz64_s*)file; + + s->pos_in_central_dir = pos; + s->num_file = s->gi.number_entry; /* hack */ + err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info, + &s->cur_file_info_internal, + NULL,0,NULL,0,NULL,0); + s->current_file_ok = (err == UNZ_OK); + return err; +} + +extern int ZEXPORT unzSetOffset (unzFile file, uLong pos) +{ + return unzSetOffset64(file,pos); +} diff --git a/storage/connect/unzip.h b/storage/connect/unzip.h new file mode 100644 index 00000000000..2104e391507 --- /dev/null +++ b/storage/connect/unzip.h @@ -0,0 +1,437 @@ +/* unzip.h -- IO for uncompress .zip files using zlib + Version 1.1, February 14h, 2010 + part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) + + Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + + Modifications of Unzip for Zip64 + Copyright (C) 2007-2008 Even Rouault + + Modifications for Zip64 support on both zip and unzip + Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + + For more info read MiniZip_info.txt + + --------------------------------------------------------------------------------- + + Condition of use and distribution are the same than zlib : + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + --------------------------------------------------------------------------------- + + Changes + + See header of unzip64.c + +*/ + +#ifndef _unz64_H +#define _unz64_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _ZLIB_H +#include "zlib.h" +#endif + +#ifndef _ZLIBIOAPI_H +#include "ioapi.h" +#endif + +#ifdef HAVE_BZIP2 +#include "bzlib.h" +#endif + +#define Z_BZIP2ED 12 + +#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP) +/* like the STRICT of WIN32, we define a pointer that cannot be converted + from (void*) without cast */ +typedef struct TagunzFile__ { int unused; } unzFile__; +typedef unzFile__ *unzFile; +#else +typedef voidp unzFile; +#endif + + +#define UNZ_OK (0) +#define UNZ_END_OF_LIST_OF_FILE (-100) +#define UNZ_ERRNO (Z_ERRNO) +#define UNZ_EOF (0) +#define UNZ_PARAMERROR (-102) +#define UNZ_BADZIPFILE (-103) +#define UNZ_INTERNALERROR (-104) +#define UNZ_CRCERROR (-105) + +/* tm_unz contain date/time info */ +typedef struct tm_unz_s +{ + uInt tm_sec; /* seconds after the minute - [0,59] */ + uInt tm_min; /* minutes after the hour - [0,59] */ + uInt tm_hour; /* hours since midnight - [0,23] */ + uInt tm_mday; /* day of the month - [1,31] */ + uInt tm_mon; /* months since January - [0,11] */ + uInt tm_year; /* years - [1980..2044] */ +} tm_unz; + +/* unz_global_info structure contain global data about the ZIPfile + These data comes from the end of central dir */ +typedef struct unz_global_info64_s +{ + ZPOS64_T number_entry; /* total number of entries in + the central dir on this disk */ + uLong size_comment; /* size of the global comment of the zipfile */ +} unz_global_info64; + +typedef struct unz_global_info_s +{ + uLong number_entry; /* total number of entries in + the central dir on this disk */ + uLong size_comment; /* size of the global comment of the zipfile */ +} unz_global_info; + +/* unz_file_info contain information about a file in the zipfile */ +typedef struct unz_file_info64_s +{ + uLong version; /* version made by 2 bytes */ + uLong version_needed; /* version needed to extract 2 bytes */ + uLong flag; /* general purpose bit flag 2 bytes */ + uLong compression_method; /* compression method 2 bytes */ + uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ + uLong crc; /* crc-32 4 bytes */ + ZPOS64_T compressed_size; /* compressed size 8 bytes */ + ZPOS64_T uncompressed_size; /* uncompressed size 8 bytes */ + uLong size_filename; /* filename length 2 bytes */ + uLong size_file_extra; /* extra field length 2 bytes */ + uLong size_file_comment; /* file comment length 2 bytes */ + + uLong disk_num_start; /* disk number start 2 bytes */ + uLong internal_fa; /* internal file attributes 2 bytes */ + uLong external_fa; /* external file attributes 4 bytes */ + + tm_unz tmu_date; +} unz_file_info64; + +typedef struct unz_file_info_s +{ + uLong version; /* version made by 2 bytes */ + uLong version_needed; /* version needed to extract 2 bytes */ + uLong flag; /* general purpose bit flag 2 bytes */ + uLong compression_method; /* compression method 2 bytes */ + uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ + uLong crc; /* crc-32 4 bytes */ + uLong compressed_size; /* compressed size 4 bytes */ + uLong uncompressed_size; /* uncompressed size 4 bytes */ + uLong size_filename; /* filename length 2 bytes */ + uLong size_file_extra; /* extra field length 2 bytes */ + uLong size_file_comment; /* file comment length 2 bytes */ + + uLong disk_num_start; /* disk number start 2 bytes */ + uLong internal_fa; /* internal file attributes 2 bytes */ + uLong external_fa; /* external file attributes 4 bytes */ + + tm_unz tmu_date; +} unz_file_info; + +extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1, + const char* fileName2, + int iCaseSensitivity)); +/* + Compare two filename (fileName1,fileName2). + If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) + If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi + or strcasecmp) + If iCaseSenisivity = 0, case sensitivity is defaut of your operating system + (like 1 on Unix, 2 on Windows) +*/ + + +extern unzFile ZEXPORT unzOpen OF((const char *path)); +extern unzFile ZEXPORT unzOpen64 OF((const void *path)); +/* + Open a Zip file. path contain the full pathname (by example, + on a Windows XP computer "c:\\zlib\\zlib113.zip" or on an Unix computer + "zlib/zlib113.zip". + If the zipfile cannot be opened (file don't exist or in not valid), the + return value is NULL. + Else, the return value is a unzFile Handle, usable with other function + of this unzip package. + the "64" function take a const void* pointer, because the path is just the + value passed to the open64_file_func callback. + Under Windows, if UNICODE is defined, using fill_fopen64_filefunc, the path + is a pointer to a wide unicode string (LPCTSTR is LPCWSTR), so const char* + does not describe the reality +*/ + + +extern unzFile ZEXPORT unzOpen2 OF((const char *path, + zlib_filefunc_def* pzlib_filefunc_def)); +/* + Open a Zip file, like unzOpen, but provide a set of file low level API + for read/write the zip file (see ioapi.h) +*/ + +extern unzFile ZEXPORT unzOpen2_64 OF((const void *path, + zlib_filefunc64_def* pzlib_filefunc_def)); +/* + Open a Zip file, like unz64Open, but provide a set of file low level API + for read/write the zip file (see ioapi.h) +*/ + +extern int ZEXPORT unzClose OF((unzFile file)); +/* + Close a ZipFile opened with unzOpen. + If there is files inside the .Zip opened with unzOpenCurrentFile (see later), + these files MUST be closed with unzCloseCurrentFile before call unzClose. + return UNZ_OK if there is no problem. */ + +extern int ZEXPORT unzGetGlobalInfo OF((unzFile file, + unz_global_info *pglobal_info)); + +extern int ZEXPORT unzGetGlobalInfo64 OF((unzFile file, + unz_global_info64 *pglobal_info)); +/* + Write info about the ZipFile in the *pglobal_info structure. + No preparation of the structure is needed + return UNZ_OK if there is no problem. */ + + +extern int ZEXPORT unzGetGlobalComment OF((unzFile file, + char *szComment, + uLong uSizeBuf)); +/* + Get the global comment string of the ZipFile, in the szComment buffer. + uSizeBuf is the size of the szComment buffer. + return the number of byte copied or an error code <0 +*/ + + +/***************************************************************************/ +/* Unzip package allow you browse the directory of the zipfile */ + +extern int ZEXPORT unzGoToFirstFile OF((unzFile file)); +/* + Set the current file of the zipfile to the first file. + return UNZ_OK if there is no problem +*/ + +extern int ZEXPORT unzGoToNextFile OF((unzFile file)); +/* + Set the current file of the zipfile to the next file. + return UNZ_OK if there is no problem + return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. +*/ + +extern int ZEXPORT unzLocateFile OF((unzFile file, + const char *szFileName, + int iCaseSensitivity)); +/* + Try locate the file szFileName in the zipfile. + For the iCaseSensitivity signification, see unzStringFileNameCompare + + return value : + UNZ_OK if the file is found. It becomes the current file. + UNZ_END_OF_LIST_OF_FILE if the file is not found +*/ + + +/* ****************************************** */ +/* Ryan supplied functions */ +/* unz_file_info contain information about a file in the zipfile */ +typedef struct unz_file_pos_s +{ + uLong pos_in_zip_directory; /* offset in zip file directory */ + uLong num_of_file; /* # of file */ +} unz_file_pos; + +extern int ZEXPORT unzGetFilePos( + unzFile file, + unz_file_pos* file_pos); + +extern int ZEXPORT unzGoToFilePos( + unzFile file, + unz_file_pos* file_pos); + +typedef struct unz64_file_pos_s +{ + ZPOS64_T pos_in_zip_directory; /* offset in zip file directory */ + ZPOS64_T num_of_file; /* # of file */ +} unz64_file_pos; + +extern int ZEXPORT unzGetFilePos64( + unzFile file, + unz64_file_pos* file_pos); + +extern int ZEXPORT unzGoToFilePos64( + unzFile file, + const unz64_file_pos* file_pos); + +/* ****************************************** */ + +extern int ZEXPORT unzGetCurrentFileInfo64 OF((unzFile file, + unz_file_info64 *pfile_info, + char *szFileName, + uLong fileNameBufferSize, + void *extraField, + uLong extraFieldBufferSize, + char *szComment, + uLong commentBufferSize)); + +extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file, + unz_file_info *pfile_info, + char *szFileName, + uLong fileNameBufferSize, + void *extraField, + uLong extraFieldBufferSize, + char *szComment, + uLong commentBufferSize)); +/* + Get Info about the current file + if pfile_info!=NULL, the *pfile_info structure will contain somes info about + the current file + if szFileName!=NULL, the filemane string will be copied in szFileName + (fileNameBufferSize is the size of the buffer) + if extraField!=NULL, the extra field information will be copied in extraField + (extraFieldBufferSize is the size of the buffer). + This is the Central-header version of the extra field + if szComment!=NULL, the comment string of the file will be copied in szComment + (commentBufferSize is the size of the buffer) +*/ + + +/** Addition for GDAL : START */ + +extern ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64 OF((unzFile file)); + +/** Addition for GDAL : END */ + + +/***************************************************************************/ +/* for reading the content of the current zipfile, you can open it, read data + from it, and close it (you can close it before reading all the file) + */ + +extern int ZEXPORT unzOpenCurrentFile OF((unzFile file)); +/* + Open for reading data the current file in the zipfile. + If there is no error, the return value is UNZ_OK. +*/ + +extern int ZEXPORT unzOpenCurrentFilePassword OF((unzFile file, + const char* password)); +/* + Open for reading data the current file in the zipfile. + password is a crypting password + If there is no error, the return value is UNZ_OK. +*/ + +extern int ZEXPORT unzOpenCurrentFile2 OF((unzFile file, + int* method, + int* level, + int raw)); +/* + Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) + if raw==1 + *method will receive method of compression, *level will receive level of + compression + note : you can set level parameter as NULL (if you did not want known level, + but you CANNOT set method parameter as NULL +*/ + +extern int ZEXPORT unzOpenCurrentFile3 OF((unzFile file, + int* method, + int* level, + int raw, + const char* password)); +/* + Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) + if raw==1 + *method will receive method of compression, *level will receive level of + compression + note : you can set level parameter as NULL (if you did not want known level, + but you CANNOT set method parameter as NULL +*/ + + +extern int ZEXPORT unzCloseCurrentFile OF((unzFile file)); +/* + Close the file in zip opened with unzOpenCurrentFile + Return UNZ_CRCERROR if all the file was read but the CRC is not good +*/ + +extern int ZEXPORT unzReadCurrentFile OF((unzFile file, + voidp buf, + unsigned len)); +/* + Read bytes from the current file (opened by unzOpenCurrentFile) + buf contain buffer where data must be copied + len the size of buf. + + return the number of byte copied if somes bytes are copied + return 0 if the end of file was reached + return <0 with error code if there is an error + (UNZ_ERRNO for IO error, or zLib error for uncompress error) +*/ + +extern z_off_t ZEXPORT unztell OF((unzFile file)); + +extern ZPOS64_T ZEXPORT unztell64 OF((unzFile file)); +/* + Give the current position in uncompressed data +*/ + +extern int ZEXPORT unzeof OF((unzFile file)); +/* + return 1 if the end of file was reached, 0 elsewhere +*/ + +extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file, + voidp buf, + unsigned len)); +/* + Read extra field from the current file (opened by unzOpenCurrentFile) + This is the local-header version of the extra field (sometimes, there is + more info in the local-header version than in the central-header) + + if buf==NULL, it return the size of the local extra field + + if buf!=NULL, len is the size of the buffer, the extra header is copied in + buf. + the return value is the number of bytes copied in buf, or (if <0) + the error code +*/ + +/***************************************************************************/ + +/* Get the current file offset */ +extern ZPOS64_T ZEXPORT unzGetOffset64 (unzFile file); +extern uLong ZEXPORT unzGetOffset (unzFile file); + +/* Set the current file offset */ +extern int ZEXPORT unzSetOffset64 (unzFile file, ZPOS64_T pos); +extern int ZEXPORT unzSetOffset (unzFile file, uLong pos); + + + +#ifdef __cplusplus +} +#endif + +#endif /* _unz64_H */ diff --git a/storage/connect/zip.c b/storage/connect/zip.c new file mode 100644 index 00000000000..ea54853e858 --- /dev/null +++ b/storage/connect/zip.c @@ -0,0 +1,2007 @@ +/* zip.c -- IO on .zip files using zlib + Version 1.1, February 14h, 2010 + part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) + + Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + + Modifications for Zip64 support + Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + + For more info read MiniZip_info.txt + + Changes + Oct-2009 - Mathias Svensson - Remove old C style function prototypes + Oct-2009 - Mathias Svensson - Added Zip64 Support when creating new file archives + Oct-2009 - Mathias Svensson - Did some code cleanup and refactoring to get better overview of some functions. + Oct-2009 - Mathias Svensson - Added zipRemoveExtraInfoBlock to strip extra field data from its ZIP64 data + It is used when recreting zip archive with RAW when deleting items from a zip. + ZIP64 data is automaticly added to items that needs it, and existing ZIP64 data need to be removed. + Oct-2009 - Mathias Svensson - Added support for BZIP2 as compression mode (bzip2 lib is required) + Jan-2010 - back to unzip and minizip 1.0 name scheme, with compatibility layer + +*/ + + +#include +#include +#include +#include +#include "zlib.h" +#include "zip.h" + +#ifdef STDC +# include +# include +# include +#endif +#ifdef NO_ERRNO_H + extern int errno; +#else +# include +#endif + + +#ifndef local +# define local static +#endif +/* compile with -Dlocal if your debugger can't find static symbols */ + +#ifndef VERSIONMADEBY +# define VERSIONMADEBY (0x0) /* platform depedent */ +#endif + +#ifndef Z_BUFSIZE +#define Z_BUFSIZE (64*1024) //(16384) +#endif + +#ifndef Z_MAXFILENAMEINZIP +#define Z_MAXFILENAMEINZIP (256) +#endif + +#ifndef ALLOC +# define ALLOC(size) (malloc(size)) +#endif +#ifndef TRYFREE +# define TRYFREE(p) {if (p) free(p);} +#endif + +/* +#define SIZECENTRALDIRITEM (0x2e) +#define SIZEZIPLOCALHEADER (0x1e) +*/ + +/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */ + + +// NOT sure that this work on ALL platform +#define MAKEULONG64(a, b) ((ZPOS64_T)(((unsigned long)(a)) | ((ZPOS64_T)((unsigned long)(b))) << 32)) + +#ifndef SEEK_CUR +#define SEEK_CUR 1 +#endif + +#ifndef SEEK_END +#define SEEK_END 2 +#endif + +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif + +#ifndef DEF_MEM_LEVEL +#if MAX_MEM_LEVEL >= 8 +# define DEF_MEM_LEVEL 8 +#else +# define DEF_MEM_LEVEL MAX_MEM_LEVEL +#endif +#endif +const char zip_copyright[] =" zip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll"; + + +#define SIZEDATA_INDATABLOCK (4096-(4*4)) + +#define LOCALHEADERMAGIC (0x04034b50) +#define CENTRALHEADERMAGIC (0x02014b50) +#define ENDHEADERMAGIC (0x06054b50) +#define ZIP64ENDHEADERMAGIC (0x6064b50) +#define ZIP64ENDLOCHEADERMAGIC (0x7064b50) + +#define FLAG_LOCALHEADER_OFFSET (0x06) +#define CRC_LOCALHEADER_OFFSET (0x0e) + +#define SIZECENTRALHEADER (0x2e) /* 46 */ + +typedef struct linkedlist_datablock_internal_s +{ + struct linkedlist_datablock_internal_s* next_datablock; + uLong avail_in_this_block; + uLong filled_in_this_block; + uLong unused; /* for future use and alignement */ + unsigned char data[SIZEDATA_INDATABLOCK]; +} linkedlist_datablock_internal; + +typedef struct linkedlist_data_s +{ + linkedlist_datablock_internal* first_block; + linkedlist_datablock_internal* last_block; +} linkedlist_data; + + +typedef struct +{ + z_stream stream; /* zLib stream structure for inflate */ +#ifdef HAVE_BZIP2 + bz_stream bstream; /* bzLib stream structure for bziped */ +#endif + + int stream_initialised; /* 1 is stream is initialised */ + uInt pos_in_buffered_data; /* last written byte in buffered_data */ + + ZPOS64_T pos_local_header; /* offset of the local header of the file + currenty writing */ + char* central_header; /* central header data for the current file */ + uLong size_centralExtra; + uLong size_centralheader; /* size of the central header for cur file */ + uLong size_centralExtraFree; /* Extra bytes allocated to the centralheader but that are not used */ + uLong flag; /* flag of the file currently writing */ + + int method; /* compression method of file currenty wr.*/ + int raw; /* 1 for directly writing raw data */ + Byte buffered_data[Z_BUFSIZE];/* buffer contain compressed data to be writ*/ + uLong dosDate; + uLong crc32; + int encrypt; + int zip64; /* Add ZIP64 extened information in the extra field */ + ZPOS64_T pos_zip64extrainfo; + ZPOS64_T totalCompressedData; + ZPOS64_T totalUncompressedData; +#ifndef NOCRYPT + unsigned long keys[3]; /* keys defining the pseudo-random sequence */ + const z_crc_t* pcrc_32_tab; + int crypt_header_size; +#endif +} curfile64_info; + +typedef struct +{ + zlib_filefunc64_32_def z_filefunc; + voidpf filestream; /* io structore of the zipfile */ + linkedlist_data central_dir;/* datablock with central dir in construction*/ + int in_opened_file_inzip; /* 1 if a file in the zip is currently writ.*/ + curfile64_info ci; /* info on the file curretly writing */ + + ZPOS64_T begin_pos; /* position of the beginning of the zipfile */ + ZPOS64_T add_position_when_writting_offset; + ZPOS64_T number_entry; + +#ifndef NO_ADDFILEINEXISTINGZIP + char *globalcomment; +#endif + +} zip64_internal; + + +#ifndef NOCRYPT +#define INCLUDECRYPTINGCODE_IFCRYPTALLOWED +#include "crypt.h" +#endif + +local linkedlist_datablock_internal* allocate_new_datablock() +{ + linkedlist_datablock_internal* ldi; + ldi = (linkedlist_datablock_internal*) + ALLOC(sizeof(linkedlist_datablock_internal)); + if (ldi!=NULL) + { + ldi->next_datablock = NULL ; + ldi->filled_in_this_block = 0 ; + ldi->avail_in_this_block = SIZEDATA_INDATABLOCK ; + } + return ldi; +} + +local void free_datablock(linkedlist_datablock_internal* ldi) +{ + while (ldi!=NULL) + { + linkedlist_datablock_internal* ldinext = ldi->next_datablock; + TRYFREE(ldi); + ldi = ldinext; + } +} + +local void init_linkedlist(linkedlist_data* ll) +{ + ll->first_block = ll->last_block = NULL; +} + +local void free_linkedlist(linkedlist_data* ll) +{ + free_datablock(ll->first_block); + ll->first_block = ll->last_block = NULL; +} + + +local int add_data_in_datablock(linkedlist_data* ll, const void* buf, uLong len) +{ + linkedlist_datablock_internal* ldi; + const unsigned char* from_copy; + + if (ll==NULL) + return ZIP_INTERNALERROR; + + if (ll->last_block == NULL) + { + ll->first_block = ll->last_block = allocate_new_datablock(); + if (ll->first_block == NULL) + return ZIP_INTERNALERROR; + } + + ldi = ll->last_block; + from_copy = (unsigned char*)buf; + + while (len>0) + { + uInt copy_this; + uInt i; + unsigned char* to_copy; + + if (ldi->avail_in_this_block==0) + { + ldi->next_datablock = allocate_new_datablock(); + if (ldi->next_datablock == NULL) + return ZIP_INTERNALERROR; + ldi = ldi->next_datablock ; + ll->last_block = ldi; + } + + if (ldi->avail_in_this_block < len) + copy_this = (uInt)ldi->avail_in_this_block; + else + copy_this = (uInt)len; + + to_copy = &(ldi->data[ldi->filled_in_this_block]); + + for (i=0;ifilled_in_this_block += copy_this; + ldi->avail_in_this_block -= copy_this; + from_copy += copy_this ; + len -= copy_this; + } + return ZIP_OK; +} + + + +/****************************************************************************/ + +#ifndef NO_ADDFILEINEXISTINGZIP +/* =========================================================================== + Inputs a long in LSB order to the given file + nbByte == 1, 2 ,4 or 8 (byte, short or long, ZPOS64_T) +*/ + +local int zip64local_putValue OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T x, int nbByte)); +local int zip64local_putValue (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T x, int nbByte) +{ + unsigned char buf[8]; + int n; + for (n = 0; n < nbByte; n++) + { + buf[n] = (unsigned char)(x & 0xff); + x >>= 8; + } + if (x != 0) + { /* data overflow - hack for ZIP64 (X Roche) */ + for (n = 0; n < nbByte; n++) + { + buf[n] = 0xff; + } + } + + if (ZWRITE64(*pzlib_filefunc_def,filestream,buf,nbByte)!=(uLong)nbByte) + return ZIP_ERRNO; + else + return ZIP_OK; +} + +local void zip64local_putValue_inmemory OF((void* dest, ZPOS64_T x, int nbByte)); +local void zip64local_putValue_inmemory (void* dest, ZPOS64_T x, int nbByte) +{ + unsigned char* buf=(unsigned char*)dest; + int n; + for (n = 0; n < nbByte; n++) { + buf[n] = (unsigned char)(x & 0xff); + x >>= 8; + } + + if (x != 0) + { /* data overflow - hack for ZIP64 */ + for (n = 0; n < nbByte; n++) + { + buf[n] = 0xff; + } + } +} + +/****************************************************************************/ + + +local uLong zip64local_TmzDateToDosDate(const tm_zip* ptm) +{ + uLong year = (uLong)ptm->tm_year; + if (year>=1980) + year-=1980; + else if (year>=80) + year-=80; + return + (uLong) (((ptm->tm_mday) + (32 * (ptm->tm_mon+1)) + (512 * year)) << 16) | + ((ptm->tm_sec/2) + (32* ptm->tm_min) + (2048 * (uLong)ptm->tm_hour)); +} + + +/****************************************************************************/ + +local int zip64local_getByte OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, int *pi)); + +local int zip64local_getByte(const zlib_filefunc64_32_def* pzlib_filefunc_def,voidpf filestream,int* pi) +{ + unsigned char c; + int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1); + if (err==1) + { + *pi = (int)c; + return ZIP_OK; + } + else + { + if (ZERROR64(*pzlib_filefunc_def,filestream)) + return ZIP_ERRNO; + else + return ZIP_EOF; + } +} + + +/* =========================================================================== + Reads a long in LSB order from the given gz_stream. Sets +*/ +local int zip64local_getShort OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX)); + +local int zip64local_getShort (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong* pX) +{ + uLong x ; + int i = 0; + int err; + + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x = (uLong)i; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((uLong)i)<<8; + + if (err==ZIP_OK) + *pX = x; + else + *pX = 0; + return err; +} + +local int zip64local_getLong OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX)); + +local int zip64local_getLong (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong* pX) +{ + uLong x ; + int i = 0; + int err; + + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x = (uLong)i; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((uLong)i)<<8; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((uLong)i)<<16; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((uLong)i)<<24; + + if (err==ZIP_OK) + *pX = x; + else + *pX = 0; + return err; +} + +local int zip64local_getLong64 OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)); + + +local int zip64local_getLong64 (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX) +{ + ZPOS64_T x; + int i = 0; + int err; + + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x = (ZPOS64_T)i; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((ZPOS64_T)i)<<8; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((ZPOS64_T)i)<<16; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((ZPOS64_T)i)<<24; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((ZPOS64_T)i)<<32; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((ZPOS64_T)i)<<40; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((ZPOS64_T)i)<<48; + + if (err==ZIP_OK) + err = zip64local_getByte(pzlib_filefunc_def,filestream,&i); + x += ((ZPOS64_T)i)<<56; + + if (err==ZIP_OK) + *pX = x; + else + *pX = 0; + + return err; +} + +#ifndef BUFREADCOMMENT +#define BUFREADCOMMENT (0x400) +#endif +/* + Locate the Central directory of a zipfile (at the end, just before + the global comment) +*/ +local ZPOS64_T zip64local_SearchCentralDir OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)); + +local ZPOS64_T zip64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream) +{ + unsigned char* buf; + ZPOS64_T uSizeFile; + ZPOS64_T uBackRead; + ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */ + ZPOS64_T uPosFound=0; + + if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0) + return 0; + + + uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream); + + if (uMaxBack>uSizeFile) + uMaxBack = uSizeFile; + + buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); + if (buf==NULL) + return 0; + + uBackRead = 4; + while (uBackReaduMaxBack) + uBackRead = uMaxBack; + else + uBackRead+=BUFREADCOMMENT; + uReadPos = uSizeFile-uBackRead ; + + uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? + (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos); + if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0) + break; + + if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize) + break; + + for (i=(int)uReadSize-3; (i--)>0;) + if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && + ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06)) + { + uPosFound = uReadPos+i; + break; + } + + if (uPosFound!=0) + break; + } + TRYFREE(buf); + return uPosFound; +} + +/* +Locate the End of Zip64 Central directory locator and from there find the CD of a zipfile (at the end, just before +the global comment) +*/ +local ZPOS64_T zip64local_SearchCentralDir64 OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)); + +local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream) +{ + unsigned char* buf; + ZPOS64_T uSizeFile; + ZPOS64_T uBackRead; + ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */ + ZPOS64_T uPosFound=0; + uLong uL; + ZPOS64_T relativeOffset; + + if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0) + return 0; + + uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream); + + if (uMaxBack>uSizeFile) + uMaxBack = uSizeFile; + + buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); + if (buf==NULL) + return 0; + + uBackRead = 4; + while (uBackReaduMaxBack) + uBackRead = uMaxBack; + else + uBackRead+=BUFREADCOMMENT; + uReadPos = uSizeFile-uBackRead ; + + uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? + (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos); + if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0) + break; + + if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize) + break; + + for (i=(int)uReadSize-3; (i--)>0;) + { + // Signature "0x07064b50" Zip64 end of central directory locater + if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07)) + { + uPosFound = uReadPos+i; + break; + } + } + + if (uPosFound!=0) + break; + } + + TRYFREE(buf); + if (uPosFound == 0) + return 0; + + /* Zip64 end of central directory locator */ + if (ZSEEK64(*pzlib_filefunc_def,filestream, uPosFound,ZLIB_FILEFUNC_SEEK_SET)!=0) + return 0; + + /* the signature, already checked */ + if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK) + return 0; + + /* number of the disk with the start of the zip64 end of central directory */ + if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK) + return 0; + if (uL != 0) + return 0; + + /* relative offset of the zip64 end of central directory record */ + if (zip64local_getLong64(pzlib_filefunc_def,filestream,&relativeOffset)!=ZIP_OK) + return 0; + + /* total number of disks */ + if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK) + return 0; + if (uL != 1) + return 0; + + /* Goto Zip64 end of central directory record */ + if (ZSEEK64(*pzlib_filefunc_def,filestream, relativeOffset,ZLIB_FILEFUNC_SEEK_SET)!=0) + return 0; + + /* the signature */ + if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK) + return 0; + + if (uL != 0x06064b50) // signature of 'Zip64 end of central directory' + return 0; + + return relativeOffset; +} + +int LoadCentralDirectoryRecord(zip64_internal* pziinit) +{ + int err=ZIP_OK; + ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ + + ZPOS64_T size_central_dir; /* size of the central directory */ + ZPOS64_T offset_central_dir; /* offset of start of central directory */ + ZPOS64_T central_pos; + uLong uL; + + uLong number_disk; /* number of the current dist, used for + spaning ZIP, unsupported, always 0*/ + uLong number_disk_with_CD; /* number the the disk with central dir, used + for spaning ZIP, unsupported, always 0*/ + ZPOS64_T number_entry; + ZPOS64_T number_entry_CD; /* total number of entries in + the central dir + (same than number_entry on nospan) */ + uLong VersionMadeBy; + uLong VersionNeeded; + uLong size_comment; + + int hasZIP64Record = 0; + + // check first if we find a ZIP64 record + central_pos = zip64local_SearchCentralDir64(&pziinit->z_filefunc,pziinit->filestream); + if(central_pos > 0) + { + hasZIP64Record = 1; + } + else if(central_pos == 0) + { + central_pos = zip64local_SearchCentralDir(&pziinit->z_filefunc,pziinit->filestream); + } + +/* disable to allow appending to empty ZIP archive + if (central_pos==0) + err=ZIP_ERRNO; +*/ + + if(hasZIP64Record) + { + ZPOS64_T sizeEndOfCentralDirectory; + if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, central_pos, ZLIB_FILEFUNC_SEEK_SET) != 0) + err=ZIP_ERRNO; + + /* the signature, already checked */ + if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&uL)!=ZIP_OK) + err=ZIP_ERRNO; + + /* size of zip64 end of central directory record */ + if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream, &sizeEndOfCentralDirectory)!=ZIP_OK) + err=ZIP_ERRNO; + + /* version made by */ + if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &VersionMadeBy)!=ZIP_OK) + err=ZIP_ERRNO; + + /* version needed to extract */ + if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &VersionNeeded)!=ZIP_OK) + err=ZIP_ERRNO; + + /* number of this disk */ + if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&number_disk)!=ZIP_OK) + err=ZIP_ERRNO; + + /* number of the disk with the start of the central directory */ + if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&number_disk_with_CD)!=ZIP_OK) + err=ZIP_ERRNO; + + /* total number of entries in the central directory on this disk */ + if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream, &number_entry)!=ZIP_OK) + err=ZIP_ERRNO; + + /* total number of entries in the central directory */ + if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream,&number_entry_CD)!=ZIP_OK) + err=ZIP_ERRNO; + + if ((number_entry_CD!=number_entry) || (number_disk_with_CD!=0) || (number_disk!=0)) + err=ZIP_BADZIPFILE; + + /* size of the central directory */ + if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream,&size_central_dir)!=ZIP_OK) + err=ZIP_ERRNO; + + /* offset of start of central directory with respect to the + starting disk number */ + if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream,&offset_central_dir)!=ZIP_OK) + err=ZIP_ERRNO; + + // TODO.. + // read the comment from the standard central header. + size_comment = 0; + } + else + { + // Read End of central Directory info + if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0) + err=ZIP_ERRNO; + + /* the signature, already checked */ + if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&uL)!=ZIP_OK) + err=ZIP_ERRNO; + + /* number of this disk */ + if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream,&number_disk)!=ZIP_OK) + err=ZIP_ERRNO; + + /* number of the disk with the start of the central directory */ + if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream,&number_disk_with_CD)!=ZIP_OK) + err=ZIP_ERRNO; + + /* total number of entries in the central dir on this disk */ + number_entry = 0; + if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK) + err=ZIP_ERRNO; + else + number_entry = uL; + + /* total number of entries in the central dir */ + number_entry_CD = 0; + if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK) + err=ZIP_ERRNO; + else + number_entry_CD = uL; + + if ((number_entry_CD!=number_entry) || (number_disk_with_CD!=0) || (number_disk!=0)) + err=ZIP_BADZIPFILE; + + /* size of the central directory */ + size_central_dir = 0; + if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK) + err=ZIP_ERRNO; + else + size_central_dir = uL; + + /* offset of start of central directory with respect to the starting disk number */ + offset_central_dir = 0; + if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK) + err=ZIP_ERRNO; + else + offset_central_dir = uL; + + + /* zipfile global comment length */ + if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &size_comment)!=ZIP_OK) + err=ZIP_ERRNO; + } + + if ((central_posz_filefunc, pziinit->filestream); + return ZIP_ERRNO; + } + + if (size_comment>0) + { + pziinit->globalcomment = (char*)ALLOC(size_comment+1); + if (pziinit->globalcomment) + { + size_comment = ZREAD64(pziinit->z_filefunc, pziinit->filestream, pziinit->globalcomment,size_comment); + pziinit->globalcomment[size_comment]=0; + } + } + + byte_before_the_zipfile = central_pos - (offset_central_dir+size_central_dir); + pziinit->add_position_when_writting_offset = byte_before_the_zipfile; + + { + ZPOS64_T size_central_dir_to_read = size_central_dir; + size_t buf_size = SIZEDATA_INDATABLOCK; + void* buf_read = (void*)ALLOC(buf_size); + if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, offset_central_dir + byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET) != 0) + err=ZIP_ERRNO; + + while ((size_central_dir_to_read>0) && (err==ZIP_OK)) + { + ZPOS64_T read_this = SIZEDATA_INDATABLOCK; + if (read_this > size_central_dir_to_read) + read_this = size_central_dir_to_read; + + if (ZREAD64(pziinit->z_filefunc, pziinit->filestream,buf_read,(uLong)read_this) != read_this) + err=ZIP_ERRNO; + + if (err==ZIP_OK) + err = add_data_in_datablock(&pziinit->central_dir,buf_read, (uLong)read_this); + + size_central_dir_to_read-=read_this; + } + TRYFREE(buf_read); + } + pziinit->begin_pos = byte_before_the_zipfile; + pziinit->number_entry = number_entry_CD; + + if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, offset_central_dir+byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET) != 0) + err=ZIP_ERRNO; + + return err; +} + + +#endif /* !NO_ADDFILEINEXISTINGZIP*/ + + +/************************************************************/ +extern zipFile ZEXPORT zipOpen3 (const void *pathname, int append, zipcharpc* globalcomment, zlib_filefunc64_32_def* pzlib_filefunc64_32_def) +{ + zip64_internal ziinit; + zip64_internal* zi; + int err=ZIP_OK; + + ziinit.z_filefunc.zseek32_file = NULL; + ziinit.z_filefunc.ztell32_file = NULL; + if (pzlib_filefunc64_32_def==NULL) + fill_fopen64_filefunc(&ziinit.z_filefunc.zfile_func64); + else + ziinit.z_filefunc = *pzlib_filefunc64_32_def; + + ziinit.filestream = ZOPEN64(ziinit.z_filefunc, + pathname, + (append == APPEND_STATUS_CREATE) ? + (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_CREATE) : + (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_EXISTING)); + + if (ziinit.filestream == NULL) + return NULL; + + if (append == APPEND_STATUS_CREATEAFTER) + ZSEEK64(ziinit.z_filefunc,ziinit.filestream,0,SEEK_END); + + ziinit.begin_pos = ZTELL64(ziinit.z_filefunc,ziinit.filestream); + ziinit.in_opened_file_inzip = 0; + ziinit.ci.stream_initialised = 0; + ziinit.number_entry = 0; + ziinit.add_position_when_writting_offset = 0; + init_linkedlist(&(ziinit.central_dir)); + + + + zi = (zip64_internal*)ALLOC(sizeof(zip64_internal)); + if (zi==NULL) + { + ZCLOSE64(ziinit.z_filefunc,ziinit.filestream); + return NULL; + } + + /* now we add file in a zipfile */ +# ifndef NO_ADDFILEINEXISTINGZIP + ziinit.globalcomment = NULL; + if (append == APPEND_STATUS_ADDINZIP) + { + // Read and Cache Central Directory Records + err = LoadCentralDirectoryRecord(&ziinit); + } + + if (globalcomment) + { + *globalcomment = ziinit.globalcomment; + } +# endif /* !NO_ADDFILEINEXISTINGZIP*/ + + if (err != ZIP_OK) + { +# ifndef NO_ADDFILEINEXISTINGZIP + TRYFREE(ziinit.globalcomment); +# endif /* !NO_ADDFILEINEXISTINGZIP*/ + TRYFREE(zi); + return NULL; + } + else + { + *zi = ziinit; + return (zipFile)zi; + } +} + +extern zipFile ZEXPORT zipOpen2 (const char *pathname, int append, zipcharpc* globalcomment, zlib_filefunc_def* pzlib_filefunc32_def) +{ + if (pzlib_filefunc32_def != NULL) + { + zlib_filefunc64_32_def zlib_filefunc64_32_def_fill; + fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill,pzlib_filefunc32_def); + return zipOpen3(pathname, append, globalcomment, &zlib_filefunc64_32_def_fill); + } + else + return zipOpen3(pathname, append, globalcomment, NULL); +} + +extern zipFile ZEXPORT zipOpen2_64 (const void *pathname, int append, zipcharpc* globalcomment, zlib_filefunc64_def* pzlib_filefunc_def) +{ + if (pzlib_filefunc_def != NULL) + { + zlib_filefunc64_32_def zlib_filefunc64_32_def_fill; + zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def; + zlib_filefunc64_32_def_fill.ztell32_file = NULL; + zlib_filefunc64_32_def_fill.zseek32_file = NULL; + return zipOpen3(pathname, append, globalcomment, &zlib_filefunc64_32_def_fill); + } + else + return zipOpen3(pathname, append, globalcomment, NULL); +} + + + +extern zipFile ZEXPORT zipOpen (const char* pathname, int append) +{ + return zipOpen3((const void*)pathname,append,NULL,NULL); +} + +extern zipFile ZEXPORT zipOpen64 (const void* pathname, int append) +{ + return zipOpen3(pathname,append,NULL,NULL); +} + +int Write_LocalFileHeader(zip64_internal* zi, const char* filename, uInt size_extrafield_local, const void* extrafield_local) +{ + /* write the local header */ + int err; + uInt size_filename = (uInt)strlen(filename); + uInt size_extrafield = size_extrafield_local; + + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)LOCALHEADERMAGIC, 4); + + if (err==ZIP_OK) + { + if(zi->ci.zip64) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);/* version needed to extract */ + else + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)20,2);/* version needed to extract */ + } + + if (err==ZIP_OK) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.flag,2); + + if (err==ZIP_OK) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.method,2); + + if (err==ZIP_OK) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.dosDate,4); + + // CRC / Compressed size / Uncompressed size will be filled in later and rewritten later + if (err==ZIP_OK) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* crc 32, unknown */ + if (err==ZIP_OK) + { + if(zi->ci.zip64) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xFFFFFFFF,4); /* compressed size, unknown */ + else + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* compressed size, unknown */ + } + if (err==ZIP_OK) + { + if(zi->ci.zip64) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xFFFFFFFF,4); /* uncompressed size, unknown */ + else + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* uncompressed size, unknown */ + } + + if (err==ZIP_OK) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_filename,2); + + if(zi->ci.zip64) + { + size_extrafield += 20; + } + + if (err==ZIP_OK) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_extrafield,2); + + if ((err==ZIP_OK) && (size_filename > 0)) + { + if (ZWRITE64(zi->z_filefunc,zi->filestream,filename,size_filename)!=size_filename) + err = ZIP_ERRNO; + } + + if ((err==ZIP_OK) && (size_extrafield_local > 0)) + { + if (ZWRITE64(zi->z_filefunc, zi->filestream, extrafield_local, size_extrafield_local) != size_extrafield_local) + err = ZIP_ERRNO; + } + + + if ((err==ZIP_OK) && (zi->ci.zip64)) + { + // write the Zip64 extended info + short HeaderID = 1; + short DataSize = 16; + ZPOS64_T CompressedSize = 0; + ZPOS64_T UncompressedSize = 0; + + // Remember position of Zip64 extended info for the local file header. (needed when we update size after done with file) + zi->ci.pos_zip64extrainfo = ZTELL64(zi->z_filefunc,zi->filestream); + + err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)HeaderID,2); + err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)DataSize,2); + + err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)UncompressedSize,8); + err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)CompressedSize,8); + } + + return err; +} + +/* + NOTE. + When writing RAW the ZIP64 extended information in extrafield_local and extrafield_global needs to be stripped + before calling this function it can be done with zipRemoveExtraInfoBlock + + It is not done here because then we need to realloc a new buffer since parameters are 'const' and I want to minimize + unnecessary allocations. + */ +extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename, const zip_fileinfo* zipfi, + const void* extrafield_local, uInt size_extrafield_local, + const void* extrafield_global, uInt size_extrafield_global, + const char* comment, int method, int level, int raw, + int windowBits,int memLevel, int strategy, + const char* password, uLong crcForCrypting, + uLong versionMadeBy, uLong flagBase, int zip64) +{ + zip64_internal* zi; + uInt size_filename; + uInt size_comment; + uInt i; + int err = ZIP_OK; + +# ifdef NOCRYPT + (crcForCrypting); + if (password != NULL) + return ZIP_PARAMERROR; +# endif + + if (file == NULL) + return ZIP_PARAMERROR; + +#ifdef HAVE_BZIP2 + if ((method!=0) && (method!=Z_DEFLATED) && (method!=Z_BZIP2ED)) + return ZIP_PARAMERROR; +#else + if ((method!=0) && (method!=Z_DEFLATED)) + return ZIP_PARAMERROR; +#endif + + zi = (zip64_internal*)file; + + if (zi->in_opened_file_inzip == 1) + { + err = zipCloseFileInZip (file); + if (err != ZIP_OK) + return err; + } + + if (filename==NULL) + filename="-"; + + if (comment==NULL) + size_comment = 0; + else + size_comment = (uInt)strlen(comment); + + size_filename = (uInt)strlen(filename); + + if (zipfi == NULL) + zi->ci.dosDate = 0; + else + { + if (zipfi->dosDate != 0) + zi->ci.dosDate = zipfi->dosDate; + else + zi->ci.dosDate = zip64local_TmzDateToDosDate(&zipfi->tmz_date); + } + + zi->ci.flag = flagBase; + if ((level==8) || (level==9)) + zi->ci.flag |= 2; + if (level==2) + zi->ci.flag |= 4; + if (level==1) + zi->ci.flag |= 6; + if (password != NULL) + zi->ci.flag |= 1; + + zi->ci.crc32 = 0; + zi->ci.method = method; + zi->ci.encrypt = 0; + zi->ci.stream_initialised = 0; + zi->ci.pos_in_buffered_data = 0; + zi->ci.raw = raw; + zi->ci.pos_local_header = ZTELL64(zi->z_filefunc,zi->filestream); + + zi->ci.size_centralheader = SIZECENTRALHEADER + size_filename + size_extrafield_global + size_comment; + zi->ci.size_centralExtraFree = 32; // Extra space we have reserved in case we need to add ZIP64 extra info data + + zi->ci.central_header = (char*)ALLOC((uInt)zi->ci.size_centralheader + zi->ci.size_centralExtraFree); + + zi->ci.size_centralExtra = size_extrafield_global; + zip64local_putValue_inmemory(zi->ci.central_header,(uLong)CENTRALHEADERMAGIC,4); + /* version info */ + zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)versionMadeBy,2); + zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)20,2); + zip64local_putValue_inmemory(zi->ci.central_header+8,(uLong)zi->ci.flag,2); + zip64local_putValue_inmemory(zi->ci.central_header+10,(uLong)zi->ci.method,2); + zip64local_putValue_inmemory(zi->ci.central_header+12,(uLong)zi->ci.dosDate,4); + zip64local_putValue_inmemory(zi->ci.central_header+16,(uLong)0,4); /*crc*/ + zip64local_putValue_inmemory(zi->ci.central_header+20,(uLong)0,4); /*compr size*/ + zip64local_putValue_inmemory(zi->ci.central_header+24,(uLong)0,4); /*uncompr size*/ + zip64local_putValue_inmemory(zi->ci.central_header+28,(uLong)size_filename,2); + zip64local_putValue_inmemory(zi->ci.central_header+30,(uLong)size_extrafield_global,2); + zip64local_putValue_inmemory(zi->ci.central_header+32,(uLong)size_comment,2); + zip64local_putValue_inmemory(zi->ci.central_header+34,(uLong)0,2); /*disk nm start*/ + + if (zipfi==NULL) + zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)0,2); + else + zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)zipfi->internal_fa,2); + + if (zipfi==NULL) + zip64local_putValue_inmemory(zi->ci.central_header+38,(uLong)0,4); + else + zip64local_putValue_inmemory(zi->ci.central_header+38,(uLong)zipfi->external_fa,4); + + if(zi->ci.pos_local_header >= 0xffffffff) + zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)0xffffffff,4); + else + zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)zi->ci.pos_local_header - zi->add_position_when_writting_offset,4); + + for (i=0;ici.central_header+SIZECENTRALHEADER+i) = *(filename+i); + + for (i=0;ici.central_header+SIZECENTRALHEADER+size_filename+i) = + *(((const char*)extrafield_global)+i); + + for (i=0;ici.central_header+SIZECENTRALHEADER+size_filename+ + size_extrafield_global+i) = *(comment+i); + if (zi->ci.central_header == NULL) + return ZIP_INTERNALERROR; + + zi->ci.zip64 = zip64; + zi->ci.totalCompressedData = 0; + zi->ci.totalUncompressedData = 0; + zi->ci.pos_zip64extrainfo = 0; + + err = Write_LocalFileHeader(zi, filename, size_extrafield_local, extrafield_local); + +#ifdef HAVE_BZIP2 + zi->ci.bstream.avail_in = (uInt)0; + zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE; + zi->ci.bstream.next_out = (char*)zi->ci.buffered_data; + zi->ci.bstream.total_in_hi32 = 0; + zi->ci.bstream.total_in_lo32 = 0; + zi->ci.bstream.total_out_hi32 = 0; + zi->ci.bstream.total_out_lo32 = 0; +#endif + + zi->ci.stream.avail_in = (uInt)0; + zi->ci.stream.avail_out = (uInt)Z_BUFSIZE; + zi->ci.stream.next_out = zi->ci.buffered_data; + zi->ci.stream.total_in = 0; + zi->ci.stream.total_out = 0; + zi->ci.stream.data_type = Z_BINARY; + +#ifdef HAVE_BZIP2 + if ((err==ZIP_OK) && (zi->ci.method == Z_DEFLATED || zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw)) +#else + if ((err==ZIP_OK) && (zi->ci.method == Z_DEFLATED) && (!zi->ci.raw)) +#endif + { + if(zi->ci.method == Z_DEFLATED) + { + zi->ci.stream.zalloc = (alloc_func)0; + zi->ci.stream.zfree = (free_func)0; + zi->ci.stream.opaque = (voidpf)0; + + if (windowBits>0) + windowBits = -windowBits; + + err = deflateInit2(&zi->ci.stream, level, Z_DEFLATED, windowBits, memLevel, strategy); + + if (err==Z_OK) + zi->ci.stream_initialised = Z_DEFLATED; + } + else if(zi->ci.method == Z_BZIP2ED) + { +#ifdef HAVE_BZIP2 + // Init BZip stuff here + zi->ci.bstream.bzalloc = 0; + zi->ci.bstream.bzfree = 0; + zi->ci.bstream.opaque = (voidpf)0; + + err = BZ2_bzCompressInit(&zi->ci.bstream, level, 0,35); + if(err == BZ_OK) + zi->ci.stream_initialised = Z_BZIP2ED; +#endif + } + + } + +# ifndef NOCRYPT + zi->ci.crypt_header_size = 0; + if ((err==Z_OK) && (password != NULL)) + { + unsigned char bufHead[RAND_HEAD_LEN]; + unsigned int sizeHead; + zi->ci.encrypt = 1; + zi->ci.pcrc_32_tab = get_crc_table(); + /*init_keys(password,zi->ci.keys,zi->ci.pcrc_32_tab);*/ + + sizeHead=crypthead(password,bufHead,RAND_HEAD_LEN,zi->ci.keys,zi->ci.pcrc_32_tab,crcForCrypting); + zi->ci.crypt_header_size = sizeHead; + + if (ZWRITE64(zi->z_filefunc,zi->filestream,bufHead,sizeHead) != sizeHead) + err = ZIP_ERRNO; + } +# endif + + if (err==Z_OK) + zi->in_opened_file_inzip = 1; + return err; +} + +extern int ZEXPORT zipOpenNewFileInZip4 (zipFile file, const char* filename, const zip_fileinfo* zipfi, + const void* extrafield_local, uInt size_extrafield_local, + const void* extrafield_global, uInt size_extrafield_global, + const char* comment, int method, int level, int raw, + int windowBits,int memLevel, int strategy, + const char* password, uLong crcForCrypting, + uLong versionMadeBy, uLong flagBase) +{ + return zipOpenNewFileInZip4_64 (file, filename, zipfi, + extrafield_local, size_extrafield_local, + extrafield_global, size_extrafield_global, + comment, method, level, raw, + windowBits, memLevel, strategy, + password, crcForCrypting, versionMadeBy, flagBase, 0); +} + +extern int ZEXPORT zipOpenNewFileInZip3 (zipFile file, const char* filename, const zip_fileinfo* zipfi, + const void* extrafield_local, uInt size_extrafield_local, + const void* extrafield_global, uInt size_extrafield_global, + const char* comment, int method, int level, int raw, + int windowBits,int memLevel, int strategy, + const char* password, uLong crcForCrypting) +{ + return zipOpenNewFileInZip4_64 (file, filename, zipfi, + extrafield_local, size_extrafield_local, + extrafield_global, size_extrafield_global, + comment, method, level, raw, + windowBits, memLevel, strategy, + password, crcForCrypting, VERSIONMADEBY, 0, 0); +} + +extern int ZEXPORT zipOpenNewFileInZip3_64(zipFile file, const char* filename, const zip_fileinfo* zipfi, + const void* extrafield_local, uInt size_extrafield_local, + const void* extrafield_global, uInt size_extrafield_global, + const char* comment, int method, int level, int raw, + int windowBits,int memLevel, int strategy, + const char* password, uLong crcForCrypting, int zip64) +{ + return zipOpenNewFileInZip4_64 (file, filename, zipfi, + extrafield_local, size_extrafield_local, + extrafield_global, size_extrafield_global, + comment, method, level, raw, + windowBits, memLevel, strategy, + password, crcForCrypting, VERSIONMADEBY, 0, zip64); +} + +extern int ZEXPORT zipOpenNewFileInZip2(zipFile file, const char* filename, const zip_fileinfo* zipfi, + const void* extrafield_local, uInt size_extrafield_local, + const void* extrafield_global, uInt size_extrafield_global, + const char* comment, int method, int level, int raw) +{ + return zipOpenNewFileInZip4_64 (file, filename, zipfi, + extrafield_local, size_extrafield_local, + extrafield_global, size_extrafield_global, + comment, method, level, raw, + -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, + NULL, 0, VERSIONMADEBY, 0, 0); +} + +extern int ZEXPORT zipOpenNewFileInZip2_64(zipFile file, const char* filename, const zip_fileinfo* zipfi, + const void* extrafield_local, uInt size_extrafield_local, + const void* extrafield_global, uInt size_extrafield_global, + const char* comment, int method, int level, int raw, int zip64) +{ + return zipOpenNewFileInZip4_64 (file, filename, zipfi, + extrafield_local, size_extrafield_local, + extrafield_global, size_extrafield_global, + comment, method, level, raw, + -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, + NULL, 0, VERSIONMADEBY, 0, zip64); +} + +extern int ZEXPORT zipOpenNewFileInZip64 (zipFile file, const char* filename, const zip_fileinfo* zipfi, + const void* extrafield_local, uInt size_extrafield_local, + const void*extrafield_global, uInt size_extrafield_global, + const char* comment, int method, int level, int zip64) +{ + return zipOpenNewFileInZip4_64 (file, filename, zipfi, + extrafield_local, size_extrafield_local, + extrafield_global, size_extrafield_global, + comment, method, level, 0, + -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, + NULL, 0, VERSIONMADEBY, 0, zip64); +} + +extern int ZEXPORT zipOpenNewFileInZip (zipFile file, const char* filename, const zip_fileinfo* zipfi, + const void* extrafield_local, uInt size_extrafield_local, + const void*extrafield_global, uInt size_extrafield_global, + const char* comment, int method, int level) +{ + return zipOpenNewFileInZip4_64 (file, filename, zipfi, + extrafield_local, size_extrafield_local, + extrafield_global, size_extrafield_global, + comment, method, level, 0, + -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, + NULL, 0, VERSIONMADEBY, 0, 0); +} + +local int zip64FlushWriteBuffer(zip64_internal* zi) +{ + int err=ZIP_OK; + + if (zi->ci.encrypt != 0) + { +#ifndef NOCRYPT + uInt i; + int t; + for (i=0;ici.pos_in_buffered_data;i++) + zi->ci.buffered_data[i] = zencode(zi->ci.keys, zi->ci.pcrc_32_tab, zi->ci.buffered_data[i],t); +#endif + } + + if (ZWRITE64(zi->z_filefunc,zi->filestream,zi->ci.buffered_data,zi->ci.pos_in_buffered_data) != zi->ci.pos_in_buffered_data) + err = ZIP_ERRNO; + + zi->ci.totalCompressedData += zi->ci.pos_in_buffered_data; + +#ifdef HAVE_BZIP2 + if(zi->ci.method == Z_BZIP2ED) + { + zi->ci.totalUncompressedData += zi->ci.bstream.total_in_lo32; + zi->ci.bstream.total_in_lo32 = 0; + zi->ci.bstream.total_in_hi32 = 0; + } + else +#endif + { + zi->ci.totalUncompressedData += zi->ci.stream.total_in; + zi->ci.stream.total_in = 0; + } + + + zi->ci.pos_in_buffered_data = 0; + + return err; +} + +extern int ZEXPORT zipWriteInFileInZip (zipFile file,const void* buf,unsigned int len) +{ + zip64_internal* zi; + int err=ZIP_OK; + + if (file == NULL) + return ZIP_PARAMERROR; + zi = (zip64_internal*)file; + + if (zi->in_opened_file_inzip == 0) + return ZIP_PARAMERROR; + + zi->ci.crc32 = crc32(zi->ci.crc32,buf,(uInt)len); + +#ifdef HAVE_BZIP2 + if(zi->ci.method == Z_BZIP2ED && (!zi->ci.raw)) + { + zi->ci.bstream.next_in = (void*)buf; + zi->ci.bstream.avail_in = len; + err = BZ_RUN_OK; + + while ((err==BZ_RUN_OK) && (zi->ci.bstream.avail_in>0)) + { + if (zi->ci.bstream.avail_out == 0) + { + if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO) + err = ZIP_ERRNO; + zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE; + zi->ci.bstream.next_out = (char*)zi->ci.buffered_data; + } + + + if(err != BZ_RUN_OK) + break; + + if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw)) + { + uLong uTotalOutBefore_lo = zi->ci.bstream.total_out_lo32; +// uLong uTotalOutBefore_hi = zi->ci.bstream.total_out_hi32; + err=BZ2_bzCompress(&zi->ci.bstream, BZ_RUN); + + zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore_lo) ; + } + } + + if(err == BZ_RUN_OK) + err = ZIP_OK; + } + else +#endif + { + zi->ci.stream.next_in = (Bytef*)buf; + zi->ci.stream.avail_in = len; + + while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0)) + { + if (zi->ci.stream.avail_out == 0) + { + if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO) + err = ZIP_ERRNO; + zi->ci.stream.avail_out = (uInt)Z_BUFSIZE; + zi->ci.stream.next_out = zi->ci.buffered_data; + } + + + if(err != ZIP_OK) + break; + + if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw)) + { + uLong uTotalOutBefore = zi->ci.stream.total_out; + err=deflate(&zi->ci.stream, Z_NO_FLUSH); + if(uTotalOutBefore > zi->ci.stream.total_out) + { + int bBreak = 0; + bBreak++; + } + + zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ; + } + else + { + uInt copy_this,i; + if (zi->ci.stream.avail_in < zi->ci.stream.avail_out) + copy_this = zi->ci.stream.avail_in; + else + copy_this = zi->ci.stream.avail_out; + + for (i = 0; i < copy_this; i++) + *(((char*)zi->ci.stream.next_out)+i) = + *(((const char*)zi->ci.stream.next_in)+i); + { + zi->ci.stream.avail_in -= copy_this; + zi->ci.stream.avail_out-= copy_this; + zi->ci.stream.next_in+= copy_this; + zi->ci.stream.next_out+= copy_this; + zi->ci.stream.total_in+= copy_this; + zi->ci.stream.total_out+= copy_this; + zi->ci.pos_in_buffered_data += copy_this; + } + } + }// while(...) + } + + return err; +} + +extern int ZEXPORT zipCloseFileInZipRaw (zipFile file, uLong uncompressed_size, uLong crc32) +{ + return zipCloseFileInZipRaw64 (file, uncompressed_size, crc32); +} + +extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_size, uLong crc32) +{ + zip64_internal* zi; + ZPOS64_T compressed_size; + uLong invalidValue = 0xffffffff; + short datasize = 0; + int err=ZIP_OK; + + if (file == NULL) + return ZIP_PARAMERROR; + zi = (zip64_internal*)file; + + if (zi->in_opened_file_inzip == 0) + return ZIP_PARAMERROR; + zi->ci.stream.avail_in = 0; + + if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw)) + { + while (err==ZIP_OK) + { + uLong uTotalOutBefore; + if (zi->ci.stream.avail_out == 0) + { + if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO) + err = ZIP_ERRNO; + zi->ci.stream.avail_out = (uInt)Z_BUFSIZE; + zi->ci.stream.next_out = zi->ci.buffered_data; + } + uTotalOutBefore = zi->ci.stream.total_out; + err=deflate(&zi->ci.stream, Z_FINISH); + zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ; + } + } + else if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw)) + { +#ifdef HAVE_BZIP2 + err = BZ_FINISH_OK; + while (err==BZ_FINISH_OK) + { + uLong uTotalOutBefore; + if (zi->ci.bstream.avail_out == 0) + { + if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO) + err = ZIP_ERRNO; + zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE; + zi->ci.bstream.next_out = (char*)zi->ci.buffered_data; + } + uTotalOutBefore = zi->ci.bstream.total_out_lo32; + err=BZ2_bzCompress(&zi->ci.bstream, BZ_FINISH); + if(err == BZ_STREAM_END) + err = Z_STREAM_END; + + zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore); + } + + if(err == BZ_FINISH_OK) + err = ZIP_OK; +#endif + } + + if (err==Z_STREAM_END) + err=ZIP_OK; /* this is normal */ + + if ((zi->ci.pos_in_buffered_data>0) && (err==ZIP_OK)) + { + if (zip64FlushWriteBuffer(zi)==ZIP_ERRNO) + err = ZIP_ERRNO; + } + + if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw)) + { + int tmp_err = deflateEnd(&zi->ci.stream); + if (err == ZIP_OK) + err = tmp_err; + zi->ci.stream_initialised = 0; + } +#ifdef HAVE_BZIP2 + else if((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw)) + { + int tmperr = BZ2_bzCompressEnd(&zi->ci.bstream); + if (err==ZIP_OK) + err = tmperr; + zi->ci.stream_initialised = 0; + } +#endif + + if (!zi->ci.raw) + { + crc32 = (uLong)zi->ci.crc32; + uncompressed_size = zi->ci.totalUncompressedData; + } + compressed_size = zi->ci.totalCompressedData; + +# ifndef NOCRYPT + compressed_size += zi->ci.crypt_header_size; +# endif + + // update Current Item crc and sizes, + if(compressed_size >= 0xffffffff || uncompressed_size >= 0xffffffff || zi->ci.pos_local_header >= 0xffffffff) + { + /*version Made by*/ + zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)45,2); + /*version needed*/ + zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)45,2); + + } + + zip64local_putValue_inmemory(zi->ci.central_header+16,crc32,4); /*crc*/ + + + if(compressed_size >= 0xffffffff) + zip64local_putValue_inmemory(zi->ci.central_header+20, invalidValue,4); /*compr size*/ + else + zip64local_putValue_inmemory(zi->ci.central_header+20, compressed_size,4); /*compr size*/ + + /// set internal file attributes field + if (zi->ci.stream.data_type == Z_ASCII) + zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)Z_ASCII,2); + + if(uncompressed_size >= 0xffffffff) + zip64local_putValue_inmemory(zi->ci.central_header+24, invalidValue,4); /*uncompr size*/ + else + zip64local_putValue_inmemory(zi->ci.central_header+24, uncompressed_size,4); /*uncompr size*/ + + // Add ZIP64 extra info field for uncompressed size + if(uncompressed_size >= 0xffffffff) + datasize += 8; + + // Add ZIP64 extra info field for compressed size + if(compressed_size >= 0xffffffff) + datasize += 8; + + // Add ZIP64 extra info field for relative offset to local file header of current file + if(zi->ci.pos_local_header >= 0xffffffff) + datasize += 8; + + if(datasize > 0) + { + char* p = NULL; + + if((uLong)(datasize + 4) > zi->ci.size_centralExtraFree) + { + // we can not write more data to the buffer that we have room for. + return ZIP_BADZIPFILE; + } + + p = zi->ci.central_header + zi->ci.size_centralheader; + + // Add Extra Information Header for 'ZIP64 information' + zip64local_putValue_inmemory(p, 0x0001, 2); // HeaderID + p += 2; + zip64local_putValue_inmemory(p, datasize, 2); // DataSize + p += 2; + + if(uncompressed_size >= 0xffffffff) + { + zip64local_putValue_inmemory(p, uncompressed_size, 8); + p += 8; + } + + if(compressed_size >= 0xffffffff) + { + zip64local_putValue_inmemory(p, compressed_size, 8); + p += 8; + } + + if(zi->ci.pos_local_header >= 0xffffffff) + { + zip64local_putValue_inmemory(p, zi->ci.pos_local_header, 8); + p += 8; + } + + // Update how much extra free space we got in the memory buffer + // and increase the centralheader size so the new ZIP64 fields are included + // ( 4 below is the size of HeaderID and DataSize field ) + zi->ci.size_centralExtraFree -= datasize + 4; + zi->ci.size_centralheader += datasize + 4; + + // Update the extra info size field + zi->ci.size_centralExtra += datasize + 4; + zip64local_putValue_inmemory(zi->ci.central_header+30,(uLong)zi->ci.size_centralExtra,2); + } + + if (err==ZIP_OK) + err = add_data_in_datablock(&zi->central_dir, zi->ci.central_header, (uLong)zi->ci.size_centralheader); + + free(zi->ci.central_header); + + if (err==ZIP_OK) + { + // Update the LocalFileHeader with the new values. + + ZPOS64_T cur_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream); + + if (ZSEEK64(zi->z_filefunc,zi->filestream, zi->ci.pos_local_header + 14,ZLIB_FILEFUNC_SEEK_SET)!=0) + err = ZIP_ERRNO; + + if (err==ZIP_OK) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,crc32,4); /* crc 32, unknown */ + + if(uncompressed_size >= 0xffffffff || compressed_size >= 0xffffffff ) + { + if(zi->ci.pos_zip64extrainfo > 0) + { + // Update the size in the ZIP64 extended field. + if (ZSEEK64(zi->z_filefunc,zi->filestream, zi->ci.pos_zip64extrainfo + 4,ZLIB_FILEFUNC_SEEK_SET)!=0) + err = ZIP_ERRNO; + + if (err==ZIP_OK) /* compressed size, unknown */ + err = zip64local_putValue(&zi->z_filefunc, zi->filestream, uncompressed_size, 8); + + if (err==ZIP_OK) /* uncompressed size, unknown */ + err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 8); + } + else + err = ZIP_BADZIPFILE; // Caller passed zip64 = 0, so no room for zip64 info -> fatal + } + else + { + if (err==ZIP_OK) /* compressed size, unknown */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,compressed_size,4); + + if (err==ZIP_OK) /* uncompressed size, unknown */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,uncompressed_size,4); + } + + if (ZSEEK64(zi->z_filefunc,zi->filestream, cur_pos_inzip,ZLIB_FILEFUNC_SEEK_SET)!=0) + err = ZIP_ERRNO; + } + + zi->number_entry ++; + zi->in_opened_file_inzip = 0; + + return err; +} + +extern int ZEXPORT zipCloseFileInZip (zipFile file) +{ + return zipCloseFileInZipRaw (file,0,0); +} + +int Write_Zip64EndOfCentralDirectoryLocator(zip64_internal* zi, ZPOS64_T zip64eocd_pos_inzip) +{ + int err = ZIP_OK; + ZPOS64_T pos = zip64eocd_pos_inzip - zi->add_position_when_writting_offset; + + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDLOCHEADERMAGIC,4); + + /*num disks*/ + if (err==ZIP_OK) /* number of the disk with the start of the central directory */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); + + /*relative offset*/ + if (err==ZIP_OK) /* Relative offset to the Zip64EndOfCentralDirectory */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream, pos,8); + + /*total disks*/ /* Do not support spawning of disk so always say 1 here*/ + if (err==ZIP_OK) /* number of the disk with the start of the central directory */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)1,4); + + return err; +} + +int Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip) +{ + int err = ZIP_OK; + + uLong Zip64DataSize = 44; + + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDHEADERMAGIC,4); + + if (err==ZIP_OK) /* size of this 'zip64 end of central directory' */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)Zip64DataSize,8); // why ZPOS64_T of this ? + + if (err==ZIP_OK) /* version made by */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2); + + if (err==ZIP_OK) /* version needed */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2); + + if (err==ZIP_OK) /* number of this disk */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); + + if (err==ZIP_OK) /* number of the disk with the start of the central directory */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); + + if (err==ZIP_OK) /* total number of entries in the central dir on this disk */ + err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8); + + if (err==ZIP_OK) /* total number of entries in the central dir */ + err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8); + + if (err==ZIP_OK) /* size of the central directory */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)size_centraldir,8); + + if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */ + { + ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset; + err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (ZPOS64_T)pos,8); + } + return err; +} +int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip) +{ + int err = ZIP_OK; + + /*signature*/ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ENDHEADERMAGIC,4); + + if (err==ZIP_OK) /* number of this disk */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2); + + if (err==ZIP_OK) /* number of the disk with the start of the central directory */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2); + + if (err==ZIP_OK) /* total number of entries in the central dir on this disk */ + { + { + if(zi->number_entry >= 0xFFFF) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record + else + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2); + } + } + + if (err==ZIP_OK) /* total number of entries in the central dir */ + { + if(zi->number_entry >= 0xFFFF) + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record + else + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2); + } + + if (err==ZIP_OK) /* size of the central directory */ + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_centraldir,4); + + if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */ + { + ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset; + if(pos >= 0xffffffff) + { + err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)0xffffffff,4); + } + else + err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writting_offset),4); + } + + return err; +} + +int Write_GlobalComment(zip64_internal* zi, const char* global_comment) +{ + int err = ZIP_OK; + uInt size_global_comment = 0; + + if(global_comment != NULL) + size_global_comment = (uInt)strlen(global_comment); + + err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_global_comment,2); + + if (err == ZIP_OK && size_global_comment > 0) + { + if (ZWRITE64(zi->z_filefunc,zi->filestream, global_comment, size_global_comment) != size_global_comment) + err = ZIP_ERRNO; + } + return err; +} + +extern int ZEXPORT zipClose (zipFile file, const char* global_comment) +{ + zip64_internal* zi; + int err = 0; + uLong size_centraldir = 0; + ZPOS64_T centraldir_pos_inzip; + ZPOS64_T pos; + + if (file == NULL) + return ZIP_PARAMERROR; + + zi = (zip64_internal*)file; + + if (zi->in_opened_file_inzip == 1) + { + err = zipCloseFileInZip (file); + } + +#ifndef NO_ADDFILEINEXISTINGZIP + if (global_comment==NULL) + global_comment = zi->globalcomment; +#endif + + centraldir_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream); + + if (err==ZIP_OK) + { + linkedlist_datablock_internal* ldi = zi->central_dir.first_block; + while (ldi!=NULL) + { + if ((err==ZIP_OK) && (ldi->filled_in_this_block>0)) + { + if (ZWRITE64(zi->z_filefunc,zi->filestream, ldi->data, ldi->filled_in_this_block) != ldi->filled_in_this_block) + err = ZIP_ERRNO; + } + + size_centraldir += ldi->filled_in_this_block; + ldi = ldi->next_datablock; + } + } + free_linkedlist(&(zi->central_dir)); + + pos = centraldir_pos_inzip - zi->add_position_when_writting_offset; + if(pos >= 0xffffffff || zi->number_entry > 0xFFFF) + { + ZPOS64_T Zip64EOCDpos = ZTELL64(zi->z_filefunc,zi->filestream); + Write_Zip64EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip); + + Write_Zip64EndOfCentralDirectoryLocator(zi, Zip64EOCDpos); + } + + if (err==ZIP_OK) + err = Write_EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip); + + if(err == ZIP_OK) + err = Write_GlobalComment(zi, global_comment); + + if (ZCLOSE64(zi->z_filefunc,zi->filestream) != 0) + if (err == ZIP_OK) + err = ZIP_ERRNO; + +#ifndef NO_ADDFILEINEXISTINGZIP + TRYFREE(zi->globalcomment); +#endif + TRYFREE(zi); + + return err; +} + +extern int ZEXPORT zipRemoveExtraInfoBlock (char* pData, int* dataLen, short sHeader) +{ + char* p = pData; + int size = 0; + char* pNewHeader; + char* pTmp; + short header; + short dataSize; + + int retVal = ZIP_OK; + + if(pData == NULL || *dataLen < 4) + return ZIP_PARAMERROR; + + pNewHeader = (char*)ALLOC(*dataLen); + pTmp = pNewHeader; + + while(p < (pData + *dataLen)) + { + header = *(short*)p; + dataSize = *(((short*)p)+1); + + if( header == sHeader ) // Header found. + { + p += dataSize + 4; // skip it. do not copy to temp buffer + } + else + { + // Extra Info block should not be removed, So copy it to the temp buffer. + memcpy(pTmp, p, dataSize + 4); + p += dataSize + 4; + size += dataSize + 4; + } + + } + + if(size < *dataLen) + { + // clean old extra info block. + memset(pData,0, *dataLen); + + // copy the new extra info block over the old + if(size > 0) + memcpy(pData, pNewHeader, size); + + // set the new extra info size + *dataLen = size; + + retVal = ZIP_OK; + } + else + retVal = ZIP_ERRNO; + + TRYFREE(pNewHeader); + + return retVal; +} diff --git a/storage/connect/zip.h b/storage/connect/zip.h new file mode 100644 index 00000000000..8aaebb62343 --- /dev/null +++ b/storage/connect/zip.h @@ -0,0 +1,362 @@ +/* zip.h -- IO on .zip files using zlib + Version 1.1, February 14h, 2010 + part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) + + Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) + + Modifications for Zip64 support + Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) + + For more info read MiniZip_info.txt + + --------------------------------------------------------------------------- + + Condition of use and distribution are the same than zlib : + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + --------------------------------------------------------------------------- + + Changes + + See header of zip.h + +*/ + +#ifndef _zip12_H +#define _zip12_H + +#ifdef __cplusplus +extern "C" { +#endif + +//#define HAVE_BZIP2 + +#ifndef _ZLIB_H +#include "zlib.h" +#endif + +#ifndef _ZLIBIOAPI_H +#include "ioapi.h" +#endif + +#ifdef HAVE_BZIP2 +#include "bzlib.h" +#endif + +#define Z_BZIP2ED 12 + +#if defined(STRICTZIP) || defined(STRICTZIPUNZIP) +/* like the STRICT of WIN32, we define a pointer that cannot be converted + from (void*) without cast */ +typedef struct TagzipFile__ { int unused; } zipFile__; +typedef zipFile__ *zipFile; +#else +typedef voidp zipFile; +#endif + +#define ZIP_OK (0) +#define ZIP_EOF (0) +#define ZIP_ERRNO (Z_ERRNO) +#define ZIP_PARAMERROR (-102) +#define ZIP_BADZIPFILE (-103) +#define ZIP_INTERNALERROR (-104) + +#ifndef DEF_MEM_LEVEL +# if MAX_MEM_LEVEL >= 8 +# define DEF_MEM_LEVEL 8 +# else +# define DEF_MEM_LEVEL MAX_MEM_LEVEL +# endif +#endif +/* default memLevel */ + +/* tm_zip contain date/time info */ +typedef struct tm_zip_s +{ + uInt tm_sec; /* seconds after the minute - [0,59] */ + uInt tm_min; /* minutes after the hour - [0,59] */ + uInt tm_hour; /* hours since midnight - [0,23] */ + uInt tm_mday; /* day of the month - [1,31] */ + uInt tm_mon; /* months since January - [0,11] */ + uInt tm_year; /* years - [1980..2044] */ +} tm_zip; + +typedef struct +{ + tm_zip tmz_date; /* date in understandable format */ + uLong dosDate; /* if dos_date == 0, tmu_date is used */ +/* uLong flag; */ /* general purpose bit flag 2 bytes */ + + uLong internal_fa; /* internal file attributes 2 bytes */ + uLong external_fa; /* external file attributes 4 bytes */ +} zip_fileinfo; + +typedef const char* zipcharpc; + + +#define APPEND_STATUS_CREATE (0) +#define APPEND_STATUS_CREATEAFTER (1) +#define APPEND_STATUS_ADDINZIP (2) + +extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append)); +extern zipFile ZEXPORT zipOpen64 OF((const void *pathname, int append)); +/* + Create a zipfile. + pathname contain on Windows XP a filename like "c:\\zlib\\zlib113.zip" or on + an Unix computer "zlib/zlib113.zip". + if the file pathname exist and append==APPEND_STATUS_CREATEAFTER, the zip + will be created at the end of the file. + (useful if the file contain a self extractor code) + if the file pathname exist and append==APPEND_STATUS_ADDINZIP, we will + add files in existing zip (be sure you don't add file that doesn't exist) + If the zipfile cannot be opened, the return value is NULL. + Else, the return value is a zipFile Handle, usable with other function + of this zip package. +*/ + +/* Note : there is no delete function into a zipfile. + If you want delete file into a zipfile, you must open a zipfile, and create another + Of couse, you can use RAW reading and writing to copy the file you did not want delte +*/ + +extern zipFile ZEXPORT zipOpen2 OF((const char *pathname, + int append, + zipcharpc* globalcomment, + zlib_filefunc_def* pzlib_filefunc_def)); + +extern zipFile ZEXPORT zipOpen2_64 OF((const void *pathname, + int append, + zipcharpc* globalcomment, + zlib_filefunc64_def* pzlib_filefunc_def)); + +extern int ZEXPORT zipOpenNewFileInZip OF((zipFile file, + const char* filename, + const zip_fileinfo* zipfi, + const void* extrafield_local, + uInt size_extrafield_local, + const void* extrafield_global, + uInt size_extrafield_global, + const char* comment, + int method, + int level)); + +extern int ZEXPORT zipOpenNewFileInZip64 OF((zipFile file, + const char* filename, + const zip_fileinfo* zipfi, + const void* extrafield_local, + uInt size_extrafield_local, + const void* extrafield_global, + uInt size_extrafield_global, + const char* comment, + int method, + int level, + int zip64)); + +/* + Open a file in the ZIP for writing. + filename : the filename in zip (if NULL, '-' without quote will be used + *zipfi contain supplemental information + if extrafield_local!=NULL and size_extrafield_local>0, extrafield_local + contains the extrafield data the the local header + if extrafield_global!=NULL and size_extrafield_global>0, extrafield_global + contains the extrafield data the the local header + if comment != NULL, comment contain the comment string + method contain the compression method (0 for store, Z_DEFLATED for deflate) + level contain the level of compression (can be Z_DEFAULT_COMPRESSION) + zip64 is set to 1 if a zip64 extended information block should be added to the local file header. + this MUST be '1' if the uncompressed size is >= 0xffffffff. + +*/ + + +extern int ZEXPORT zipOpenNewFileInZip2 OF((zipFile file, + const char* filename, + const zip_fileinfo* zipfi, + const void* extrafield_local, + uInt size_extrafield_local, + const void* extrafield_global, + uInt size_extrafield_global, + const char* comment, + int method, + int level, + int raw)); + + +extern int ZEXPORT zipOpenNewFileInZip2_64 OF((zipFile file, + const char* filename, + const zip_fileinfo* zipfi, + const void* extrafield_local, + uInt size_extrafield_local, + const void* extrafield_global, + uInt size_extrafield_global, + const char* comment, + int method, + int level, + int raw, + int zip64)); +/* + Same than zipOpenNewFileInZip, except if raw=1, we write raw file + */ + +extern int ZEXPORT zipOpenNewFileInZip3 OF((zipFile file, + const char* filename, + const zip_fileinfo* zipfi, + const void* extrafield_local, + uInt size_extrafield_local, + const void* extrafield_global, + uInt size_extrafield_global, + const char* comment, + int method, + int level, + int raw, + int windowBits, + int memLevel, + int strategy, + const char* password, + uLong crcForCrypting)); + +extern int ZEXPORT zipOpenNewFileInZip3_64 OF((zipFile file, + const char* filename, + const zip_fileinfo* zipfi, + const void* extrafield_local, + uInt size_extrafield_local, + const void* extrafield_global, + uInt size_extrafield_global, + const char* comment, + int method, + int level, + int raw, + int windowBits, + int memLevel, + int strategy, + const char* password, + uLong crcForCrypting, + int zip64 + )); + +/* + Same than zipOpenNewFileInZip2, except + windowBits,memLevel,,strategy : see parameter strategy in deflateInit2 + password : crypting password (NULL for no crypting) + crcForCrypting : crc of file to compress (needed for crypting) + */ + +extern int ZEXPORT zipOpenNewFileInZip4 OF((zipFile file, + const char* filename, + const zip_fileinfo* zipfi, + const void* extrafield_local, + uInt size_extrafield_local, + const void* extrafield_global, + uInt size_extrafield_global, + const char* comment, + int method, + int level, + int raw, + int windowBits, + int memLevel, + int strategy, + const char* password, + uLong crcForCrypting, + uLong versionMadeBy, + uLong flagBase + )); + + +extern int ZEXPORT zipOpenNewFileInZip4_64 OF((zipFile file, + const char* filename, + const zip_fileinfo* zipfi, + const void* extrafield_local, + uInt size_extrafield_local, + const void* extrafield_global, + uInt size_extrafield_global, + const char* comment, + int method, + int level, + int raw, + int windowBits, + int memLevel, + int strategy, + const char* password, + uLong crcForCrypting, + uLong versionMadeBy, + uLong flagBase, + int zip64 + )); +/* + Same than zipOpenNewFileInZip4, except + versionMadeBy : value for Version made by field + flag : value for flag field (compression level info will be added) + */ + + +extern int ZEXPORT zipWriteInFileInZip OF((zipFile file, + const void* buf, + unsigned len)); +/* + Write data in the zipfile +*/ + +extern int ZEXPORT zipCloseFileInZip OF((zipFile file)); +/* + Close the current file in the zipfile +*/ + +extern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file, + uLong uncompressed_size, + uLong crc32)); + +extern int ZEXPORT zipCloseFileInZipRaw64 OF((zipFile file, + ZPOS64_T uncompressed_size, + uLong crc32)); + +/* + Close the current file in the zipfile, for file opened with + parameter raw=1 in zipOpenNewFileInZip2 + uncompressed_size and crc32 are value for the uncompressed size +*/ + +extern int ZEXPORT zipClose OF((zipFile file, + const char* global_comment)); +/* + Close the zipfile +*/ + + +extern int ZEXPORT zipRemoveExtraInfoBlock OF((char* pData, int* dataLen, short sHeader)); +/* + zipRemoveExtraInfoBlock - Added by Mathias Svensson + + Remove extra information block from a extra information data for the local file header or central directory header + + It is needed to remove ZIP64 extra information blocks when before data is written if using RAW mode. + + 0x0001 is the signature header for the ZIP64 extra information blocks + + usage. + Remove ZIP64 Extra information from a central director extra field data + zipRemoveExtraInfoBlock(pCenDirExtraFieldData, &nCenDirExtraFieldDataLen, 0x0001); + + Remove ZIP64 Extra information from a Local File Header extra field data + zipRemoveExtraInfoBlock(pLocalHeaderExtraFieldData, &nLocalHeaderExtraFieldDataLen, 0x0001); +*/ + +#ifdef __cplusplus +} +#endif + +#endif /* _zip64_H */ From ffdd1e9d888edc4e147c3b316a87468b000f8dd4 Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Wed, 14 Dec 2016 13:57:05 +0530 Subject: [PATCH 045/258] Revert "MDEV-11016 wsrep_node_is_ready() check is too strict" This reverts commit 52ea5ad865b4f6b4b37176296a3be0a716c5109a. # Conflicts: # mysql-test/suite/galera/r/galera_var_dirty_reads.result # mysql-test/suite/galera/t/galera_var_dirty_reads.test # sql/sql_parse.cc --- .../suite/galera/r/galera_var_dirty_reads.result | 16 ---------------- .../suite/galera/t/galera_var_dirty_reads.test | 13 ------------- sql/sql_parse.cc | 4 ---- 3 files changed, 33 deletions(-) diff --git a/mysql-test/suite/galera/r/galera_var_dirty_reads.result b/mysql-test/suite/galera/r/galera_var_dirty_reads.result index c0ffb2d4860..6d703c8cf95 100644 --- a/mysql-test/suite/galera/r/galera_var_dirty_reads.result +++ b/mysql-test/suite/galera/r/galera_var_dirty_reads.result @@ -18,22 +18,6 @@ SET @@session.wsrep_dirty_reads=ON; SELECT * FROM t1; i 1 -# -# MDEV-11016: wsrep_node_is_ready() check is too strict -# -SET @@session.wsrep_dirty_reads=OFF; -SELECT 2; -2 -2 -SELECT 2+2 from DUAL; -2+2 -4 -SET @VAR=1; -SELECT @VAR; -@VAR -1 -SELECT @@max_allowed_packet; -SELECT SYSDATE() from DUAL; SELECT * FROM t1; i 1 diff --git a/mysql-test/suite/galera/t/galera_var_dirty_reads.test b/mysql-test/suite/galera/t/galera_var_dirty_reads.test index 7a76a71a265..dfd8d5ecf29 100644 --- a/mysql-test/suite/galera/t/galera_var_dirty_reads.test +++ b/mysql-test/suite/galera/t/galera_var_dirty_reads.test @@ -36,19 +36,6 @@ SET @@session.wsrep_dirty_reads=ON; SELECT * FROM t1; ---echo # ---echo # MDEV-11016: wsrep_node_is_ready() check is too strict ---echo # -SET @@session.wsrep_dirty_reads=OFF; -SELECT 2; -SELECT 2+2 from DUAL; -SET @VAR=1; -SELECT @VAR; ---disable_result_log -SELECT @@max_allowed_packet; -SELECT SYSDATE() from DUAL; ---enable_result_log - --disable_query_log --eval SET @@global.wsrep_cluster_address = '$wsrep_cluster_address_saved' --enable_query_log diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 53350751d79..4ed1b7a5323 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2635,15 +2635,11 @@ mysql_execute_command(THD *thd) /* Bail out if DB snapshot has not been installed. We however, allow SET and SHOW queries. - SHOW and SELECT queries (only if wsrep_dirty_reads is set or when it - does not access ant table) */ if (thd->variables.wsrep_on && !thd->wsrep_applier && !wsrep_ready && lex->sql_command != SQLCOM_SET_OPTION && !(thd->variables.wsrep_dirty_reads && lex->sql_command == SQLCOM_SELECT) && - !(lex->sql_command == SQLCOM_SELECT && - !all_tables) && !wsrep_is_show_query(lex->sql_command)) { my_message(ER_UNKNOWN_COM_ERROR, From 4c1e181ac5eac55c67705ffe29b48a5d832211be Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Wed, 14 Dec 2016 15:22:04 +0530 Subject: [PATCH 046/258] MDEV-11479 Improved wsrep_dirty_reads Tasks:- Changes in wsrep_dirty_reads variable 1.) Global + Session scope (Current: session-only) 2.) Can be set using command line. 3.) Allow all commands that do not change data (besides SELECT) 4.) Allow prepared Statements that do not change data 5.) Works with wsrep_sync_wait enabled --- mysql-test/r/mysqld--help.result | 3 + .../galera/r/galera_var_dirty_reads.result | 70 +++++++++++++++++++ .../galera/t/galera_var_dirty_reads.test | 68 ++++++++++++++++++ .../sys_vars/r/wsrep_dirty_reads_basic.result | 23 +++++- .../sys_vars/t/wsrep_dirty_reads_basic.test | 17 ++++- sql/sql_parse.cc | 9 ++- sql/sys_vars.cc | 5 +- sql/wsrep_mysqld.cc | 4 ++ sql/wsrep_mysqld.h | 1 + 9 files changed, 191 insertions(+), 9 deletions(-) diff --git a/mysql-test/r/mysqld--help.result b/mysql-test/r/mysqld--help.result index 8ff9073b625..e911f0b8db6 100644 --- a/mysql-test/r/mysqld--help.result +++ b/mysql-test/r/mysqld--help.result @@ -1080,6 +1080,8 @@ The following options may be given as the first argument: DBUG options to provider library --wsrep-debug To enable debug level logging --wsrep-desync To desynchronize the node from the cluster + --wsrep-dirty-reads Allow reads even when the node is not in the primary + component. --wsrep-drupal-282555-workaround To use a workaround forbad autoincrement value --wsrep-forced-binlog-format=name @@ -1454,6 +1456,7 @@ wsrep-convert-LOCK-to-trx FALSE wsrep-dbug-option wsrep-debug FALSE wsrep-desync FALSE +wsrep-dirty-reads FALSE wsrep-drupal-282555-workaround FALSE wsrep-forced-binlog-format NONE wsrep-load-data-splitting TRUE diff --git a/mysql-test/suite/galera/r/galera_var_dirty_reads.result b/mysql-test/suite/galera/r/galera_var_dirty_reads.result index 6d703c8cf95..8a3175912c7 100644 --- a/mysql-test/suite/galera/r/galera_var_dirty_reads.result +++ b/mysql-test/suite/galera/r/galera_var_dirty_reads.result @@ -3,6 +3,10 @@ INSERT INTO t1 VALUES(1); SELECT * FROM t1; i 1 +create user user1; +grant all privileges on *.* to user1; +create user user2; +grant all privileges on *.* to user2; SET @@global.wsrep_cluster_address = ''; SET @@session.wsrep_dirty_reads=OFF; SET SESSION wsrep_sync_wait=0; @@ -18,8 +22,74 @@ SET @@session.wsrep_dirty_reads=ON; SELECT * FROM t1; i 1 +connect con1, localhost, user1,,test,$NODE_MYPORT_2,$NODE_MYSOCK_2; +SET SESSION wsrep_sync_wait=0; +set session wsrep_dirty_reads=1; +prepare stmt_show from 'select 1'; +prepare stmt_select from 'select * from t1'; +prepare stmt_insert from 'insert into t1 values(1)'; +set session wsrep_dirty_reads=0; +execute stmt_show; +ERROR 08S01: WSREP has not yet prepared node for application use +execute stmt_select; +ERROR 08S01: WSREP has not yet prepared node for application use +execute stmt_insert; +ERROR 08S01: WSREP has not yet prepared node for application use +SET wsrep_dirty_reads=ON; +select @@session.wsrep_dirty_reads; +@@session.wsrep_dirty_reads +1 +execute stmt_show; +1 +1 +execute stmt_select; +i +1 +execute stmt_insert; +ERROR 08S01: WSREP has not yet prepared node for application use +SET @@global.wsrep_dirty_reads=ON; +connect con2, localhost, user2,,test,$NODE_MYPORT_2,$NODE_MYSOCK_2; +select @@session.wsrep_dirty_reads; +@@session.wsrep_dirty_reads +1 +prepare stmt_show from 'select 1'; +prepare stmt_select from 'select * from t1'; +prepare stmt_insert from 'insert into t1 values(1)'; +execute stmt_show; +1 +1 +execute stmt_select; +i +1 +execute stmt_insert; +ERROR 08S01: WSREP has not yet prepared node for application use +SET SESSION wsrep_sync_wait=1; +execute stmt_show; +1 +1 +execute stmt_select; +i +1 +execute stmt_insert; +ERROR 08S01: WSREP has not yet prepared node for application use +SET SESSION wsrep_sync_wait=7; +execute stmt_show; +1 +1 +execute stmt_select; +i +1 +execute stmt_insert; +ERROR 08S01: WSREP has not yet prepared node for application use +connection node_2; +SET @@global.wsrep_dirty_reads=OFF; +connection node_1; SELECT * FROM t1; i 1 DROP TABLE t1; +drop user user1; +drop user user2; +disconnect node_2; +disconnect node_1; # End of test diff --git a/mysql-test/suite/galera/t/galera_var_dirty_reads.test b/mysql-test/suite/galera/t/galera_var_dirty_reads.test index dfd8d5ecf29..bcdb1574a3d 100644 --- a/mysql-test/suite/galera/t/galera_var_dirty_reads.test +++ b/mysql-test/suite/galera/t/galera_var_dirty_reads.test @@ -17,6 +17,11 @@ CREATE TABLE t1(i INT) ENGINE=INNODB; INSERT INTO t1 VALUES(1); SELECT * FROM t1; +create user user1; +grant all privileges on *.* to user1; +create user user2; +grant all privileges on *.* to user2; + SET @@global.wsrep_cluster_address = ''; SET @@session.wsrep_dirty_reads=OFF; @@ -36,6 +41,67 @@ SET @@session.wsrep_dirty_reads=ON; SELECT * FROM t1; +--enable_connect_log +--connect (con1, localhost, user1,,test,$NODE_MYPORT_2,$NODE_MYSOCK_2) +#Just test the session behavior +SET SESSION wsrep_sync_wait=0; + +set session wsrep_dirty_reads=1; +#Prepared statement creation should be allowed MDEV-11479 +prepare stmt_show from 'select 1'; +prepare stmt_select from 'select * from t1'; +prepare stmt_insert from 'insert into t1 values(1)'; +set session wsrep_dirty_reads=0; + +#No Preapare stmt/proceure will be allowed +--error ER_UNKNOWN_COM_ERROR +execute stmt_show; +--error ER_UNKNOWN_COM_ERROR +execute stmt_select; +--error ER_UNKNOWN_COM_ERROR +execute stmt_insert; + +SET wsrep_dirty_reads=ON; +select @@session.wsrep_dirty_reads; +#Only prepare statement which does not change data should be allowed +execute stmt_show; +execute stmt_select; +--error ER_UNKNOWN_COM_ERROR +execute stmt_insert; +SET @@global.wsrep_dirty_reads=ON; + +--connect (con2, localhost, user2,,test,$NODE_MYPORT_2,$NODE_MYSOCK_2) +#Just test the session behavior +select @@session.wsrep_dirty_reads; + +prepare stmt_show from 'select 1'; +prepare stmt_select from 'select * from t1'; +prepare stmt_insert from 'insert into t1 values(1)'; + +#Only prepare statement which does not change data should be allowed +execute stmt_show; +execute stmt_select; +--error ER_UNKNOWN_COM_ERROR +execute stmt_insert; + +#wsrep_dirty_read should work when wsrep_sync_wait is 1 or non zero +#because we already are disconnected , So It does not make any sense +#to wait for other nodes +SET SESSION wsrep_sync_wait=1; +execute stmt_show; +execute stmt_select; +--error ER_UNKNOWN_COM_ERROR +execute stmt_insert; + +SET SESSION wsrep_sync_wait=7; +execute stmt_show; +execute stmt_select; +--error ER_UNKNOWN_COM_ERROR +execute stmt_insert; + +--connection node_2 +SET @@global.wsrep_dirty_reads=OFF; + --disable_query_log --eval SET @@global.wsrep_cluster_address = '$wsrep_cluster_address_saved' --enable_query_log @@ -45,6 +111,8 @@ SELECT * FROM t1; SELECT * FROM t1; # Cleanup DROP TABLE t1; +drop user user1; +drop user user2; # Restore original auto_increment_offset values. --source include/auto_increment_offset_restore.inc diff --git a/mysql-test/suite/sys_vars/r/wsrep_dirty_reads_basic.result b/mysql-test/suite/sys_vars/r/wsrep_dirty_reads_basic.result index d2a62d6136f..1968103873a 100644 --- a/mysql-test/suite/sys_vars/r/wsrep_dirty_reads_basic.result +++ b/mysql-test/suite/sys_vars/r/wsrep_dirty_reads_basic.result @@ -5,12 +5,13 @@ SET @wsrep_dirty_reads_session_saved = @@session.wsrep_dirty_reads; # default SELECT @@global.wsrep_dirty_reads; -ERROR HY000: Variable 'wsrep_dirty_reads' is a SESSION variable +@@global.wsrep_dirty_reads +0 SELECT @@session.wsrep_dirty_reads; @@session.wsrep_dirty_reads 0 -# scope and valid values +# valid values for session SET @@session.wsrep_dirty_reads=OFF; SELECT @@session.wsrep_dirty_reads; @@session.wsrep_dirty_reads @@ -24,11 +25,29 @@ SELECT @@session.wsrep_dirty_reads; @@session.wsrep_dirty_reads 0 +# valid values for global +SET @@global.wsrep_dirty_reads=OFF; +SELECT @@global.wsrep_dirty_reads; +@@global.wsrep_dirty_reads +0 +SET @@global.wsrep_dirty_reads=ON; +SELECT @@global.wsrep_dirty_reads; +@@global.wsrep_dirty_reads +1 +SET @@global.wsrep_dirty_reads=default; +SELECT @@global.wsrep_dirty_reads; +@@global.wsrep_dirty_reads +0 + # invalid values SET @@session.wsrep_dirty_reads=NULL; ERROR 42000: Variable 'wsrep_dirty_reads' can't be set to the value of 'NULL' SET @@session.wsrep_dirty_reads='junk'; ERROR 42000: Variable 'wsrep_dirty_reads' can't be set to the value of 'junk' +SET @@global.wsrep_dirty_reads=NULL; +ERROR 42000: Variable 'wsrep_dirty_reads' can't be set to the value of 'NULL' +SET @@global.wsrep_dirty_reads='junk'; +ERROR 42000: Variable 'wsrep_dirty_reads' can't be set to the value of 'junk' # restore the initial values SET @@session.wsrep_dirty_reads = @wsrep_dirty_reads_session_saved; diff --git a/mysql-test/suite/sys_vars/t/wsrep_dirty_reads_basic.test b/mysql-test/suite/sys_vars/t/wsrep_dirty_reads_basic.test index a47524fcfe3..ffe767a051b 100644 --- a/mysql-test/suite/sys_vars/t/wsrep_dirty_reads_basic.test +++ b/mysql-test/suite/sys_vars/t/wsrep_dirty_reads_basic.test @@ -8,12 +8,12 @@ SET @wsrep_dirty_reads_session_saved = @@session.wsrep_dirty_reads; --echo # default ---error ER_INCORRECT_GLOBAL_LOCAL_VAR + SELECT @@global.wsrep_dirty_reads; SELECT @@session.wsrep_dirty_reads; --echo ---echo # scope and valid values +--echo # valid values for session SET @@session.wsrep_dirty_reads=OFF; SELECT @@session.wsrep_dirty_reads; SET @@session.wsrep_dirty_reads=ON; @@ -21,12 +21,25 @@ SELECT @@session.wsrep_dirty_reads; SET @@session.wsrep_dirty_reads=default; SELECT @@session.wsrep_dirty_reads; +--echo +--echo # valid values for global +SET @@global.wsrep_dirty_reads=OFF; +SELECT @@global.wsrep_dirty_reads; +SET @@global.wsrep_dirty_reads=ON; +SELECT @@global.wsrep_dirty_reads; +SET @@global.wsrep_dirty_reads=default; +SELECT @@global.wsrep_dirty_reads; + --echo --echo # invalid values --error ER_WRONG_VALUE_FOR_VAR SET @@session.wsrep_dirty_reads=NULL; --error ER_WRONG_VALUE_FOR_VAR SET @@session.wsrep_dirty_reads='junk'; +--error ER_WRONG_VALUE_FOR_VAR +SET @@global.wsrep_dirty_reads=NULL; +--error ER_WRONG_VALUE_FOR_VAR +SET @@global.wsrep_dirty_reads='junk'; --echo --echo # restore the initial values diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 4ed1b7a5323..d92ef810498 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2633,13 +2633,16 @@ mysql_execute_command(THD *thd) } /* - Bail out if DB snapshot has not been installed. We however, - allow SET and SHOW queries. + Bail out if DB snapshot has not been installed. SET and SHOW commands, + however, are always allowed. + + We additionally allow all other commands that do not change data in + case wsrep_dirty_reads is enabled. */ if (thd->variables.wsrep_on && !thd->wsrep_applier && !wsrep_ready && lex->sql_command != SQLCOM_SET_OPTION && !(thd->variables.wsrep_dirty_reads && - lex->sql_command == SQLCOM_SELECT) && + !is_update_query(lex->sql_command)) && !wsrep_is_show_query(lex->sql_command)) { my_message(ER_UNKNOWN_COM_ERROR, diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index af440d7ac44..93a863d6b88 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -4811,8 +4811,9 @@ static Sys_var_mybool Sys_wsrep_restart_slave( GLOBAL_VAR(wsrep_restart_slave), CMD_LINE(OPT_ARG), DEFAULT(FALSE)); static Sys_var_mybool Sys_wsrep_dirty_reads( - "wsrep_dirty_reads", "Do not reject SELECT queries even when the node " - "is not ready.", SESSION_ONLY(wsrep_dirty_reads), NO_CMD_LINE, + "wsrep_dirty_reads", + "Allow reads even when the node is not in the primary component.", + SESSION_VAR(wsrep_dirty_reads), CMD_LINE(OPT_ARG), DEFAULT(FALSE), NO_MUTEX_GUARD, NOT_IN_BINLOG); #endif /* WITH_WSREP */ diff --git a/sql/wsrep_mysqld.cc b/sql/wsrep_mysqld.cc index 13b72b65afe..353911dcfde 100644 --- a/sql/wsrep_mysqld.cc +++ b/sql/wsrep_mysqld.cc @@ -71,6 +71,8 @@ my_bool wsrep_restart_slave_activated = 0; // node has dropped, and slave // restart will be needed my_bool wsrep_slave_UK_checks = 0; // slave thread does UK checks my_bool wsrep_slave_FK_checks = 0; // slave thread does FK checks +// Allow reads even if the node is not in the primary component. +bool wsrep_dirty_reads = false; /* Set during the creation of first wsrep applier and rollback threads. @@ -816,6 +818,8 @@ bool wsrep_must_sync_wait (THD* thd, uint mask) { return (thd->variables.wsrep_sync_wait & mask) && thd->variables.wsrep_on && + !(thd->variables.wsrep_dirty_reads && + !is_update_query(thd->lex->sql_command)) && !thd->in_active_multi_stmt_transaction() && thd->wsrep_conflict_state != REPLAYING && thd->wsrep_sync_wait_gtid.seqno == WSREP_SEQNO_UNDEFINED; diff --git a/sql/wsrep_mysqld.h b/sql/wsrep_mysqld.h index 57382d27e98..5ec183f7186 100644 --- a/sql/wsrep_mysqld.h +++ b/sql/wsrep_mysqld.h @@ -88,6 +88,7 @@ extern ulong wsrep_retry_autocommit; extern my_bool wsrep_auto_increment_control; extern my_bool wsrep_drupal_282555_workaround; extern my_bool wsrep_incremental_data_collection; +extern bool wsrep_dirty_reads; extern const char* wsrep_start_position; extern ulong wsrep_max_ws_size; extern ulong wsrep_max_ws_rows; From 952306502ebf1b26c627c5dc8b141581eeb30671 Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Wed, 14 Dec 2016 14:20:23 +0100 Subject: [PATCH 047/258] - MDEV-11295: developing handling files contained in ZIP file. Enable using multiple zip files modified: storage/connect/filamzip.cpp modified: storage/connect/ha_connect.cc modified: storage/connect/ha_connect.h modified: storage/connect/mycat.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp --- storage/connect/filamzip.cpp | 19 +++++++++--------- storage/connect/filamzip.h | 2 +- storage/connect/ha_connect.cc | 14 ++++++------- storage/connect/ha_connect.h | 37 ++--------------------------------- storage/connect/mycat.h | 1 + storage/connect/tabdos.cpp | 23 +++++++--------------- storage/connect/tabdos.h | 7 ++++--- storage/connect/tabfmt.cpp | 26 +++++++++++------------- storage/connect/tabjson.cpp | 23 +++++++++++++--------- storage/connect/tabxml.cpp | 7 ++++++- 10 files changed, 63 insertions(+), 96 deletions(-) diff --git a/storage/connect/filamzip.cpp b/storage/connect/filamzip.cpp index ea8b827974b..8386e5be481 100644 --- a/storage/connect/filamzip.cpp +++ b/storage/connect/filamzip.cpp @@ -48,11 +48,11 @@ ZIPFAM::ZIPFAM(PDOSDEF tdp) : MAPFAM(tdp) { zipfile = NULL; - zfn = tdp->Zipfn; - target = tdp->Fn; +//zfn = tdp->Fn; + target = tdp->Entry; //*fn = 0; entryopen = false; - multiple = tdp->Multiple; + multiple = (target && !(strchr(target, '*') || strchr(target, '?'))) ? 0 : 1; // Init the case mapping table. #if defined(__WIN__) @@ -65,7 +65,7 @@ ZIPFAM::ZIPFAM(PDOSDEF tdp) : MAPFAM(tdp) ZIPFAM::ZIPFAM(PZIPFAM txfp) : MAPFAM(txfp) { zipfile = txfp->zipfile; - zfn = txfp->zfn; +//zfn = txfp->zfn; target = txfp->target; //strcpy(fn, txfp->fn); finfo = txfp->finfo; @@ -129,7 +129,7 @@ int ZIPFAM::GetFileLength(PGLOBAL g) bool ZIPFAM::open(PGLOBAL g, const char *filename) { if (!zipfile && !(zipfile = unzOpen64(filename))) - sprintf(g->Message, "Zipfile open error"); + sprintf(g->Message, "Zipfile open error on %s", filename); return (zipfile == NULL); } // end of open @@ -205,7 +205,7 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) /*********************************************************************/ if (mode == MODE_READ) { // We used the file name relative to recorded datapath - PlugSetPath(filename, zfn, Tdbp->GetPath()); + PlugSetPath(filename, To_File, Tdbp->GetPath()); bool b = open(g, filename); @@ -218,7 +218,7 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) if (rc == UNZ_END_OF_LIST_OF_FILE) { sprintf(g->Message, "Target file %s not in %s", target, filename); - return true; + return false; } else if (rc != UNZ_OK) { sprintf(g->Message, "unzLocateFile rc=%d", rc); return true; @@ -229,7 +229,7 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) return true; else if (rc == RC_NF) { sprintf(g->Message, "No match of %s in %s", target, filename); - return true; + return false; } // endif rc } // endif multiple @@ -258,7 +258,8 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) } // endif fp To_Fb = fp; // Useful when closing - } // endif b + } else + return true; } else { strcpy(g->Message, "Only READ mode supported for ZIP files"); diff --git a/storage/connect/filamzip.h b/storage/connect/filamzip.h index 85c1f907d20..c3c04b2b3bb 100644 --- a/storage/connect/filamzip.h +++ b/storage/connect/filamzip.h @@ -51,7 +51,7 @@ protected: // Members unzFile zipfile; // The ZIP container file - PSZ zfn; // The ZIP file name +//PSZ zfn; // The ZIP file name PSZ target; // The target file name unz_file_info finfo; // The current file info //char fn[FILENAME_MAX]; // The current file name diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index b690dff24f4..45ca546ad4e 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -171,9 +171,9 @@ #define JSONMAX 10 // JSON Default max grp size extern "C" { - char version[]= "Version 1.04.0009 December 09, 2016"; + char version[]= "Version 1.05.0001 December 13, 2016"; #if defined(__WIN__) - char compver[]= "Version 1.04.0009 " __DATE__ " " __TIME__; + char compver[]= "Version 1.05.0001 " __DATE__ " " __TIME__; char slash= '\\'; #else // !__WIN__ char slash= '/'; @@ -512,13 +512,13 @@ ha_create_table_option connect_table_option_list[]= HA_TOPTION_NUMBER("QUOTED", quoted, (ulonglong) -1, 0, 3, 1), HA_TOPTION_NUMBER("ENDING", ending, (ulonglong) -1, 0, INT_MAX32, 1), HA_TOPTION_NUMBER("COMPRESS", compressed, 0, 0, 2, 1), -//HA_TOPTION_BOOL("COMPRESS", compressed, 0), HA_TOPTION_BOOL("MAPPED", mapped, 0), HA_TOPTION_BOOL("HUGE", huge, 0), HA_TOPTION_BOOL("SPLIT", split, 0), HA_TOPTION_BOOL("READONLY", readonly, 0), HA_TOPTION_BOOL("SEPINDEX", sepindex, 0), - HA_TOPTION_END + HA_TOPTION_BOOL("ZIPPED", zipped, 0), + HA_TOPTION_END }; @@ -532,7 +532,6 @@ ha_create_table_option connect_field_option_list[]= { HA_FOPTION_NUMBER("FLAG", offset, (ulonglong) -1, 0, INT_MAX32, 1), HA_FOPTION_NUMBER("MAX_DIST", freq, 0, 0, INT_MAX32, 1), // BLK_INDX -//HA_FOPTION_NUMBER("DISTRIB", opt, 0, 0, 2, 1), // used for BLK_INDX HA_FOPTION_NUMBER("FIELD_LENGTH", fldlen, 0, 0, INT_MAX32, 1), HA_FOPTION_STRING("DATE_FORMAT", dateformat), HA_FOPTION_STRING("FIELD_FORMAT", fieldformat), @@ -678,7 +677,6 @@ static int connect_init_func(void *p) connect_hton= (handlerton *)p; connect_hton->state= SHOW_OPTION_YES; connect_hton->create= connect_create_handler; -//connect_hton->flags= HTON_TEMPORARY_NOT_SUPPORTED | HTON_NO_PARTITION; connect_hton->flags= HTON_TEMPORARY_NOT_SUPPORTED; connect_hton->table_options= connect_table_option_list; connect_hton->field_options= connect_field_option_list; @@ -1135,7 +1133,9 @@ bool GetBooleanTableOption(PGLOBAL g, PTOS options, char *opname, bool bdef) opval= options->sepindex; else if (!stricmp(opname, "Header")) opval= (options->header != 0); // Is Boolean for some table types - else if (options->oplist) + else if (!stricmp(opname, "Zipped")) + opval = options->zipped; + else if (options->oplist) if ((pv= GetListOption(g, opname, options->oplist))) opval= (!*pv || *pv == 'y' || *pv == 'Y' || atoi(pv) != 0); diff --git a/storage/connect/ha_connect.h b/storage/connect/ha_connect.h index 60194ac0e3c..3d9ff967618 100644 --- a/storage/connect/ha_connect.h +++ b/storage/connect/ha_connect.h @@ -83,42 +83,9 @@ extern handlerton *connect_hton; These can be specified in the CREATE TABLE: CREATE TABLE ( ... ) {...here...} -*/ -#if 0 // moved to mycat.h -typedef struct ha_table_option_struct TOS, *PTOS; -struct ha_table_option_struct { - const char *type; - const char *filename; - const char *optname; - const char *tabname; - const char *tablist; - const char *dbname; - const char *separator; -//const char *connect; - const char *qchar; - const char *module; - const char *subtype; - const char *catfunc; - const char *srcdef; - const char *colist; - const char *oplist; - const char *data_charset; - ulonglong lrecl; - ulonglong elements; -//ulonglong estimate; - ulonglong multiple; - ulonglong header; - ulonglong quoted; - ulonglong ending; - ulonglong compressed; - bool mapped; - bool huge; - bool split; - bool readonly; - bool sepindex; - }; -#endif // 0 + ------ Was moved to mycat.h ------ + */ /** structure for CREATE TABLE options (field options) diff --git a/storage/connect/mycat.h b/storage/connect/mycat.h index 05163f08f1b..663b68fd4b9 100644 --- a/storage/connect/mycat.h +++ b/storage/connect/mycat.h @@ -62,6 +62,7 @@ struct ha_table_option_struct { bool split; bool readonly; bool sepindex; + bool zipped; }; // Possible value for catalog functions diff --git a/storage/connect/tabdos.cpp b/storage/connect/tabdos.cpp index 9bcac0b5f1a..f47e66b014b 100644 --- a/storage/connect/tabdos.cpp +++ b/storage/connect/tabdos.cpp @@ -96,11 +96,12 @@ DOSDEF::DOSDEF(void) Pseudo = 3; Fn = NULL; Ofn = NULL; - Zipfn = NULL; + Entry = NULL; To_Indx = NULL; Recfm = RECFM_VAR; Mapped = false; - Padded = false; + Zipped = false; + Padded = false; Huge = false; Accept = false; Eof = false; @@ -131,20 +132,11 @@ bool DOSDEF::DefineAM(PGLOBAL g, LPCSTR am, int) : (am && !stricmp(am, "DBF")) ? "D" : "V"; if (*dfm != 'D') - Zipfn = GetStringCatInfo(g, "Zipfile", NULL); - - if (Zipfn && Multiple) { - // Prevent Fn to default to table name - Desc = GetStringCatInfo(g, "Filename", NULL); - Fn = GetStringCatInfo(g, "Filename", "<%>"); - - if (!strcmp(Fn, "<%>")) - Fn = NULL; - - } else - Desc = Fn = GetStringCatInfo(g, "Filename", NULL); + Zipped = GetBoolCatInfo("Zipped", false); + Desc = Fn = GetStringCatInfo(g, "Filename", NULL); Ofn = GetStringCatInfo(g, "Optname", Fn); + Entry = GetStringCatInfo(g, "Entry", NULL); GetCharCatInfo("Recfm", (PSZ)dfm, buf, sizeof(buf)); Recfm = (toupper(*buf) == 'F') ? RECFM_FIX : (toupper(*buf) == 'B') ? RECFM_BIN : @@ -350,7 +342,7 @@ PTDB DOSDEF::GetTable(PGLOBAL g, MODE mode) /* Allocate table and file processing class of the proper type. */ /* Column blocks will be allocated only when needed. */ /*********************************************************************/ - if (Zipfn) { + if (Zipped) { #if defined(ZIP_SUPPORT) if (Recfm == RECFM_VAR) txfp = new(g) ZIPFAM(this); @@ -358,7 +350,6 @@ PTDB DOSDEF::GetTable(PGLOBAL g, MODE mode) txfp = new(g) ZPXFAM(this); tdbp = new(g) TDBDOS(this, txfp); - return tdbp; #else // !ZIP_SUPPORT strcpy(g->Message, "ZIP not supported"); return NULL; diff --git a/storage/connect/tabdos.h b/storage/connect/tabdos.h index 501ddbc2e0b..623adcfed0d 100644 --- a/storage/connect/tabdos.h +++ b/storage/connect/tabdos.h @@ -59,7 +59,7 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ // Methods virtual int Indexable(void) - {return (!Multiple && !Zipfn && Compressed != 1) ? 1 : 0;} + {return (!Multiple && !Zipped && Compressed != 1) ? 1 : 0;} virtual bool DeleteIndexFile(PGLOBAL g, PIXDEF pxdf); virtual bool DefineAM(PGLOBAL g, LPCSTR am, int poff); virtual PTDB GetTable(PGLOBAL g, MODE mode); @@ -73,11 +73,12 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ // Members PSZ Fn; /* Path/Name of corresponding file */ PSZ Ofn; /* Base Path/Name of matching index files*/ - PSZ Zipfn; /* Zip container name */ + PSZ Entry; /* Zip entry name or pattern */ PIXDEF To_Indx; /* To index definitions blocks */ RECFM Recfm; /* 0:VAR, 1:FIX, 2:BIN, 3:VCT, 6:DBF */ bool Mapped; /* 0: disk file, 1: memory mapped file */ - bool Padded; /* true for padded table file */ + bool Zipped; /* true for zipped table file */ + bool Padded; /* true for padded table file */ bool Huge; /* true for files larger than 2GB */ bool Accept; /* true if wrong lines are accepted */ bool Eof; /* true if an EOF (0xA) character exists */ diff --git a/storage/connect/tabfmt.cpp b/storage/connect/tabfmt.cpp index d6649a0093b..2c4d605e66c 100644 --- a/storage/connect/tabfmt.cpp +++ b/storage/connect/tabfmt.cpp @@ -108,6 +108,11 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, PTOS topt, bool info) goto skipit; } // endif info + if (GetIntegerTableOption(g, topt, "Multiple", 0)) { + strcpy(g->Message, "Cannot find column definition for multiple table"); + return NULL; + } // endif Multiple + // num_max = atoi(p+1); // Max num of record to test imax = hmax = nerr = 0; @@ -123,18 +128,16 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, PTOS topt, bool info) /*********************************************************************/ tdp = new(g) CSVDEF; #if defined(ZIP_SUPPORT) - tdp->Zipfn = GetStringTableOption(g, topt, "Zipfile", NULL); - tdp->Multiple = GetIntegerTableOption(g, topt, "Multiple", 0); + tdp->Entry = GetStringTableOption(g, topt, "Entry", NULL); + tdp->Zipped = GetBooleanTableOption(g, topt, "Zipped", false); #endif // ZIP_SUPPORT - tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); + fn = tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); - if (!tdp->Fn && !tdp->Zipfn && !tdp->Multiple) { + if (!tdp->Fn) { strcpy(g->Message, MSG(MISSING_FNAME)); return NULL; } // endif Fn - fn = (tdp->Fn) ? tdp->Fn : "unnamed"; - if (!(tdp->Lrecl = GetIntegerTableOption(g, topt, "Lrecl", 0))) tdp->Lrecl = 4096; @@ -174,7 +177,7 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, PTOS topt, bool info) htrc("File %s Sep=%c Qot=%c Header=%d maxerr=%d\n", SVP(tdp->Fn), tdp->Sep, tdp->Qot, tdp->Header, tdp->Maxerr); - if (tdp->Zipfn) + if (tdp->Zipped) tdbp = new(g) TDBCSV(tdp, new(g) ZIPFAM(tdp)); else tdbp = new(g) TDBCSV(tdp, new(g) DOSFAM(tdp)); @@ -493,16 +496,9 @@ PTDB CSVDEF::GetTable(PGLOBAL g, MODE mode) /*******************************************************************/ /* Allocate a file processing class of the proper type. */ /*******************************************************************/ - if (Zipfn) { + if (Zipped) { #if defined(ZIP_SUPPORT) txfp = new(g) ZIPFAM(this); - - if (!Fmtd) - tdbp = new(g) TDBCSV(this, txfp); - else - tdbp = new(g) TDBFMT(this, txfp); - - return tdbp; #else // !ZIP_SUPPORT strcpy(g->Message, "ZIP not supported"); return NULL; diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index 73c6a6d85a4..eff95445a3a 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -94,7 +94,12 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) goto skipit; } // endif info - /*********************************************************************/ + if (GetIntegerTableOption(g, topt, "Multiple", 0)) { + strcpy(g->Message, "Cannot find column definition for multiple table"); + return NULL; + } // endif Multiple + + /*********************************************************************/ /* Open the input file. */ /*********************************************************************/ lvl = GetIntegerTableOption(g, topt, "Level", 0); @@ -102,12 +107,12 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) tdp = new(g) JSONDEF; #if defined(ZIP_SUPPORT) - tdp->Zipfn = GetStringTableOption(g, topt, "Zipfile", NULL); - tdp->Multiple = GetIntegerTableOption(g, topt, "Multiple", 0); + tdp->Entry = GetStringTableOption(g, topt, "Entry", NULL); + tdp->Zipped = GetBooleanTableOption(g, topt, "Zipped", false); #endif // ZIP_SUPPORT tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); - if (!tdp->Fn && !tdp->Zipfn && !tdp->Multiple) { + if (!tdp->Fn) { strcpy(g->Message, MSG(MISSING_FNAME)); return NULL; } // endif Fn @@ -122,7 +127,7 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) tdp->Fn, tdp->Objname, tdp->Pretty, lvl); if (tdp->Pretty == 2) { - if (tdp->Zipfn) + if (tdp->Zipped) tjsp = new(g) TDBJSON(tdp, new(g) ZIPFAM(tdp)); else tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp)); @@ -139,7 +144,7 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) tdp->Ending = GetIntegerTableOption(g, topt, "Ending", CRLF); - if (tdp->Zipfn) + if (tdp->Zipped) tjnp = new(g) TDBJSN(tdp, new(g) ZIPFAM(tdp)); else tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); @@ -424,7 +429,7 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) !(tmp == TMP_FORCE && (m == MODE_UPDATE || m == MODE_DELETE)); - if (Zipfn) { + if (Zipped) { #if defined(ZIP_SUPPORT) txfp = new(g) ZIPFAM(this); #else // !ZIP_SUPPORT @@ -462,7 +467,7 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) ((TDBJSN*)tdbp)->G = g; #endif } else { - if (Zipfn) + if (Zipped) txfp = new(g) ZIPFAM(this); else txfp = new(g) MAPFAM(this); @@ -471,7 +476,7 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) ((TDBJSON*)tdbp)->G = g; } // endif Pretty - if (Multiple && !Zipfn) + if (Multiple) tdbp = new(g) TDBMUL(tdbp); return tdbp; diff --git a/storage/connect/tabxml.cpp b/storage/connect/tabxml.cpp index 57d204a4286..1993b07eb7a 100644 --- a/storage/connect/tabxml.cpp +++ b/storage/connect/tabxml.cpp @@ -136,7 +136,12 @@ PQRYRES XMLColumns(PGLOBAL g, char *db, char *tab, PTOS topt, bool info) goto skipit; } // endif info - /*********************************************************************/ + if (GetIntegerTableOption(g, topt, "Multiple", 0)) { + strcpy(g->Message, "Cannot find column definition for multiple table"); + return NULL; + } // endif Multiple + + /*********************************************************************/ /* Open the input file. */ /*********************************************************************/ if (!(fn = GetStringTableOption(g, topt, "Filename", NULL))) { From 211cf9321a91b12eaef3d7968adc699085dbb54e Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Fri, 16 Dec 2016 18:37:11 +0400 Subject: [PATCH 048/258] MDEV-11510 Audit plugin sometimes causes server to crash when using with MySQL. MySQL has a bug failing to handle MYSQL_THDVAR_STR(... PLUGIN_VAR_NOSYSVAR | PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_MEMALLOC) so fall back to just PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC whem MySQL started. --- plugin/server_audit/server_audit.c | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin/server_audit/server_audit.c b/plugin/server_audit/server_audit.c index 95150c82f25..87ba00b2d35 100644 --- a/plugin/server_audit/server_audit.c +++ b/plugin/server_audit/server_audit.c @@ -2845,6 +2845,7 @@ void __attribute__ ((constructor)) audit_plugin_so_init(void) _mysql_plugin_declarations_[0].info= mysql_v4_descriptor; use_event_data_for_disconnect= 1; } + MYSQL_SYSVAR_NAME(loc_info).flags= PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC; } memset(locinfo_ini_value, 'O', sizeof(locinfo_ini_value)-1); From e86580c3dda707788fb0ca35244cf602d7e8d50d Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 15 Dec 2016 18:20:58 +0100 Subject: [PATCH 049/258] MDEV-11552 Queries executed by event scheduler are written to slow log incorrectly or not written at all because thd->update_server_status() is used to measure the query time for the slow log (not only to set protocol level flags), it needs to be called also when the server isn't going to send anything to the client. --- mysql-test/r/events_slowlog.result | 12 ++++++++++++ mysql-test/t/events_slowlog.test | 28 ++++++++++++++++++++++++++++ sql/sp_head.cc | 10 +++++----- 3 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 mysql-test/r/events_slowlog.result create mode 100644 mysql-test/t/events_slowlog.test diff --git a/mysql-test/r/events_slowlog.result b/mysql-test/r/events_slowlog.result new file mode 100644 index 00000000000..c97fe8a2ab9 --- /dev/null +++ b/mysql-test/r/events_slowlog.result @@ -0,0 +1,12 @@ +set @event_scheduler_save= @@global.event_scheduler; +set @slow_query_log_save= @@global.slow_query_log; +set global event_scheduler= on; +set global slow_query_log= on; +set global long_query_time=0.2; +create table t1 (i int); +insert into t1 values (0); +create event ev on schedule at CURRENT_TIMESTAMP + INTERVAL 1 second do update t1 set i=1+sleep(0.5); +drop table t1; +set global event_scheduler= @event_scheduler_save; +set global slow_query_log= @slow_query_log_save; +set global long_query_time= @@session.long_query_time; diff --git a/mysql-test/t/events_slowlog.test b/mysql-test/t/events_slowlog.test new file mode 100644 index 00000000000..9679714dba3 --- /dev/null +++ b/mysql-test/t/events_slowlog.test @@ -0,0 +1,28 @@ +--source include/not_embedded.inc +# +# MDEV-11552 Queries executed by event scheduler are written to slow log incorrectly or not written at all +# +set @event_scheduler_save= @@global.event_scheduler; +set @slow_query_log_save= @@global.slow_query_log; + +set global event_scheduler= on; +set global slow_query_log= on; +set global long_query_time=0.2; + +create table t1 (i int); +insert into t1 values (0); +create event ev on schedule at CURRENT_TIMESTAMP + INTERVAL 1 second do update t1 set i=1+sleep(0.5); + +--let wait_condition= select i from t1 where i > 0 +--source include/wait_condition.inc + +--let SEARCH_FILE = `SELECT @@slow_query_log_file` +--let SEARCH_PATTERN= update t1 set i=1 +--let SEARCH_RANGE= -1000 +--source include/search_pattern_in_file.inc + +drop table t1; + +set global event_scheduler= @event_scheduler_save; +set global slow_query_log= @slow_query_log_save; +set global long_query_time= @@session.long_query_time; diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 019e9d9a478..9bfa60a07d3 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -3146,18 +3146,18 @@ sp_instr_stmt::execute(THD *thd, uint *nextp) thd->query_length()) <= 0) { res= m_lex_keeper.reset_lex_and_exec_core(thd, nextp, FALSE, this); + bool log_slow= !res && thd->enable_slow_log; - if (thd->stmt_da->is_eof()) - { - /* Finalize server status flags after executing a statement. */ + /* Finalize server status flags after executing a statement. */ + if (log_slow || thd->stmt_da->is_eof()) thd->update_server_status(); + if (thd->stmt_da->is_eof()) thd->protocol->end_statement(); - } query_cache_end_of_result(thd); - if (!res && unlikely(thd->enable_slow_log)) + if (log_slow) log_slow_statement(thd); } else From b03b38dd6515e60689adb6c9ca57d9612618e2bf Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 16 Dec 2016 10:10:08 +0100 Subject: [PATCH 050/258] cleanup: rpl.rpl_row_mysqlbinlog some trivial simplifications. drinking the ocean, one drop at a time --- .../suite/rpl/r/rpl_row_mysqlbinlog.result | 37 ++---- .../suite/rpl/t/rpl_row_mysqlbinlog.test | 120 ++++-------------- 2 files changed, 38 insertions(+), 119 deletions(-) diff --git a/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result b/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result index 1489af830cc..19611ac52b5 100644 --- a/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result +++ b/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result @@ -1,14 +1,21 @@ include/master-slave.inc [connection master] - ---Setup Section -- set timestamp=1000000000; -DROP TABLE IF EXISTS t1,t2,t3; CREATE TABLE t1(word VARCHAR(20)); CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY); CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT); - ----Test1 check table load -- +INSERT INTO t1 VALUES ("abirvalg"); +LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; +LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; +LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; +LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; +LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; +set @d1 = 'dd1'; +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +---Test 1 check table load -- SELECT COUNT(*) from t1; COUNT(*) 351 @@ -71,9 +78,7 @@ c1 c3 c4 c5 5 2006-02-22 00:00:00 Tested in Texas 11 insert into t1 values ("Alas"); flush logs; - --- Test 1 Dump binlog to file -- - --- Test 1 delete tables, clean master and slave -- DROP TABLE t1; DROP TABLE t2; @@ -84,9 +89,7 @@ reset master; reset slave; start slave; include/wait_for_slave_to_start.inc - --- Test 1 Load from Dump binlog file -- - --- Test 1 Check Load Results -- SELECT COUNT(*) from t1; COUNT(*) @@ -148,7 +151,6 @@ c1 c3 c4 c5 3 2006-02-22 00:00:00 Tested in Texas 6.6 4 2006-02-22 00:00:00 Tested in Texas 8.8 5 2006-02-22 00:00:00 Tested in Texas 11 - --- Test 2 position test -- /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; @@ -172,7 +174,6 @@ DELIMITER ; ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; - --- Test 3 First Remote test -- /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; @@ -189,9 +190,6 @@ SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/ SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; -DROP TABLE IF EXISTS `t1`,`t2`,`t3` /* generated by server */ -/*!*/; -SET TIMESTAMP=1000000000/*!*/; CREATE TABLE t1(word VARCHAR(20)) /*!*/; SET TIMESTAMP=1000000000/*!*/; @@ -205,7 +203,6 @@ DELIMITER ; ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; - --- Test 4 Second Remote test -- DROP TABLE t1; DROP TABLE t2; @@ -276,7 +273,6 @@ c1 c3 c4 c5 3 2006-02-22 00:00:00 Tested in Texas 6.6 4 2006-02-22 00:00:00 Tested in Texas 8.8 5 2006-02-22 00:00:00 Tested in Texas 11 - --- Test 5 LOAD DATA -- /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; @@ -287,7 +283,6 @@ DELIMITER ; ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; - --- Test 6 reading stdin -- /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; @@ -304,9 +299,6 @@ SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/ SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; -DROP TABLE IF EXISTS `t1`,`t2`,`t3` /* generated by server */ -/*!*/; -SET TIMESTAMP=1000000000/*!*/; CREATE TABLE t1(word VARCHAR(20)) /*!*/; SET TIMESTAMP=1000000000/*!*/; @@ -320,7 +312,6 @@ DELIMITER ; ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; - --- Test 7 reading stdin w/position -- /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; @@ -344,7 +335,6 @@ DELIMITER ; ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; - --- Test 8 switch internal charset -- stop slave; include/wait_for_slave_to_stop.inc @@ -380,14 +370,13 @@ HEX(f) select HEX(f) from t5; HEX(f) 835C - --- Test cleanup -- -DROP TABLE IF EXISTS t1; +DROP TABLE t1, t2, t3, t04, t05, t4, t5; CREATE TABLE t1 (a INT NOT NULL KEY, b INT); INSERT INTO t1 VALUES(1,1); SELECT * FROM t1; a b 1 1 FLUSH LOGS; -DROP TABLE IF EXISTS t1, t2, t3, t04, t05, t4, t5; +DROP TABLE t1; include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test b/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test index ed0f31b75be..678679f0cf1 100644 --- a/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test +++ b/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test @@ -4,43 +4,27 @@ # Purpose: To test changes to mysqlbinlog for row based bin logs # # We are using .opt file since we need small binlog size # ################################################################## -# Include Section -# Make sure that we have row based bin log -- source include/have_binlog_format_row.inc -# Embedded server doesn't support binlogging -- source include/not_embedded.inc -# This test requires the cp932 charset compiled in -- source include/have_cp932.inc -# Slow test, don't run during staging part --- source include/not_staging.inc - -- source include/master-slave.inc -# Setup Section +--echo ---Setup Section -- + # we need this for getting fixed timestamps inside of this test - ---disable_query_log -select "---Setup Section --" as ""; ---enable_query_log - set timestamp=1000000000; ---disable_warnings -DROP TABLE IF EXISTS t1,t2,t3; ---enable_warnings - -connection master; CREATE TABLE t1(word VARCHAR(20)); CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY); ---let $position= query_get_value(SHOW MASTER STATUS, Position, 1) +--let position= query_get_value(SHOW MASTER STATUS, Position, 1) CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT); ---let $stop_position=query_get_value(SHOW MASTER STATUS, Position, 1) ---let $stop_position1=`select $stop_position - 1` ---let $binlog_start_pos=query_get_value(SHOW BINLOG EVENTS LIMIT 1, End_log_pos, 1) +--let stop_position=query_get_value(SHOW MASTER STATUS, Position, 1) +--let stop_position1=`select $stop_position - 1` +--let binlog_start_pos=query_get_value(SHOW BINLOG EVENTS LIMIT 1, End_log_pos, 1) + # Test Section # Lets start by putting some data into the tables. ---disable_query_log INSERT INTO t1 VALUES ("abirvalg"); LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; @@ -54,7 +38,8 @@ set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); -let $count=500; +--disable_query_log +let count=500; while ($count) { INSERT INTO t2 VALUES (NULL); @@ -63,10 +48,7 @@ while ($count) } --enable_query_log - ---disable_query_log -select "---Test1 check table load --" as ""; ---enable_query_log +--echo ---Test 1 check table load -- # Lets Check the tables on the Master SELECT COUNT(*) from t1; @@ -95,34 +77,26 @@ insert into t1 values ("Alas"); flush logs; # delimiters are for easier debugging in future ---disable_query_log -select "--- Test 1 Dump binlog to file --" as ""; ---enable_query_log +--echo --- Test 1 Dump binlog to file -- # # Prepare local temporary file to recreate what we have currently. -let $MYSQLD_DATADIR= `select @@datadir;`; +let MYSQLD_DATADIR= `select @@datadir;`; --exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/master.sql --exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000002 >> $MYSQLTEST_VARDIR/tmp/master.sql # Now that we have our file, lets get rid of the current database. # Cleanup the master and the slave and try to recreate. ---disable_query_log -select "--- Test 1 delete tables, clean master and slave --" as ""; ---enable_query_log +--echo --- Test 1 delete tables, clean master and slave -- DROP TABLE t1; DROP TABLE t2; DROP TABLE t3; sync_slave_with_master; -#we expect STOP SLAVE to produce a warning as the slave is stopped -#(the server was started with skip-slave-start) ---disable_warnings stop slave; --source include/wait_for_slave_to_stop.inc ---enable_warnings connection master; reset master; connection slave; @@ -132,15 +106,11 @@ start slave; connection master; # We should be clean at this point, now we will run in the file from above. ---disable_query_log -select "--- Test 1 Load from Dump binlog file --" as ""; ---enable_query_log +--echo --- Test 1 Load from Dump binlog file -- --exec $MYSQL -e "source $MYSQLTEST_VARDIR/tmp/master.sql" ---disable_query_log -select "--- Test 1 Check Load Results --" as ""; ---enable_query_log +--echo --- Test 1 Check Load Results -- # Lets Check the tables on the Master SELECT COUNT(*) from t1; @@ -168,28 +138,20 @@ remove_file $MYSQLTEST_VARDIR/tmp/master.sql; # this test for start-position option # By setting this position to 416, we should only get the create of t3 ---disable_query_log -select "--- Test 2 position test --" as ""; ---enable_query_log -let $MYSQLD_DATADIR= `select @@datadir;`; +--echo --- Test 2 position test -- --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --start-position=$position --stop-position=$stop_position $MYSQLD_DATADIR/master-bin.000001 # These are tests for remote binlog. # They should return the same as previous test. ---disable_query_log -select "--- Test 3 First Remote test --" as ""; ---enable_query_log +--echo --- Test 3 First Remote test -- # This is broken now --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --stop-position=$stop_position --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 ---disable_query_log -select "--- Test 4 Second Remote test --" as ""; ---enable_query_log +--echo --- Test 4 Second Remote test -- --exec $MYSQL_BINLOG --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 > $MYSQLTEST_VARDIR/tmp/remote.sql - --exec $MYSQL_BINLOG --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002 >> $MYSQLTEST_VARDIR/tmp/remote.sql # Now that we have our file, lets get rid of the current database. @@ -201,13 +163,8 @@ DROP TABLE t3; sync_slave_with_master; -#we expect STOP SLAVE to produce a warning as the slave is stopped -#(the server was started with skip-slave-start) - ---disable_warnings stop slave; --source include/wait_for_slave_to_stop.inc ---enable_warnings connection master; reset master; connection slave; @@ -251,40 +208,26 @@ connection master; # transactions. /Matz # LOAD DATA ---disable_query_log -select "--- Test 5 LOAD DATA --" as ""; ---enable_query_log +--echo --- Test 5 LOAD DATA -- --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --stop-position=$binlog_start_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002 # Bug#7853 (mysqlbinlog does not accept input from stdin) ---disable_query_log -select "--- Test 6 reading stdin --" as ""; ---enable_query_log -let $MYSQLD_DATADIR= `select @@datadir;`; +--echo --- Test 6 reading stdin -- --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR --exec $MYSQL_BINLOG --short-form --stop-position=$stop_position1 - < $MYSQLD_DATADIR/master-bin.000001 ---disable_query_log -select "--- Test 7 reading stdin w/position --" as ""; ---enable_query_log +--echo --- Test 7 reading stdin w/position -- --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR --exec $MYSQL_BINLOG --short-form --start-position=$position --stop-position=$stop_position - < $MYSQLD_DATADIR/master-bin.000001 # Bug#16217 (mysql client did not know how not switch its internal charset) ---disable_query_log -select "--- Test 8 switch internal charset --" as ""; ---enable_query_log +--echo --- Test 8 switch internal charset -- sync_slave_with_master; -#we expect STOP SLAVE to produce a warning as the slave is stopped -#(the server was started with skip-slave-start) - ---disable_warnings stop slave; --source include/wait_for_slave_to_stop.inc ---enable_warnings connection master; reset master; connection slave; @@ -297,7 +240,6 @@ create table t4 (f text character set utf8); create table t5 (f text character set cp932); --exec $MYSQL --default-character-set=utf8 test -e "insert into t4 values(_utf8'ソ')" --exec $MYSQL --default-character-set=cp932 test -e "insert into t5 values(_cp932'ƒ\');" -let $MYSQLD_DATADIR= `select @@datadir;`; flush logs; rename table t4 to t04, t5 to t05; --exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 | $MYSQL --default-character-set=utf8 @@ -314,42 +256,30 @@ select HEX(f) from t4; select HEX(f) from t05; select HEX(f) from t5; ---disable_query_log -select "--- Test cleanup --" as ""; ---enable_query_log +--echo --- Test cleanup -- # clean up connection master; sync_slave_with_master; connection master; +DROP TABLE t1, t2, t3, t04, t05, t4, t5; # BUG#17654 also test mysqlbinlog to ensure it can read the binlog from a remote server # and ensure that the results are the same as if read from a file (the same file). ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings - CREATE TABLE t1 (a INT NOT NULL KEY, b INT); - INSERT INTO t1 VALUES(1,1); - SELECT * FROM t1; - -let $MYSQLD_DATADIR= `select @@datadir;`; - FLUSH LOGS; --exec $MYSQL_BINLOG --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 > $MYSQLTEST_VARDIR/tmp/remote.sql --exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/local.sql --diff_files $MYSQLTEST_VARDIR/tmp/local.sql $MYSQLTEST_VARDIR/tmp/remote.sql - --remove_file $MYSQLTEST_VARDIR/tmp/remote.sql - --remove_file $MYSQLTEST_VARDIR/tmp/local.sql +DROP TABLE t1; -DROP TABLE IF EXISTS t1, t2, t3, t04, t05, t4, t5; sync_slave_with_master; # End of 4.1 tests From b2b210b891697f999a9f85037462d54f78707e3e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 16 Dec 2016 17:42:21 +0100 Subject: [PATCH 051/258] MDEV-11543 Buildbot tests fail with warnings on server shutdown after rpl.rpl_row_mysqlbinlog double the timeout for threads to die on shutdown --- sql/mysqld.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 8eb92cafc03..ea4fa823d29 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1462,7 +1462,7 @@ static void close_connections(void) end_slave(); /* Give threads time to die. */ - for (int i= 0; thread_count && i < 100; i++) + for (int i= 0; thread_count && i < 200; i++) my_sleep(20000); /* From c4d9dc705b781bb155aab8f04cece2b87116d3c1 Mon Sep 17 00:00:00 2001 From: iangilfillan Date: Fri, 16 Dec 2016 14:44:08 +0200 Subject: [PATCH 052/258] Typo, update limit in comment --- sql/item_subselect.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 6427b0ecae4..dda9986f60f 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -4352,9 +4352,9 @@ bool subselect_hash_sj_engine::init(List *tmp_columns, uint subquery_id) result= result_sink; /* - If the subquery has blobs, or the total key lenght is bigger than + If the subquery has blobs, or the total key length is bigger than some length, or the total number of key parts is more than the - allowed maximum (currently MAX_REF_PARTS == 16), then the created + allowed maximum (currently MAX_REF_PARTS == 32), then the created index cannot be used for lookups and we can't use hash semi join. If this is the case, delete the temporary table since it will not be used, and tell the caller we failed to initialize the From 2f6fede8d5f7e98319b4b7b557bd565fdb42fac3 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Mon, 19 Dec 2016 14:28:08 +0400 Subject: [PATCH 053/258] MDEV-10524 Assertion `arg1_int >= 0' failed in Item_func_additive_op::result_precision() This change is a backport from 10.0 to 5.5 for: 1. The full patch for: MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() 9adb6e991ec87b65d04929f115d9d0c899e4ab19 2. A small fragment of: MDEV-5298 Illegal mix of collations on timestamp 03f6778d61a74bdd7d09103a16473a2a5624cf66 which overrides Item_temporal_hybrid_func::cmp_type(), and adds a new line into cache_temporal_4265.result. --- mysql-test/include/ctype_numconv.inc | 26 ++++++++++- mysql-test/r/cache_temporal_4265.result | 1 + mysql-test/r/ctype_binary.result | 42 ++++++++++++++++- mysql-test/r/ctype_cp1251.result | 46 ++++++++++++++++-- mysql-test/r/ctype_latin1.result | 42 ++++++++++++++++- mysql-test/r/ctype_ucs.result | 48 +++++++++++++++++-- mysql-test/r/ctype_utf8.result | 46 ++++++++++++++++-- mysql-test/r/func_time.result | 6 +++ mysql-test/t/func_time.test | 5 ++ sql/item_func.h | 1 + sql/item_strfunc.cc | 2 +- sql/item_strfunc.h | 1 - sql/item_timefunc.cc | 29 ++++++++++-- sql/item_timefunc.h | 62 ++++++++++++++++++++----- sql/sql_const.h | 2 +- sql/sql_time.cc | 17 +++++++ sql/sql_time.h | 2 + 17 files changed, 341 insertions(+), 37 deletions(-) diff --git a/mysql-test/include/ctype_numconv.inc b/mysql-test/include/ctype_numconv.inc index 9b21e7f38c1..47b52be9cec 100644 --- a/mysql-test/include/ctype_numconv.inc +++ b/mysql-test/include/ctype_numconv.inc @@ -1743,6 +1743,11 @@ DROP TABLE t1; --echo # Bug #31384 DATE_ADD() and DATE_SUB() return binary data --echo # SELECT @@collation_connection, @@character_set_results; +SELECT + CHARSET(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1, + CHARSET(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field_str2, + CHARSET(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, + CHARSET(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; CREATE TABLE t1 AS SELECT DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1, @@ -1766,7 +1771,26 @@ SELECT HEX(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field1_str2, HEX(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; - + +--echo # +--echo # MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() +--echo # +SELECT @@collation_connection, @@character_set_results; +SELECT + CHARSET(ADDTIME(_latin1'10:01:01',_latin1'10:00:00')) AS addtime1, + CHARSET(ADDTIME('10:01:01','10:00:00')) AS addtime2, + CHARSET(DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second)) AS date_add1, + CHARSET(DATE_ADD('2001-01-01 10:01:01',interval 10 second)) AS date_add2; +CREATE TABLE t1 AS +SELECT + ADDTIME(_latin1'10:01:01',_latin1'10:00:00') AS addtime1, + ADDTIME('10:01:01','10:00:00') AS addtime2, + DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second) AS date_add1, + DATE_ADD('2001-01-01 10:01:01',interval 10 second) AS date_add2; +SHOW CREATE TABLE t1; +SELECT * FROM t1; +DROP TABLE t1; + --echo # --echo # Bug#11926811 / Bug#60625 Illegal mix of collations --echo # diff --git a/mysql-test/r/cache_temporal_4265.result b/mysql-test/r/cache_temporal_4265.result index 7f215de43fb..980bb957e19 100644 --- a/mysql-test/r/cache_temporal_4265.result +++ b/mysql-test/r/cache_temporal_4265.result @@ -7,6 +7,7 @@ a 2002-03-04 Warnings: Note 1003 2000-01-01 +Note 1003 2000-01-06 set debug_dbug=''; drop table t1; create table t1 (id int not null, ut timestamp(6) not null); diff --git a/mysql-test/r/ctype_binary.result b/mysql-test/r/ctype_binary.result index e7bf1238210..3fc440b8354 100644 --- a/mysql-test/r/ctype_binary.result +++ b/mysql-test/r/ctype_binary.result @@ -2777,6 +2777,13 @@ DROP TABLE t1; SELECT @@collation_connection, @@character_set_results; @@collation_connection @@character_set_results binary binary +SELECT +CHARSET(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1, +CHARSET(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field_str2, +CHARSET(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, +CHARSET(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; +field_str1 field_str2 field_date field_datetime +binary binary binary binary CREATE TABLE t1 AS SELECT DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1, @@ -2786,8 +2793,8 @@ DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_da SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `field_str1` varchar(19) DEFAULT NULL, - `field1_str2` varchar(19) DEFAULT NULL, + `field_str1` varbinary(19) DEFAULT NULL, + `field1_str2` varbinary(19) DEFAULT NULL, `field_date` date DEFAULT NULL, `field_datetime` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 @@ -2812,6 +2819,37 @@ HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS fie field_str1 field1_str2 field_date field_datetime 323030372D30382D30322032333A35393A3030 323030372D30382D30332031373A33323A3030 323030372D30382D3032 323030372D30382D30332031373A33323A3030 # +# MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() +# +SELECT @@collation_connection, @@character_set_results; +@@collation_connection @@character_set_results +binary binary +SELECT +CHARSET(ADDTIME(_latin1'10:01:01',_latin1'10:00:00')) AS addtime1, +CHARSET(ADDTIME('10:01:01','10:00:00')) AS addtime2, +CHARSET(DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second)) AS date_add1, +CHARSET(DATE_ADD('2001-01-01 10:01:01',interval 10 second)) AS date_add2; +addtime1 addtime2 date_add1 date_add2 +binary binary binary binary +CREATE TABLE t1 AS +SELECT +ADDTIME(_latin1'10:01:01',_latin1'10:00:00') AS addtime1, +ADDTIME('10:01:01','10:00:00') AS addtime2, +DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second) AS date_add1, +DATE_ADD('2001-01-01 10:01:01',interval 10 second) AS date_add2; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `addtime1` varbinary(26) DEFAULT NULL, + `addtime2` varbinary(26) DEFAULT NULL, + `date_add1` varbinary(19) DEFAULT NULL, + `date_add2` varbinary(19) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t1; +addtime1 addtime2 date_add1 date_add2 +20:01:01 20:01:01 2001-01-01 10:01:11 2001-01-01 10:01:11 +DROP TABLE t1; +# # Bug#11926811 / Bug#60625 Illegal mix of collations # SELECT @@collation_connection; diff --git a/mysql-test/r/ctype_cp1251.result b/mysql-test/r/ctype_cp1251.result index 2a7d4ed1fb4..9d5dea2f286 100644 --- a/mysql-test/r/ctype_cp1251.result +++ b/mysql-test/r/ctype_cp1251.result @@ -3169,6 +3169,13 @@ DROP TABLE t1; SELECT @@collation_connection, @@character_set_results; @@collation_connection @@character_set_results cp1251_general_ci cp1251 +SELECT +CHARSET(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1, +CHARSET(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field_str2, +CHARSET(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, +CHARSET(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; +field_str1 field_str2 field_date field_datetime +cp1251 cp1251 binary binary CREATE TABLE t1 AS SELECT DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1, @@ -3178,8 +3185,8 @@ DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_da SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `field_str1` varchar(19) DEFAULT NULL, - `field1_str2` varchar(19) DEFAULT NULL, + `field_str1` varchar(19) CHARACTER SET cp1251 DEFAULT NULL, + `field1_str2` varchar(19) CHARACTER SET cp1251 DEFAULT NULL, `field_date` date DEFAULT NULL, `field_datetime` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 @@ -3190,8 +3197,8 @@ DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2, DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date, DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def field_str1 254 19 10 Y 128 0 63 -def field1_str2 254 19 19 Y 128 0 63 +def field_str1 254 19 10 Y 0 0 51 +def field1_str2 254 19 19 Y 0 0 51 def field_date 10 10 10 Y 128 0 63 def field_datetime 12 19 19 Y 128 0 63 field_str1 field1_str2 field_date field_datetime @@ -3204,6 +3211,37 @@ HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS fie field_str1 field1_str2 field_date field_datetime 323030372D30382D30322032333A35393A3030 323030372D30382D30332031373A33323A3030 323030372D30382D3032 323030372D30382D30332031373A33323A3030 # +# MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() +# +SELECT @@collation_connection, @@character_set_results; +@@collation_connection @@character_set_results +cp1251_general_ci cp1251 +SELECT +CHARSET(ADDTIME(_latin1'10:01:01',_latin1'10:00:00')) AS addtime1, +CHARSET(ADDTIME('10:01:01','10:00:00')) AS addtime2, +CHARSET(DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second)) AS date_add1, +CHARSET(DATE_ADD('2001-01-01 10:01:01',interval 10 second)) AS date_add2; +addtime1 addtime2 date_add1 date_add2 +cp1251 cp1251 cp1251 cp1251 +CREATE TABLE t1 AS +SELECT +ADDTIME(_latin1'10:01:01',_latin1'10:00:00') AS addtime1, +ADDTIME('10:01:01','10:00:00') AS addtime2, +DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second) AS date_add1, +DATE_ADD('2001-01-01 10:01:01',interval 10 second) AS date_add2; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `addtime1` varchar(26) CHARACTER SET cp1251 DEFAULT NULL, + `addtime2` varchar(26) CHARACTER SET cp1251 DEFAULT NULL, + `date_add1` varchar(19) CHARACTER SET cp1251 DEFAULT NULL, + `date_add2` varchar(19) CHARACTER SET cp1251 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t1; +addtime1 addtime2 date_add1 date_add2 +20:01:01 20:01:01 2001-01-01 10:01:11 2001-01-01 10:01:11 +DROP TABLE t1; +# # Bug#11926811 / Bug#60625 Illegal mix of collations # SELECT @@collation_connection; diff --git a/mysql-test/r/ctype_latin1.result b/mysql-test/r/ctype_latin1.result index dc96495b1ac..db9d03a8656 100644 --- a/mysql-test/r/ctype_latin1.result +++ b/mysql-test/r/ctype_latin1.result @@ -3351,6 +3351,13 @@ DROP TABLE t1; SELECT @@collation_connection, @@character_set_results; @@collation_connection @@character_set_results latin1_swedish_ci latin1 +SELECT +CHARSET(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1, +CHARSET(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field_str2, +CHARSET(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, +CHARSET(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; +field_str1 field_str2 field_date field_datetime +latin1 latin1 binary binary CREATE TABLE t1 AS SELECT DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1, @@ -3372,8 +3379,8 @@ DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2, DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date, DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def field_str1 254 19 10 Y 128 0 63 -def field1_str2 254 19 19 Y 128 0 63 +def field_str1 254 19 10 Y 0 0 8 +def field1_str2 254 19 19 Y 0 0 8 def field_date 10 10 10 Y 128 0 63 def field_datetime 12 19 19 Y 128 0 63 field_str1 field1_str2 field_date field_datetime @@ -3386,6 +3393,37 @@ HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS fie field_str1 field1_str2 field_date field_datetime 323030372D30382D30322032333A35393A3030 323030372D30382D30332031373A33323A3030 323030372D30382D3032 323030372D30382D30332031373A33323A3030 # +# MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() +# +SELECT @@collation_connection, @@character_set_results; +@@collation_connection @@character_set_results +latin1_swedish_ci latin1 +SELECT +CHARSET(ADDTIME(_latin1'10:01:01',_latin1'10:00:00')) AS addtime1, +CHARSET(ADDTIME('10:01:01','10:00:00')) AS addtime2, +CHARSET(DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second)) AS date_add1, +CHARSET(DATE_ADD('2001-01-01 10:01:01',interval 10 second)) AS date_add2; +addtime1 addtime2 date_add1 date_add2 +latin1 latin1 latin1 latin1 +CREATE TABLE t1 AS +SELECT +ADDTIME(_latin1'10:01:01',_latin1'10:00:00') AS addtime1, +ADDTIME('10:01:01','10:00:00') AS addtime2, +DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second) AS date_add1, +DATE_ADD('2001-01-01 10:01:01',interval 10 second) AS date_add2; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `addtime1` varchar(26) DEFAULT NULL, + `addtime2` varchar(26) DEFAULT NULL, + `date_add1` varchar(19) DEFAULT NULL, + `date_add2` varchar(19) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t1; +addtime1 addtime2 date_add1 date_add2 +20:01:01 20:01:01 2001-01-01 10:01:11 2001-01-01 10:01:11 +DROP TABLE t1; +# # Bug#11926811 / Bug#60625 Illegal mix of collations # SELECT @@collation_connection; diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 96e0970e4a6..c38a03f76a8 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -4167,6 +4167,13 @@ DROP TABLE t1; SELECT @@collation_connection, @@character_set_results; @@collation_connection @@character_set_results ucs2_general_ci latin1 +SELECT +CHARSET(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1, +CHARSET(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field_str2, +CHARSET(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, +CHARSET(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; +field_str1 field_str2 field_date field_datetime +ucs2 ucs2 binary binary CREATE TABLE t1 AS SELECT DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1, @@ -4176,8 +4183,8 @@ DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_da SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `field_str1` varchar(19) DEFAULT NULL, - `field1_str2` varchar(19) DEFAULT NULL, + `field_str1` varchar(19) CHARACTER SET ucs2 DEFAULT NULL, + `field1_str2` varchar(19) CHARACTER SET ucs2 DEFAULT NULL, `field_date` date DEFAULT NULL, `field_datetime` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 @@ -4188,8 +4195,8 @@ DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2, DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date, DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def field_str1 254 19 10 Y 128 0 63 -def field1_str2 254 19 19 Y 128 0 63 +def field_str1 254 19 10 Y 0 0 8 +def field1_str2 254 19 19 Y 0 0 8 def field_date 10 10 10 Y 128 0 63 def field_datetime 12 19 19 Y 128 0 63 field_str1 field1_str2 field_date field_datetime @@ -4200,7 +4207,38 @@ HEX(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field1_str2, HEX(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; field_str1 field1_str2 field_date field_datetime -323030372D30382D30322032333A35393A3030 323030372D30382D30332031373A33323A3030 323030372D30382D3032 323030372D30382D30332031373A33323A3030 +0032003000300037002D00300038002D00300032002000320033003A00350039003A00300030 0032003000300037002D00300038002D00300033002000310037003A00330032003A00300030 323030372D30382D3032 323030372D30382D30332031373A33323A3030 +# +# MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() +# +SELECT @@collation_connection, @@character_set_results; +@@collation_connection @@character_set_results +ucs2_general_ci latin1 +SELECT +CHARSET(ADDTIME(_latin1'10:01:01',_latin1'10:00:00')) AS addtime1, +CHARSET(ADDTIME('10:01:01','10:00:00')) AS addtime2, +CHARSET(DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second)) AS date_add1, +CHARSET(DATE_ADD('2001-01-01 10:01:01',interval 10 second)) AS date_add2; +addtime1 addtime2 date_add1 date_add2 +ucs2 ucs2 ucs2 ucs2 +CREATE TABLE t1 AS +SELECT +ADDTIME(_latin1'10:01:01',_latin1'10:00:00') AS addtime1, +ADDTIME('10:01:01','10:00:00') AS addtime2, +DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second) AS date_add1, +DATE_ADD('2001-01-01 10:01:01',interval 10 second) AS date_add2; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `addtime1` varchar(26) CHARACTER SET ucs2 DEFAULT NULL, + `addtime2` varchar(26) CHARACTER SET ucs2 DEFAULT NULL, + `date_add1` varchar(19) CHARACTER SET ucs2 DEFAULT NULL, + `date_add2` varchar(19) CHARACTER SET ucs2 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t1; +addtime1 addtime2 date_add1 date_add2 +20:01:01 20:01:01 2001-01-01 10:01:11 2001-01-01 10:01:11 +DROP TABLE t1; # # Bug#11926811 / Bug#60625 Illegal mix of collations # diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 294c2cb2be1..74fed6a3162 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -4988,6 +4988,13 @@ DROP TABLE t1; SELECT @@collation_connection, @@character_set_results; @@collation_connection @@character_set_results utf8_general_ci utf8 +SELECT +CHARSET(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1, +CHARSET(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field_str2, +CHARSET(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, +CHARSET(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; +field_str1 field_str2 field_date field_datetime +utf8 utf8 binary binary CREATE TABLE t1 AS SELECT DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1, @@ -4997,8 +5004,8 @@ DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_da SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `field_str1` varchar(19) DEFAULT NULL, - `field1_str2` varchar(19) DEFAULT NULL, + `field_str1` varchar(19) CHARACTER SET utf8 DEFAULT NULL, + `field1_str2` varchar(19) CHARACTER SET utf8 DEFAULT NULL, `field_date` date DEFAULT NULL, `field_datetime` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 @@ -5009,8 +5016,8 @@ DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2, DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date, DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def field_str1 254 19 10 Y 128 0 63 -def field1_str2 254 19 19 Y 128 0 63 +def field_str1 254 57 10 Y 0 0 33 +def field1_str2 254 57 19 Y 0 0 33 def field_date 10 10 10 Y 128 0 63 def field_datetime 12 19 19 Y 128 0 63 field_str1 field1_str2 field_date field_datetime @@ -5023,6 +5030,37 @@ HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS fie field_str1 field1_str2 field_date field_datetime 323030372D30382D30322032333A35393A3030 323030372D30382D30332031373A33323A3030 323030372D30382D3032 323030372D30382D30332031373A33323A3030 # +# MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() +# +SELECT @@collation_connection, @@character_set_results; +@@collation_connection @@character_set_results +utf8_general_ci utf8 +SELECT +CHARSET(ADDTIME(_latin1'10:01:01',_latin1'10:00:00')) AS addtime1, +CHARSET(ADDTIME('10:01:01','10:00:00')) AS addtime2, +CHARSET(DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second)) AS date_add1, +CHARSET(DATE_ADD('2001-01-01 10:01:01',interval 10 second)) AS date_add2; +addtime1 addtime2 date_add1 date_add2 +utf8 utf8 utf8 utf8 +CREATE TABLE t1 AS +SELECT +ADDTIME(_latin1'10:01:01',_latin1'10:00:00') AS addtime1, +ADDTIME('10:01:01','10:00:00') AS addtime2, +DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second) AS date_add1, +DATE_ADD('2001-01-01 10:01:01',interval 10 second) AS date_add2; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `addtime1` varchar(26) CHARACTER SET utf8 DEFAULT NULL, + `addtime2` varchar(26) CHARACTER SET utf8 DEFAULT NULL, + `date_add1` varchar(19) CHARACTER SET utf8 DEFAULT NULL, + `date_add2` varchar(19) CHARACTER SET utf8 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t1; +addtime1 addtime2 date_add1 date_add2 +20:01:01 20:01:01 2001-01-01 10:01:11 2001-01-01 10:01:11 +DROP TABLE t1; +# # Bug#11926811 / Bug#60625 Illegal mix of collations # SELECT @@collation_connection; diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result index ef5e3487a99..68b1e0f04ad 100644 --- a/mysql-test/r/func_time.result +++ b/mysql-test/r/func_time.result @@ -2620,3 +2620,9 @@ id date1 date2 DATE_ADD(a.date1,INTERVAL -10 DAY) TO_DAYS(a.date1)-10 17 NULL NULL NULL NULL 18 2010-10-13 2010-10-03 2010-10-03 734413 DROP TABLE t1; +# +# MDEV-10524 Assertion `arg1_int >= 0' failed in Item_func_additive_op::result_precision() +# +SELECT 1 MOD ADDTIME( '13:58:57', '00:00:01' ) + 2; +1 MOD ADDTIME( '13:58:57', '00:00:01' ) + 2 +3 diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test index 45214aed6e7..92e1c38cec2 100644 --- a/mysql-test/t/func_time.test +++ b/mysql-test/t/func_time.test @@ -1597,3 +1597,8 @@ INSERT INTO t1 VALUES (17, NULL); INSERT INTO t1 VALUES (18, '2010-10-13'); SELECT a.id,a.date1,FROM_DAYS(TO_DAYS(a.date1)-10) as date2, DATE_ADD(a.date1,INTERVAL -10 DAY),TO_DAYS(a.date1)-10 FROM t1 a ORDER BY a.id; DROP TABLE t1; + +--echo # +--echo # MDEV-10524 Assertion `arg1_int >= 0' failed in Item_func_additive_op::result_precision() +--echo # +SELECT 1 MOD ADDTIME( '13:58:57', '00:00:01' ) + 2; diff --git a/sql/item_func.h b/sql/item_func.h index 667be3c0438..0da38e22c7f 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -39,6 +39,7 @@ protected: 0 means get this number from first argument */ uint allowed_arg_cols; + String *val_str_from_val_str_ascii(String *str, String *str2); void count_only_length(Item **item, uint nitems); void count_real_length(Item **item, uint nitems); diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 94370d45cef..ec9580bfabd 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -70,7 +70,7 @@ size_t username_char_length= 16; Normally conversion does not happen, and val_str_ascii() is immediately returned instead. */ -String *Item_str_func::val_str_from_val_str_ascii(String *str, String *str2) +String *Item_func::val_str_from_val_str_ascii(String *str, String *str2) { DBUG_ASSERT(fixed == 1); diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h index 7606c281548..00ae60a7fb1 100644 --- a/sql/item_strfunc.h +++ b/sql/item_strfunc.h @@ -62,7 +62,6 @@ public: enum Item_result result_type () const { return STRING_RESULT; } void left_right_max_length(); bool fix_fields(THD *thd, Item **ref); - String *val_str_from_val_str_ascii(String *str, String *str2); }; diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 28e93683422..420fb29f518 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -1455,25 +1455,29 @@ bool get_interval_value(Item *args,interval_type int_type, INTERVAL *interval) void Item_temporal_func::fix_length_and_dec() { + uint char_length= mysql_temporal_int_part_length(field_type()); /* We set maybe_null to 1 as default as any bad argument with date or time can get us to return NULL. */ maybe_null= 1; - max_length= mysql_temporal_int_part_length(field_type()); + if (decimals) { if (decimals == NOT_FIXED_DEC) - max_length+= TIME_SECOND_PART_DIGITS + 1; + char_length+= TIME_SECOND_PART_DIGITS + 1; else { set_if_smaller(decimals, TIME_SECOND_PART_DIGITS); - max_length+= decimals + 1; + char_length+= decimals + 1; } } sql_mode= current_thd->variables.sql_mode & (MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE); - collation.set(&my_charset_numeric, DERIVATION_NUMERIC, MY_REPERTOIRE_ASCII); + collation.set(field_type() == MYSQL_TYPE_STRING ? + default_charset() : &my_charset_numeric, + DERIVATION_NUMERIC, MY_REPERTOIRE_ASCII); + fix_char_length(char_length); } String *Item_temporal_func::val_str(String *str) @@ -1483,6 +1487,23 @@ String *Item_temporal_func::val_str(String *str) } +String *Item_temporal_hybrid_func::val_str_ascii(String *str) +{ + DBUG_ASSERT(fixed == 1); + MYSQL_TIME ltime; + + if (get_date(<ime, 0) || + (null_value= my_TIME_to_str(<ime, str, decimals))) + return (String *) 0; + + /* Check that the returned timestamp type matches to the function type */ + DBUG_ASSERT(cached_field_type == MYSQL_TYPE_STRING || + ltime.time_type == MYSQL_TIMESTAMP_NONE || + mysql_type_to_time_type(cached_field_type) == ltime.time_type); + return str; +} + + bool Item_func_from_days::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) { longlong value=args[0]->val_int(); diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h index 3a03ee4b27a..0062d500835 100644 --- a/sql/item_timefunc.h +++ b/sql/item_timefunc.h @@ -506,6 +506,50 @@ public: }; +/** + Abstract class for functions returning TIME, DATE, DATETIME or string values, + whose data type depends on parameters and is set at fix_fields time. +*/ +class Item_temporal_hybrid_func: public Item_temporal_func +{ +protected: + enum_field_types cached_field_type; // TIME, DATE, DATETIME or STRING + String ascii_buf; // Conversion buffer +public: + Item_temporal_hybrid_func(Item *a,Item *b) + :Item_temporal_func(a,b) {} + enum_field_types field_type() const { return cached_field_type; } + Item_result cmp_type() const + { + return cached_field_type == MYSQL_TYPE_STRING ? + STRING_RESULT : TIME_RESULT; + } + const CHARSET_INFO *charset_for_protocol() const + { + /* + Can return TIME, DATE, DATETIME or VARCHAR depending on arguments. + Send using "binary" when TIME, DATE or DATETIME, + or using collation.collation when VARCHAR + (which is fixed from @@collation_connection in fix_length_and_dec). + */ + DBUG_ASSERT(fixed == 1); + return cached_field_type == MYSQL_TYPE_STRING ? + collation.collation : &my_charset_bin; + } + /** + Return string value in ASCII character set. + */ + String *val_str_ascii(String *str); + /** + Return string value in @@character_set_connection. + */ + String *val_str(String *str) + { + return val_str_from_val_str_ascii(str, &ascii_buf); + } +}; + + class Item_datefunc :public Item_temporal_func { public: @@ -763,17 +807,15 @@ public: }; -class Item_date_add_interval :public Item_temporal_func +class Item_date_add_interval :public Item_temporal_hybrid_func { - enum_field_types cached_field_type; public: const interval_type int_type; // keep it public const bool date_sub_interval; // keep it public Item_date_add_interval(Item *a,Item *b,interval_type type_arg,bool neg_arg) - :Item_temporal_func(a,b),int_type(type_arg), date_sub_interval(neg_arg) {} + :Item_temporal_hybrid_func(a,b),int_type(type_arg), date_sub_interval(neg_arg) {} const char *func_name() const { return "date_add_interval"; } void fix_length_and_dec(); - enum_field_types field_type() const { return cached_field_type; } bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); bool eq(const Item *item, bool binary_cmp) const; void print(String *str, enum_query_type query_type); @@ -911,16 +953,14 @@ public: }; -class Item_func_add_time :public Item_temporal_func +class Item_func_add_time :public Item_temporal_hybrid_func { const bool is_date; int sign; - enum_field_types cached_field_type; public: Item_func_add_time(Item *a, Item *b, bool type_arg, bool neg_arg) - :Item_temporal_func(a, b), is_date(type_arg) { sign= neg_arg ? -1 : 1; } - enum_field_types field_type() const { return cached_field_type; } + :Item_temporal_hybrid_func(a, b), is_date(type_arg) { sign= neg_arg ? -1 : 1; } void fix_length_and_dec(); bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); void print(String *str, enum_query_type query_type); @@ -1019,9 +1059,8 @@ public: }; -class Item_func_str_to_date :public Item_temporal_func +class Item_func_str_to_date :public Item_temporal_hybrid_func { - enum_field_types cached_field_type; timestamp_type cached_timestamp_type; bool const_item; String subject_converter; @@ -1029,12 +1068,11 @@ class Item_func_str_to_date :public Item_temporal_func CHARSET_INFO *internal_charset; public: Item_func_str_to_date(Item *a, Item *b) - :Item_temporal_func(a, b), const_item(false), + :Item_temporal_hybrid_func(a, b), const_item(false), internal_charset(NULL) {} bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); const char *func_name() const { return "str_to_date"; } - enum_field_types field_type() const { return cached_field_type; } void fix_length_and_dec(); }; diff --git a/sql/sql_const.h b/sql/sql_const.h index 9d227601a20..3c127a03826 100644 --- a/sql/sql_const.h +++ b/sql/sql_const.h @@ -54,7 +54,7 @@ #define MIN_TIME_WIDTH 10 /* -HHH:MM:SS */ #define MAX_TIME_WIDTH 16 /* -DDDDDD HH:MM:SS */ #define MAX_TIME_FULL_WIDTH 23 /* -DDDDDD HH:MM:SS.###### */ -#define MAX_DATETIME_FULL_WIDTH 29 /* YYYY-MM-DD HH:MM:SS.###### AM */ +#define MAX_DATETIME_FULL_WIDTH 26 /* YYYY-MM-DD HH:MM:SS.###### */ #define MAX_DATETIME_WIDTH 19 /* YYYY-MM-DD HH:MM:SS */ #define MAX_DATETIME_COMPRESSED_WIDTH 14 /* YYYYMMDDHHMMSS */ #define MAX_DATETIME_PRECISION 6 diff --git a/sql/sql_time.cc b/sql/sql_time.cc index c5c65391758..d912a7b78d6 100644 --- a/sql/sql_time.cc +++ b/sql/sql_time.cc @@ -838,6 +838,23 @@ const char *get_date_time_format_str(KNOWN_DATE_TIME_FORMAT *format, } } + +/** + Convert TIME/DATE/DATETIME value to String. + @param l_time DATE value + @param OUT str String to convert to + @param dec Number of fractional digits. +*/ +bool my_TIME_to_str(const MYSQL_TIME *ltime, String *str, uint dec) +{ + if (str->alloc(MAX_DATE_STRING_REP_LENGTH)) + return true; + str->set_charset(&my_charset_numeric); + str->length(my_TIME_to_str(ltime, const_cast(str->ptr()), dec)); + return false; +} + + void make_truncated_value_warning(THD *thd, MYSQL_ERROR::enum_warning_level level, const ErrConv *sval, diff --git a/sql/sql_time.h b/sql/sql_time.h index ad752121044..9becdcd4200 100644 --- a/sql/sql_time.h +++ b/sql/sql_time.h @@ -74,6 +74,8 @@ extern DATE_TIME_FORMAT *date_time_format_copy(THD *thd, DATE_TIME_FORMAT *format); const char *get_date_time_format_str(KNOWN_DATE_TIME_FORMAT *format, timestamp_type type); +bool my_TIME_to_str(const MYSQL_TIME *ltime, String *str, uint dec); + /* MYSQL_TIME operations */ bool date_add_interval(MYSQL_TIME *ltime, interval_type int_type, INTERVAL interval); From 19896d4b3ab459d135aee6ee67cb92bce92f9b87 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Mon, 19 Dec 2016 16:09:20 +0400 Subject: [PATCH 054/258] MDEV-10274 Bundling insert with create statement for table with unsigned Decimal primary key issues warning 1194. Flags are important for key_length calculations, so them should be set before it, not after. --- mysql-test/r/create.result | 7 +++++++ mysql-test/t/create.test | 9 +++++++++ sql/sql_table.cc | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index 0164aa4b610..829b54dea49 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -2498,4 +2498,11 @@ end| create table t1 as select f1(); ERROR 42S02: Table 'test.t1' doesn't exist drop function f1; +# +# MDEV-10274 Bundling insert with create statement +# for table with unsigned Decimal primary key issues warning 1194 +# +create table t1(ID decimal(2,1) unsigned NOT NULL, PRIMARY KEY (ID))engine=memory +select 2.1 ID; +drop table t1; End of 5.5 tests diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index 5c90c3e17a4..1e77dac9bc9 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -2081,4 +2081,13 @@ DELIMITER ;| create table t1 as select f1(); drop function f1; +--echo # +--echo # MDEV-10274 Bundling insert with create statement +--echo # for table with unsigned Decimal primary key issues warning 1194 +--echo # + +create table t1(ID decimal(2,1) unsigned NOT NULL, PRIMARY KEY (ID))engine=memory + select 2.1 ID; +drop table t1; + --echo End of 5.5 tests diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 7d2e67b5cfd..9bcb4c3f8cc 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3167,7 +3167,6 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, sql_field->pack_length= dup_field->pack_length; sql_field->key_length= dup_field->key_length; sql_field->decimals= dup_field->decimals; - sql_field->create_length_to_internal_length(); sql_field->unireg_check= dup_field->unireg_check; /* We're making one field from two, the result field will have @@ -3177,6 +3176,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, if (!(sql_field->flags & NOT_NULL_FLAG)) null_fields--; sql_field->flags= dup_field->flags; + sql_field->create_length_to_internal_length(); sql_field->interval= dup_field->interval; sql_field->vcol_info= dup_field->vcol_info; sql_field->stored_in_db= dup_field->stored_in_db; From 268bb69beaec027b9f713d13316aa78c5c292817 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Fri, 16 Dec 2016 17:08:31 +0300 Subject: [PATCH 055/258] MDEV-7691: Assertion `outer_context || !*from_field || *from_field == not_found_field' ... The bug occurred when a subquery - has a reference to outside, to grand-parent query or further up - is converted to a semi-join (i.e. merged into its parent). Then the reference to outside had form Item_ref(Item_field(...)). - Conversion to semi-join would call item->fix_after_pullout() for the outside reference. - Item_ref::fix_after_pullout would call Item_field->fix_after_pullout - The Item_field would construct a new Name_resolution_context object This process ignored the fact that the Item_field does not belong to any of the subselects being flattened. The result was crash in the next call to Item_field::fix_fields(), where we would try to use an invalid Name_resolution_context object. Fixed by not creating Name_resolution_context object if the Item_field's context does not belong to the subselect(s) that were flattened. --- mysql-test/r/subselect4.result | 39 ++++++++++++++++++++++++++++++++ mysql-test/t/subselect4.test | 41 ++++++++++++++++++++++++++++++++++ sql/item.cc | 38 +++++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+) diff --git a/mysql-test/r/subselect4.result b/mysql-test/r/subselect4.result index c7f22cf05e5..89fb0902f53 100644 --- a/mysql-test/r/subselect4.result +++ b/mysql-test/r/subselect4.result @@ -2410,5 +2410,44 @@ SELECT x FROM t1 WHERE id > (SELECT MAX(id) - 1000 FROM t1) ORDER BY x LIMIT 1; x 0 drop table t1; +# +# MDEV-7691: Assertion `outer_context || !*from_field || *from_field == not_found_field' ... +# +set optimizer_switch=default; +CREATE TABLE t1 (a INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (4),(6); +CREATE TABLE t2 (b INT) ENGINE=MyISAM; +INSERT INTO t2 VALUES (1),(8); +PREPARE stmt FROM " +SELECT * FROM t2 +HAVING 0 IN ( + SELECT a FROM t1 + WHERE a IN ( + SELECT a FROM t1 + WHERE b = a + ) +) +"; +EXECUTE stmt; +b +EXECUTE stmt; +b +# Alternative test case, without HAVING +CREATE TABLE t3 (i INT) ENGINE=MyISAM; +INSERT INTO t3 VALUES (4),(6); +PREPARE stmt FROM " +SELECT * FROM t3 AS t10 +WHERE EXISTS ( + SELECT * FROM t3 AS t20 WHERE t10.i IN ( + SELECT i FROM t3 + ) +)"; +EXECUTE stmt; +i +6 +EXECUTE stmt; +i +6 +drop table t1, t2, t3; SET optimizer_switch= @@global.optimizer_switch; set @@tmp_table_size= @@global.tmp_table_size; diff --git a/mysql-test/t/subselect4.test b/mysql-test/t/subselect4.test index b179ead39d7..7a7dd7e492e 100644 --- a/mysql-test/t/subselect4.test +++ b/mysql-test/t/subselect4.test @@ -1959,5 +1959,46 @@ SELECT x FROM t1 WHERE id > (SELECT MAX(id) - 1000 FROM t1) ORDER BY x LIMIT 1; drop table t1; +--echo # +--echo # MDEV-7691: Assertion `outer_context || !*from_field || *from_field == not_found_field' ... +--echo # +set optimizer_switch=default; +CREATE TABLE t1 (a INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (4),(6); + +CREATE TABLE t2 (b INT) ENGINE=MyISAM; +INSERT INTO t2 VALUES (1),(8); + +PREPARE stmt FROM " +SELECT * FROM t2 +HAVING 0 IN ( + SELECT a FROM t1 + WHERE a IN ( + SELECT a FROM t1 + WHERE b = a + ) +) +"; + +EXECUTE stmt; +EXECUTE stmt; + +--echo # Alternative test case, without HAVING +CREATE TABLE t3 (i INT) ENGINE=MyISAM; +INSERT INTO t3 VALUES (4),(6); + +PREPARE stmt FROM " +SELECT * FROM t3 AS t10 +WHERE EXISTS ( + SELECT * FROM t3 AS t20 WHERE t10.i IN ( + SELECT i FROM t3 + ) +)"; + +EXECUTE stmt; +EXECUTE stmt; + +drop table t1, t2, t3; + SET optimizer_switch= @@global.optimizer_switch; set @@tmp_table_size= @@global.tmp_table_size; diff --git a/sql/item.cc b/sql/item.cc index 53666aaf83d..fc9eb31bf5b 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -2777,6 +2777,44 @@ void Item_field::fix_after_pullout(st_select_lex *new_parent, Item **ref) depended_from= NULL; if (context) { + bool need_change= false; + /* + Suppose there are nested selects: + + select_id=1 + select_id=2 + select_id=3 <----+ + select_id=4 -+ + select_id=5 --+ + + Suppose, pullout operation has moved anything that had select_id=4 or 5 + in to select_id=3. + + If this Item_field had a name resolution context pointing into select_lex + with id=4 or id=5, it needs a new name resolution context. + + However, it could also be that this object is a part of outer reference: + Item_ref(Item_field(field in select with select_id=1))). + - The Item_ref object has a context with select_id=5, and so needs a new + name resolution context. + - The Item_field object has a context with select_id=1, and doesn't need + a new name resolution context. + + So, the following loop walks from Item_field's current context upwards. + If we find that the select we've been pulled out to is up there, we + create the new name resolution context. Otherwise, we don't. + */ + for (Name_resolution_context *ct= context; ct; ct= ct->outer_context) + { + if (new_parent == ct->select_lex) + { + need_change= true; + break; + } + } + if (!need_change) + return; + Name_resolution_context *ctx= new Name_resolution_context(); if (context->select_lex == new_parent) { From f23b41b9b8a30e0e54a1ec7a8923057b0e57e0f5 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Fri, 16 Dec 2016 17:16:02 +0300 Subject: [PATCH 056/258] MDEV-10148: Database crashes in the query to the View Fix st_select_lex::is_merged_child_of to work across merged views or derived tables. --- mysql-test/r/subselect2.result | 35 ++++++++++++++++++++++++++++++++ mysql-test/t/subselect2.test | 37 ++++++++++++++++++++++++++++++++++ sql/sql_lex.cc | 6 ++++++ 3 files changed, 78 insertions(+) diff --git a/mysql-test/r/subselect2.result b/mysql-test/r/subselect2.result index 72ca9d33354..b6dc940d9fb 100644 --- a/mysql-test/r/subselect2.result +++ b/mysql-test/r/subselect2.result @@ -348,4 +348,39 @@ where t1.a = t2.a and ( t1.a = ( select min(a) from t1 ) or 0 ); a a a FRA FRA FRA drop table t1,t2,t3; +# +# MDEV-10148: Database crashes in the query to the View +# +CREATE TABLE t1 ( +key_code INT(11) NOT NULL, +value_string VARCHAR(50) NULL DEFAULT NULL, +PRIMARY KEY (key_code) +) COLLATE='utf8_general_ci' ENGINE=InnoDB ; +CREATE TABLE t2 ( +key_code INT(11) NOT NULL, +target_date DATE NULL DEFAULT NULL, +PRIMARY KEY (key_code) +) COLLATE='utf8_general_ci' ENGINE=InnoDB ; +CREATE TABLE t3 ( +now_date DATE NOT NULL, +PRIMARY KEY (now_date) +) COLLATE='utf8_general_ci' ENGINE=InnoDB ; +CREATE VIEW v1 +AS +SELECT +B.key_code, +B.target_date +FROM +t2 B INNER JOIN t3 C ON +B.target_date = C.now_date +; +SET @s = 'SELECT A.* FROM t1 A WHERE A.key_code IN (SELECT key_code FROM v1)'; +PREPARE stmt FROM @s; +EXECUTE stmt; +key_code value_string +EXECUTE stmt; +key_code value_string +DEALLOCATE PREPARE stmt; +DROP VIEW v1; +DROP TABLE t1,t2,t3; set optimizer_switch=@subselect2_test_tmp; diff --git a/mysql-test/t/subselect2.test b/mysql-test/t/subselect2.test index b3c1322184d..f795cef648c 100644 --- a/mysql-test/t/subselect2.test +++ b/mysql-test/t/subselect2.test @@ -359,5 +359,42 @@ where t1.a = t2.a and ( t1.a = ( select min(a) from t1 ) or 0 ); drop table t1,t2,t3; +--echo # +--echo # MDEV-10148: Database crashes in the query to the View +--echo # +CREATE TABLE t1 ( + key_code INT(11) NOT NULL, + value_string VARCHAR(50) NULL DEFAULT NULL, + PRIMARY KEY (key_code) +) COLLATE='utf8_general_ci' ENGINE=InnoDB ; + +CREATE TABLE t2 ( + key_code INT(11) NOT NULL, + target_date DATE NULL DEFAULT NULL, + PRIMARY KEY (key_code) +) COLLATE='utf8_general_ci' ENGINE=InnoDB ; + +CREATE TABLE t3 ( + now_date DATE NOT NULL, + PRIMARY KEY (now_date) +) COLLATE='utf8_general_ci' ENGINE=InnoDB ; + +CREATE VIEW v1 +AS +SELECT + B.key_code, + B.target_date +FROM + t2 B INNER JOIN t3 C ON + B.target_date = C.now_date +; +SET @s = 'SELECT A.* FROM t1 A WHERE A.key_code IN (SELECT key_code FROM v1)'; +PREPARE stmt FROM @s; +EXECUTE stmt; #1st time -> success +EXECUTE stmt; #2nd time -> crash +DEALLOCATE PREPARE stmt; +DROP VIEW v1; +DROP TABLE t1,t2,t3; + set optimizer_switch=@subselect2_test_tmp; diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index f2e7b4f7c3a..fa866bc7008 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -4247,6 +4247,12 @@ bool st_select_lex::is_merged_child_of(st_select_lex *ancestor) { continue; } + + if (sl->master_unit()->derived && + sl->master_unit()->derived->is_merged_derived()) + { + continue; + } all_merged= FALSE; break; } From aaff3d6c35f51dde60907f3c0fc4b2a40bc63c38 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Tue, 20 Dec 2016 10:25:25 +0100 Subject: [PATCH 057/258] MDEV-10172: UNION query returns incorrect rows outside conditional evaluation count duplicate of UNION SELECT separately to awoid influence on lokal LIMIT clause. --- mysql-test/r/union.result | 33 ++++++++++++++++++++++++++++----- mysql-test/t/union.test | 22 +++++++++++++++++++++- sql/sql_select.cc | 13 +++++++++---- sql/sql_select.h | 5 +++-- 4 files changed, 61 insertions(+), 12 deletions(-) diff --git a/mysql-test/r/union.result b/mysql-test/r/union.result index 40f5a77e3d0..5a6cd8907e9 100644 --- a/mysql-test/r/union.result +++ b/mysql-test/r/union.result @@ -362,7 +362,7 @@ a 2 select found_rows(); found_rows() -6 +5 SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 100; a 1 @@ -1169,12 +1169,9 @@ a b select * from ((select * from t1 limit 1) union (select * from t1 limit 1)) a; a b 1 a -2 b select * from ((select * from t1 limit 1) union (select * from t1 limit 1) union (select * from t1 limit 1)) a; a b 1 a -2 b -3 c select * from ((((select * from t1))) union (select * from t1) union (select * from t1)) a; a b 1 a @@ -1553,7 +1550,6 @@ NULL UNION RESULT ALL NULL NULL NULL NULL NULL NULL Using filesort Warnings: Note 1003 select NULL AS `a` from `test`.`t1` union select NULL AS `a` from `test`.`t1` order by `a` DROP TABLE t1; -End of 5.0 tests # # Bug#32858: Error: "Incorrect usage of UNION and INTO" does not take # subselects into account @@ -1659,6 +1655,14 @@ a 4 5 6 +(select a from t1 where false) UNION (select a from t1) limit 8; +a +10 +2 +3 +4 +5 +6 7 8 drop table t1; @@ -1955,3 +1959,22 @@ cccc bbbb dddd drop table t1; +# +# MDEV-10172: UNION query returns incorrect rows outside +# conditional evaluation +# +create table t1 (d datetime not null primary key); +insert into t1(d) values ('2016-06-01'),('2016-06-02'),('2016-06-03'),('2016-06-04'); +select * from +( +select * from t1 where d between '2016-06-02' and '2016-06-05' + union +(select * from t1 where d < '2016-06-05' order by d desc limit 1) +) onlyJun2toJun4 +order by d; +d +2016-06-02 00:00:00 +2016-06-03 00:00:00 +2016-06-04 00:00:00 +drop table t1; +End of 5.0 tests diff --git a/mysql-test/t/union.test b/mysql-test/t/union.test index 9204ddd22e5..f4dc6a5d449 100644 --- a/mysql-test/t/union.test +++ b/mysql-test/t/union.test @@ -1022,7 +1022,6 @@ ORDER BY a; DROP TABLE t1; ---echo End of 5.0 tests -- echo # -- echo # Bug#32858: Error: "Incorrect usage of UNION and INTO" does not take -- echo # subselects into account @@ -1126,6 +1125,8 @@ create table t1 (a int); insert into t1 values (10),(10),(10),(2),(3),(4),(5),(6),(7),(8),(9),(1),(10); --sorted_result select a from t1 where false UNION select a from t1 limit 8; +--sorted_result +(select a from t1 where false) UNION (select a from t1) limit 8; drop table t1; --echo # @@ -1350,3 +1351,22 @@ UNION ; drop table t1; + + +--echo # +--echo # MDEV-10172: UNION query returns incorrect rows outside +--echo # conditional evaluation +--echo # + +create table t1 (d datetime not null primary key); +insert into t1(d) values ('2016-06-01'),('2016-06-02'),('2016-06-03'),('2016-06-04'); +select * from +( + select * from t1 where d between '2016-06-02' and '2016-06-05' + union + (select * from t1 where d < '2016-06-05' order by d desc limit 1) +) onlyJun2toJun4 +order by d; +drop table t1; + +--echo End of 5.0 tests diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 8c994964d59..839665f3a9f 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2871,7 +2871,7 @@ JOIN::exec() *curr_fields_list), Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF); error= do_select(curr_join, curr_fields_list, NULL, procedure); - thd->limit_found_rows= curr_join->send_records; + thd->limit_found_rows= curr_join->send_records - curr_join->duplicate_rows; /* Accumulate the counts from all join iterations of all join parts. */ thd->examined_row_count+= curr_join->examined_rows; @@ -16578,7 +16578,7 @@ do_select(JOIN *join,List *fields,TABLE *table,Procedure *procedure) join->join_tab[join->top_join_tab_count - 1].next_select= end_select; join_tab=join->join_tab+join->const_tables; } - join->send_records=0; + join->duplicate_rows= join->send_records=0; if (join->table_count == join->const_tables) { /* @@ -18089,7 +18089,12 @@ end_send(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), int error; /* result < 0 if row was not accepted and should not be counted */ if ((error= join->result->send_data(*join->fields))) - DBUG_RETURN(error < 0 ? NESTED_LOOP_OK : NESTED_LOOP_ERROR); + { + if (error > 0) + DBUG_RETURN(NESTED_LOOP_ERROR); + // error < 0 => duplicate row + join->duplicate_rows++; + } } if (++join->send_records >= join->unit->select_limit_cnt && join->do_send_rows) @@ -18205,7 +18210,7 @@ end_send_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), if (error < 0) { /* Duplicate row, don't count */ - join->send_records--; + join->duplicate_rows++; error= 0; } } diff --git a/sql/sql_select.h b/sql/sql_select.h index 4650bc24c68..0623672840e 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -1018,7 +1018,8 @@ public: table_map outer_join; /* Bitmap of tables used in the select list items */ table_map select_list_used_tables; - ha_rows send_records,found_records,examined_rows,row_limit, select_limit; + ha_rows send_records, found_records, examined_rows, + row_limit, select_limit, duplicate_rows; /** Used to fetch no more than given amount of rows per one fetch operation of server side cursor. @@ -1272,7 +1273,7 @@ public: sort_and_group= 0; first_record= 0; do_send_rows= 1; - send_records= 0; + duplicate_rows= send_records= 0; found_records= 0; fetch_limit= HA_POS_ERROR; examined_rows= 0; From e025ebcdb538ee6d191d22aee0587f5534080a4b Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 20 Dec 2016 12:45:48 +0000 Subject: [PATCH 058/258] Fix pointer formatting in crash handler output. Do not use 0x%p to output thd address, use %p --- sql/signal_handler.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/signal_handler.cc b/sql/signal_handler.cc index b0c67fbfe32..81792cc30ac 100644 --- a/sql/signal_handler.cc +++ b/sql/signal_handler.cc @@ -143,7 +143,7 @@ extern "C" sig_handler handle_fatal_signal(int sig) if (opt_stack_trace) { - my_safe_printf_stderr("Thread pointer: 0x%p\n", thd); + my_safe_printf_stderr("Thread pointer: %p\n", thd); my_safe_printf_stderr("%s", "Attempting backtrace. You can use the following " "information to find out\n" From cbd7548aff7536940cf6c619c4de4f51c1f9e0bb Mon Sep 17 00:00:00 2001 From: Ronak Jain Date: Thu, 8 Dec 2016 23:27:04 +0530 Subject: [PATCH 059/258] MDEV-11353: fixes Identical logical conditions --- sql/handler.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/handler.cc b/sql/handler.cc index 5fc75602039..bc71aa57fb7 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -3924,7 +3924,7 @@ void handler::get_dynamic_partition_info(PARTITION_STATS *stat_info, stat_info->update_time= stats.update_time; stat_info->check_time= stats.check_time; stat_info->check_sum= 0; - if (table_flags() & (HA_HAS_OLD_CHECKSUM | HA_HAS_OLD_CHECKSUM)) + if (table_flags() & (HA_HAS_OLD_CHECKSUM | HA_HAS_NEW_CHECKSUM)) stat_info->check_sum= checksum(); return; } From ef82fd8ca33f0ecab06ddfa11b51dd5ea9019653 Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Tue, 20 Dec 2016 17:42:08 +0400 Subject: [PATCH 060/258] MDEV-11353 - Identical logical conditions Added test case. --- mysql-test/r/information_schema_part.result | 8 ++++++++ mysql-test/t/information_schema_part.test | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/mysql-test/r/information_schema_part.result b/mysql-test/r/information_schema_part.result index b34183ebdee..77959de256e 100644 --- a/mysql-test/r/information_schema_part.result +++ b/mysql-test/r/information_schema_part.result @@ -151,3 +151,11 @@ select create_options from information_schema.tables where table_schema="test"; create_options partitioned drop table t1; +# +# MDEV-11353 - Identical logical conditions +# +CREATE TABLE t1(a INT) CHECKSUM=1 SELECT 1; +SELECT CHECKSUM FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +CHECKSUM +3036305396 +DROP TABLE t1; diff --git a/mysql-test/t/information_schema_part.test b/mysql-test/t/information_schema_part.test index f1415d12f79..ea88f364c07 100644 --- a/mysql-test/t/information_schema_part.test +++ b/mysql-test/t/information_schema_part.test @@ -131,3 +131,10 @@ drop table if exists t1; create table t1 (f1 int key) partition by key(f1) partitions 2; select create_options from information_schema.tables where table_schema="test"; drop table t1; + +--echo # +--echo # MDEV-11353 - Identical logical conditions +--echo # +CREATE TABLE t1(a INT) CHECKSUM=1 SELECT 1; +SELECT CHECKSUM FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +DROP TABLE t1; From be430b80df0cdd4eba32df1570195721dbfd1b39 Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Wed, 21 Dec 2016 09:34:37 +0530 Subject: [PATCH 061/258] MDEV-11490 Galera_3nodes test suite does not suppress Warnings. Problem:- While running individual tests of Galera_3nodes , We get warnings like '[Warning] WSREP: Could not open state file for reading: '. And because of this individual tests fails. Solution:- We change suite.pm of Galera_3nodes to supress these warnings. --- mysql-test/suite/galera_3nodes/suite.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/galera_3nodes/suite.pm b/mysql-test/suite/galera_3nodes/suite.pm index 39d5acbcc1b..c91e6e07d76 100644 --- a/mysql-test/suite/galera_3nodes/suite.pm +++ b/mysql-test/suite/galera_3nodes/suite.pm @@ -26,6 +26,7 @@ push @::global_suppressions, ( qr(WSREP: wsrep_sst_receive_address is set to '127.0.0.1), qr(WSREP: Could not open saved state file for reading: ), + qr(WSREP: Could not open state file for reading: ), qr(WSREP: Gap in state sequence. Need state transfer.), qr(WSREP: Failed to prepare for incremental state transfer:), qr(WSREP:.*down context.*), @@ -33,13 +34,14 @@ push @::global_suppressions, qr(WSREP: last inactive check more than .* skipping check), qr(WSREP: SQL statement was ineffective), qr(WSREP: Releasing seqno [0-9]* before [0-9]* was assigned.), - qr|WSREP: access file\(gvwstate.dat\) failed\(No such file or directory\)|, + qr|WSREP: access file\(.*gvwstate.dat\) failed\(No such file or directory\)|, qr(WSREP: Quorum: No node with complete state), qr(WSREP: Initial position was provided by configuration or SST, avoiding override), qr|WSREP: discarding established \(time wait\) .*|, qr(WSREP: There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside. Will use that one.), qr(WSREP: evs::proto.*), qr|WSREP: Ignoring possible split-brain (allowed by configuration) from view:.*|, + qr(WSREP: Member .* requested state transfer from .* but it is impossible to select State Transfer donor: Resource temporarily unavailable), qr(WSREP: Could not find peer:), qr(WSREP: Protocol violation. JOIN message sender .*), qr(WSREP: JOIN message from member [0-9]* in non-primary configuration. Ignored.), From 5e051bfa15d201228b103d7f536436a61cde8707 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Wed, 21 Dec 2016 15:39:45 +0400 Subject: [PATCH 062/258] MDEV-10386 Assertion `fixed == 1' failed in virtual String* Item_func_conv_charset::val_str(String*) The patch b96c196f1cd5d77e524cbf952539bdd33c65ffc1 added a new call for safe_charset_converter() without a corresponding fix_fields(). In case of a sub-query the created Item remained in non-fixed state. The problem did not show up with literal derived expressions, only subselects were affected. This patch adds a corresponding fix_fields() to the previously added safe_charset_converter(). --- mysql-test/r/subselect.result | 11 +++++++++++ mysql-test/r/subselect_no_mat.result | 11 +++++++++++ mysql-test/r/subselect_no_opts.result | 11 +++++++++++ mysql-test/r/subselect_no_scache.result | 11 +++++++++++ mysql-test/r/subselect_no_semijoin.result | 11 +++++++++++ mysql-test/t/subselect.test | 10 ++++++++++ sql/item.cc | 3 ++- 7 files changed, 67 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index 0a599a64f80..789cfe2fdca 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -7105,3 +7105,14 @@ group by round((select 1 from t1 limit 1)); round((select 1 from t1 limit 1)) 1 drop table t1; +# +# MDEV-10386 Assertion `fixed == 1' failed in virtual String* Item_func_conv_charset::val_str(String*) +# +CREATE TABLE t1 (f1 CHAR(3) CHARACTER SET utf8 NULL, f2 CHAR(3) CHARACTER SET latin1 NULL); +INSERT INTO t1 VALUES ('foo','bar'); +SELECT * FROM t1 WHERE f2 >= SOME ( SELECT f1 FROM t1 ); +f1 f2 +SELECT * FROM t1 WHERE f2 <= SOME ( SELECT f1 FROM t1 ); +f1 f2 +foo bar +DROP TABLE t1; diff --git a/mysql-test/r/subselect_no_mat.result b/mysql-test/r/subselect_no_mat.result index b819b1e4ef9..c729c17f94f 100644 --- a/mysql-test/r/subselect_no_mat.result +++ b/mysql-test/r/subselect_no_mat.result @@ -7102,6 +7102,17 @@ group by round((select 1 from t1 limit 1)); round((select 1 from t1 limit 1)) 1 drop table t1; +# +# MDEV-10386 Assertion `fixed == 1' failed in virtual String* Item_func_conv_charset::val_str(String*) +# +CREATE TABLE t1 (f1 CHAR(3) CHARACTER SET utf8 NULL, f2 CHAR(3) CHARACTER SET latin1 NULL); +INSERT INTO t1 VALUES ('foo','bar'); +SELECT * FROM t1 WHERE f2 >= SOME ( SELECT f1 FROM t1 ); +f1 f2 +SELECT * FROM t1 WHERE f2 <= SOME ( SELECT f1 FROM t1 ); +f1 f2 +foo bar +DROP TABLE t1; set optimizer_switch=default; select @@optimizer_switch like '%materialization=on%'; @@optimizer_switch like '%materialization=on%' diff --git a/mysql-test/r/subselect_no_opts.result b/mysql-test/r/subselect_no_opts.result index e1001a51658..dc308ea77e5 100644 --- a/mysql-test/r/subselect_no_opts.result +++ b/mysql-test/r/subselect_no_opts.result @@ -7100,4 +7100,15 @@ group by round((select 1 from t1 limit 1)); round((select 1 from t1 limit 1)) 1 drop table t1; +# +# MDEV-10386 Assertion `fixed == 1' failed in virtual String* Item_func_conv_charset::val_str(String*) +# +CREATE TABLE t1 (f1 CHAR(3) CHARACTER SET utf8 NULL, f2 CHAR(3) CHARACTER SET latin1 NULL); +INSERT INTO t1 VALUES ('foo','bar'); +SELECT * FROM t1 WHERE f2 >= SOME ( SELECT f1 FROM t1 ); +f1 f2 +SELECT * FROM t1 WHERE f2 <= SOME ( SELECT f1 FROM t1 ); +f1 f2 +foo bar +DROP TABLE t1; set @optimizer_switch_for_subselect_test=null; diff --git a/mysql-test/r/subselect_no_scache.result b/mysql-test/r/subselect_no_scache.result index e175e7e0072..e7c85c10f2d 100644 --- a/mysql-test/r/subselect_no_scache.result +++ b/mysql-test/r/subselect_no_scache.result @@ -7111,6 +7111,17 @@ group by round((select 1 from t1 limit 1)); round((select 1 from t1 limit 1)) 1 drop table t1; +# +# MDEV-10386 Assertion `fixed == 1' failed in virtual String* Item_func_conv_charset::val_str(String*) +# +CREATE TABLE t1 (f1 CHAR(3) CHARACTER SET utf8 NULL, f2 CHAR(3) CHARACTER SET latin1 NULL); +INSERT INTO t1 VALUES ('foo','bar'); +SELECT * FROM t1 WHERE f2 >= SOME ( SELECT f1 FROM t1 ); +f1 f2 +SELECT * FROM t1 WHERE f2 <= SOME ( SELECT f1 FROM t1 ); +f1 f2 +foo bar +DROP TABLE t1; set optimizer_switch=default; select @@optimizer_switch like '%subquery_cache=on%'; @@optimizer_switch like '%subquery_cache=on%' diff --git a/mysql-test/r/subselect_no_semijoin.result b/mysql-test/r/subselect_no_semijoin.result index a211d498762..b6261f05098 100644 --- a/mysql-test/r/subselect_no_semijoin.result +++ b/mysql-test/r/subselect_no_semijoin.result @@ -7100,5 +7100,16 @@ group by round((select 1 from t1 limit 1)); round((select 1 from t1 limit 1)) 1 drop table t1; +# +# MDEV-10386 Assertion `fixed == 1' failed in virtual String* Item_func_conv_charset::val_str(String*) +# +CREATE TABLE t1 (f1 CHAR(3) CHARACTER SET utf8 NULL, f2 CHAR(3) CHARACTER SET latin1 NULL); +INSERT INTO t1 VALUES ('foo','bar'); +SELECT * FROM t1 WHERE f2 >= SOME ( SELECT f1 FROM t1 ); +f1 f2 +SELECT * FROM t1 WHERE f2 <= SOME ( SELECT f1 FROM t1 ); +f1 f2 +foo bar +DROP TABLE t1; set @optimizer_switch_for_subselect_test=null; set @join_cache_level_for_subselect_test=NULL; diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 77b6c6c5582..a8ad3ba52a5 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -5988,3 +5988,13 @@ from t1 group by round((select 1 from t1 limit 1)); drop table t1; + +--echo # +--echo # MDEV-10386 Assertion `fixed == 1' failed in virtual String* Item_func_conv_charset::val_str(String*) +--echo # + +CREATE TABLE t1 (f1 CHAR(3) CHARACTER SET utf8 NULL, f2 CHAR(3) CHARACTER SET latin1 NULL); +INSERT INTO t1 VALUES ('foo','bar'); +SELECT * FROM t1 WHERE f2 >= SOME ( SELECT f1 FROM t1 ); +SELECT * FROM t1 WHERE f2 <= SOME ( SELECT f1 FROM t1 ); +DROP TABLE t1; diff --git a/sql/item.cc b/sql/item.cc index fc9eb31bf5b..1df91dc2534 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -1164,7 +1164,8 @@ Item *Item_cache::safe_charset_converter(CHARSET_INFO *tocs) if (conv == example) return this; Item_cache *cache; - if (!conv || !(cache= new Item_cache_str(conv))) + if (!conv || conv->fix_fields(current_thd, (Item **) NULL) || + !(cache= new Item_cache_str(conv))) return NULL; // Safe conversion is not possible, or OEM cache->setup(conv); cache->fixed= false; // Make Item::fix_fields() happy From 706fb790bcf9105a73f34002fe28c75032267c4b Mon Sep 17 00:00:00 2001 From: Varun Gupta Date: Thu, 22 Dec 2016 15:51:37 +0530 Subject: [PATCH 063/258] MDEV-10927: Crash When Using sort_union Optimization In file sql/filesort.cc,when merge_buffers() is called then - queue_remove(&queue,0) is called - For the function queue_remove there is assertion states that the element to be removed should have index >=1 - this is causing the assertion to fail. Fixed by removing the top element. --- mysql-test/r/index_merge_innodb.result | 29 ++++++++++++++++++++++ mysql-test/t/index_merge_innodb.test | 33 +++++++++++++++++++++++++- sql/filesort.cc | 2 +- 3 files changed, 62 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/index_merge_innodb.result b/mysql-test/r/index_merge_innodb.result index b93d15f7bef..00cbf35ec69 100644 --- a/mysql-test/r/index_merge_innodb.result +++ b/mysql-test/r/index_merge_innodb.result @@ -793,3 +793,32 @@ a b c 9 d d DROP TABLE t1; set optimizer_switch= @optimizer_switch_save; +# +# MDEV-10927: Crash When Using sort_union Optimization +# +set @tmp_optimizer_switch=@@optimizer_switch; +SET optimizer_switch='index_merge_sort_intersection=on'; +SET SESSION sort_buffer_size = 1024; +create table t1 ( +pk int(11) NOT NULL AUTO_INCREMENT, +col1 int(11) NOT NULL, +col2 int(11) NOT NULL, +col3 int(11) NOT NULL, +key2 int(11) NOT NULL, +col4 int(11) NOT NULL, +key1 int(11) NOT NULL, +PRIMARY KEY (pk), +KEY key1 (key1), +KEY key2 (key2) +) ENGINE=InnoDB AUTO_INCREMENT=12860259 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT; +create table t2(a int); +insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t3(a int); +insert into t3 select A.a + B.a* 10 + C.a * 100 + D.a*1000 from t2 A, t2 B, t2 C, t2 D; +insert into t1 (key1, key2, col1,col2,col3,col4) +select a,a, a,a,a,a from t3; +SELECT sum(col1) FROM t1 FORCE INDEX (key1,key2) WHERE (key1 between 10 and 8191+10) or (key2= 5); +sum(col1) +33632261 +drop table t1,t2,t3; +set optimizer_switch=@tmp_optimizer_switch; diff --git a/mysql-test/t/index_merge_innodb.test b/mysql-test/t/index_merge_innodb.test index 6a1cb53dc40..fb56e44b5ae 100644 --- a/mysql-test/t/index_merge_innodb.test +++ b/mysql-test/t/index_merge_innodb.test @@ -171,6 +171,37 @@ WHERE ( tb.b != ta.b OR tb.a = ta.a ) AND ( tb.b = ta.c OR tb.b = ta.b ); DROP TABLE t1; - set optimizer_switch= @optimizer_switch_save; +--echo # +--echo # MDEV-10927: Crash When Using sort_union Optimization +--echo # + +set @tmp_optimizer_switch=@@optimizer_switch; +SET optimizer_switch='index_merge_sort_intersection=on'; +SET SESSION sort_buffer_size = 1024; + +create table t1 ( +pk int(11) NOT NULL AUTO_INCREMENT, +col1 int(11) NOT NULL, +col2 int(11) NOT NULL, +col3 int(11) NOT NULL, +key2 int(11) NOT NULL, +col4 int(11) NOT NULL, +key1 int(11) NOT NULL, +PRIMARY KEY (pk), +KEY key1 (key1), +KEY key2 (key2) +) ENGINE=InnoDB AUTO_INCREMENT=12860259 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT; + +create table t2(a int); +insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t3(a int); +insert into t3 select A.a + B.a* 10 + C.a * 100 + D.a*1000 from t2 A, t2 B, t2 C, t2 D; + +insert into t1 (key1, key2, col1,col2,col3,col4) +select a,a, a,a,a,a from t3; +SELECT sum(col1) FROM t1 FORCE INDEX (key1,key2) WHERE (key1 between 10 and 8191+10) or (key2= 5); +drop table t1,t2,t3; +set optimizer_switch=@tmp_optimizer_switch; diff --git a/sql/filesort.cc b/sql/filesort.cc index 5bb5c64409a..38404b01cf7 100644 --- a/sql/filesort.cc +++ b/sql/filesort.cc @@ -1411,7 +1411,7 @@ int merge_buffers(SORTPARAM *param, IO_CACHE *from_file, if (!(error= (int) read_to_buffer(from_file, buffpek, rec_length))) { - queue_remove(&queue,0); + (void) queue_remove_top(&queue); reuse_freed_buff(&queue, buffpek, rec_length); } else if (error == -1) From c8e49f2f57b7e8c9dcf3cdb108dc15e6b63b4dc4 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 20 Dec 2016 15:17:59 +0100 Subject: [PATCH 064/258] move check_user/set_user from mysqld.cc to mysys --- include/my_sys.h | 4 +++ mysys/CMakeLists.txt | 4 +-- mysys/my_setuser.c | 81 ++++++++++++++++++++++++++++++++++++++++++ sql/mysqld.cc | 83 ++++++-------------------------------------- 4 files changed, 98 insertions(+), 74 deletions(-) create mode 100644 mysys/my_setuser.c diff --git a/include/my_sys.h b/include/my_sys.h index 001769a0b76..5392a94d27e 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -602,8 +602,12 @@ extern void *my_memmem(const void *haystack, size_t haystacklen, #ifdef _WIN32 extern int my_access(const char *path, int amode); +#define my_check_user(A,B) (NULL) +#define my_set_user(A,B,C) (0) #else #define my_access access +struct passwd *my_check_user(const char *user, myf MyFlags); +int my_set_user(const char *user, struct passwd *user_info, myf MyFlags); #endif extern int check_if_legal_filename(const char *path); diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt index 06a811f0994..cb86850c2de 100644 --- a/mysys/CMakeLists.txt +++ b/mysys/CMakeLists.txt @@ -34,7 +34,7 @@ SET(MYSYS_SOURCES array.c charset-def.c charset.c checksum.c default.c rijndael.c sha1.c string.c thr_alarm.c thr_lock.c thr_mutex.c thr_rwlock.c tree.c typelib.c base64.c my_memmem.c my_getpagesize.c lf_alloc-pin.c lf_dynarray.c lf_hash.c - safemalloc.c my_new.cc + safemalloc.c my_new.cc my_atomic.c my_getncpus.c my_safehash.c my_chmod.c my_rnd.c my_uuid.c wqueue.c waiting_threads.c ma_dyncol.c my_rdtsc.c my_context.c file_logger.c) @@ -44,7 +44,7 @@ IF (WIN32) ENDIF() IF(UNIX) - SET (MYSYS_SOURCES ${MYSYS_SOURCES} my_addr_resolve.c) + SET (MYSYS_SOURCES ${MYSYS_SOURCES} my_addr_resolve.c my_setuser.c) ENDIF() IF(HAVE_ALARM) diff --git a/mysys/my_setuser.c b/mysys/my_setuser.c new file mode 100644 index 00000000000..1f3e7770d4c --- /dev/null +++ b/mysys/my_setuser.c @@ -0,0 +1,81 @@ +#include +#include +#include +#include +#ifdef HAVE_PWD_H +#include +#endif +#ifdef HAVE_GRP_H +#include +#endif + +struct passwd *my_check_user(const char *user, myf MyFlags) +{ + struct passwd *user_info; + uid_t user_id= geteuid(); + DBUG_ENTER("my_check_user"); + + // Don't bother if we aren't superuser + if (user_id) + { + if (user) + { + /* Don't give a warning, if real user is same as given with --user */ + user_info= getpwnam(user); + if (!user_info || user_id != user_info->pw_uid) + { + my_errno= EPERM; + if (MyFlags & MY_WME) + my_printf_error(my_errno, "One can only use the --user switch if " + "running as root", MYF(ME_JUST_WARNING|ME_NOREFRESH)); + } + } + DBUG_RETURN(NULL); + } + if (!user) + { + if (MyFlags & MY_FAE) + { + my_errno= EINVAL; + my_printf_error(my_errno, "Please consult the Knowledge Base to find " + "out how to run mysqld as root!", MYF(ME_NOREFRESH)); + } + DBUG_RETURN(NULL); + } + if (!strcmp(user,"root")) + DBUG_RETURN(NULL); + + if (!(user_info= getpwnam(user))) + { + // Allow a numeric uid to be used + int err= 0; + user_id= my_strtoll10(user, NULL, &err); + if (err || !(user_info= getpwuid(user_id))) + { + my_errno= EINVAL; + my_printf_error(my_errno, "Can't change to run as user '%s'. Please " + "check that the user exists!", MYF(ME_NOREFRESH), user); + DBUG_RETURN(NULL); + } + } + DBUG_ASSERT(user_info); + DBUG_RETURN(user_info); +} + +int my_set_user(const char *user, struct passwd *user_info, myf MyFlags) +{ + DBUG_ENTER("my_set_user"); + + DBUG_ASSERT(user_info != 0); +#ifdef HAVE_INITGROUPS + initgroups(user, user_info->pw_gid); +#endif + if (setgid(user_info->pw_gid) == -1 || setuid(user_info->pw_uid) == -1) + { + my_errno= errno; + if (MyFlags & MY_WME) + my_error(my_errno, MYF(ME_NOREFRESH)); + DBUG_RETURN(my_errno); + } + DBUG_RETURN(0); +} diff --git a/sql/mysqld.cc b/sql/mysqld.cc index ea4fa823d29..11e9176861d 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -121,10 +121,7 @@ extern "C" { // Because of SCO 3.2V4.2 #include #endif #ifdef HAVE_PWD_H -#include // For getpwent -#endif -#ifdef HAVE_GRP_H -#include +#include // For struct passwd #endif #include @@ -455,9 +452,7 @@ ulong opt_binlog_rows_event_max_size; my_bool opt_master_verify_checksum= 0; my_bool opt_slave_sql_verify_checksum= 1; const char *binlog_format_names[]= {"MIXED", "STATEMENT", "ROW", NullS}; -#ifdef HAVE_INITGROUPS volatile sig_atomic_t calling_initgroups= 0; /**< Used in SIGSEGV handler. */ -#endif uint mysqld_port, test_flags, select_errors, dropping_tables, ha_open_options; uint mysqld_extra_port; uint mysqld_port_timeout; @@ -2001,59 +1996,18 @@ static void set_ports() static struct passwd *check_user(const char *user) { -#if !defined(__WIN__) - struct passwd *tmp_user_info; - uid_t user_id= geteuid(); + myf flags= 0; + if (global_system_variables.log_warnings) + flags|= MY_WME; + if (!opt_bootstrap && !opt_help) + flags|= MY_FAE; - // Don't bother if we aren't superuser - if (user_id) - { - if (user) - { - /* Don't give a warning, if real user is same as given with --user */ - /* purecov: begin tested */ - tmp_user_info= getpwnam(user); - if ((!tmp_user_info || user_id != tmp_user_info->pw_uid) && - global_system_variables.log_warnings) - sql_print_warning( - "One can only use the --user switch if running as root\n"); - /* purecov: end */ - } - return NULL; - } - if (!user) - { - if (!opt_bootstrap && !opt_help) - { - sql_print_error("Fatal error: Please consult the Knowledge Base " - "to find out how to run mysqld as root!\n"); - unireg_abort(1); - } - return NULL; - } - /* purecov: begin tested */ - if (!strcmp(user,"root")) - return NULL; // Avoid problem with dynamic libraries + struct passwd *tmp_user_info= my_check_user(user, MYF(flags)); - if (!(tmp_user_info= getpwnam(user))) - { - // Allow a numeric uid to be used - const char *pos; - for (pos= user; my_isdigit(mysqld_charset,*pos); pos++) ; - if (*pos) // Not numeric id - goto err; - if (!(tmp_user_info= getpwuid(atoi(user)))) - goto err; - } + if (!tmp_user_info && my_errno==EINVAL && (flags & MY_FAE)) + unireg_abort(1); return tmp_user_info; - /* purecov: end */ - -err: - sql_print_error("Fatal error: Can't change to run as user '%s' ; Please check that the user exists!\n",user); - unireg_abort(1); -#endif - return NULL; } static inline void allow_coredumps() @@ -2070,10 +2024,6 @@ static inline void allow_coredumps() static void set_user(const char *user, struct passwd *user_info_arg) { - /* purecov: begin tested */ -#if !defined(__WIN__) - DBUG_ASSERT(user_info_arg != 0); -#ifdef HAVE_INITGROUPS /* We can get a SIGSEGV when calling initgroups() on some systems when NSS is configured to use LDAP and the server is statically linked. We set @@ -2081,22 +2031,11 @@ static void set_user(const char *user, struct passwd *user_info_arg) output a specific message to help the user resolve this problem. */ calling_initgroups= 1; - initgroups((char*) user, user_info_arg->pw_gid); + int res= my_set_user(user, user_info_arg, MYF(MY_WME)); calling_initgroups= 0; -#endif - if (setgid(user_info_arg->pw_gid) == -1) - { - sql_perror("setgid"); + if (res) unireg_abort(1); - } - if (setuid(user_info_arg->pw_uid) == -1) - { - sql_perror("setuid"); - unireg_abort(1); - } allow_coredumps(); -#endif - /* purecov: end */ } From 8fcdd6b0ecbb966f4479856efe93a963a7a422f7 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 20 Dec 2016 21:16:23 +0100 Subject: [PATCH 065/258] Numerous issues in mysqld_safe --- .gitignore | 1 + .../dist/Debian/mariadb-server-5.5.files.in | 1 + .../dist/Ubuntu/mariadb-server-5.5.files.in | 1 + extra/CMakeLists.txt | 3 + extra/mysqld_safe_helper.c | 77 +++++++++++++ scripts/mysqld_safe.sh | 107 +++++++----------- support-files/mysql.server.sh | 8 +- 7 files changed, 128 insertions(+), 70 deletions(-) create mode 100644 extra/mysqld_safe_helper.c diff --git a/.gitignore b/.gitignore index b780ca88de0..8b6e416ec45 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,7 @@ extra/jemalloc/build/ extra/jemalloc/tmp/ extra/my_print_defaults extra/mysql_waitpid +extra/mysqld_safe_helper extra/perror extra/replace extra/resolve_stack_dump diff --git a/debian/dist/Debian/mariadb-server-5.5.files.in b/debian/dist/Debian/mariadb-server-5.5.files.in index c1ea58740e4..47a9887b075 100644 --- a/debian/dist/Debian/mariadb-server-5.5.files.in +++ b/debian/dist/Debian/mariadb-server-5.5.files.in @@ -32,6 +32,7 @@ usr/bin/mysql_zap usr/bin/mysqlbinlog usr/bin/mysqld_multi usr/bin/mysqld_safe +usr/bin/mysqld_safe_helper usr/bin/mysqlhotcopy usr/bin/perror usr/bin/replace diff --git a/debian/dist/Ubuntu/mariadb-server-5.5.files.in b/debian/dist/Ubuntu/mariadb-server-5.5.files.in index 7f75ccc2303..5182dd76346 100644 --- a/debian/dist/Ubuntu/mariadb-server-5.5.files.in +++ b/debian/dist/Ubuntu/mariadb-server-5.5.files.in @@ -34,6 +34,7 @@ usr/bin/mysql_zap usr/bin/mysqlbinlog usr/bin/mysqld_multi usr/bin/mysqld_safe +usr/bin/mysqld_safe_helper usr/bin/mysqlhotcopy usr/bin/perror usr/bin/replace diff --git a/extra/CMakeLists.txt b/extra/CMakeLists.txt index f8f71b00743..7f47f878110 100644 --- a/extra/CMakeLists.txt +++ b/extra/CMakeLists.txt @@ -82,4 +82,7 @@ IF(UNIX) MYSQL_ADD_EXECUTABLE(mysql_waitpid mysql_waitpid.c COMPONENT Client) TARGET_LINK_LIBRARIES(mysql_waitpid mysys) + + MYSQL_ADD_EXECUTABLE(mysqld_safe_helper mysqld_safe_helper.c COMPONENT Server) + TARGET_LINK_LIBRARIES(mysqld_safe_helper mysys) ENDIF() diff --git a/extra/mysqld_safe_helper.c b/extra/mysqld_safe_helper.c new file mode 100644 index 00000000000..09e507c6e1c --- /dev/null +++ b/extra/mysqld_safe_helper.c @@ -0,0 +1,77 @@ +#include +#include +#include +#include +#ifdef HAVE_PWD_H +#include +#endif +#include +#include + +void my_exit(int c) +{ + my_end(0); + exit(c); +} + +void do_usage() +{ + printf("Usage:\n" + " %s log \n" + " %s exec \n", + my_progname, my_progname); + my_exit(1); +} + +void do_log(const char *logfile) +{ + FILE *f; + uchar buf[4096]; + int size; + + if (!logfile) + do_usage(); + + f= my_fopen(logfile, O_WRONLY|O_APPEND|O_CREAT, MYF(MY_WME)); + if (!f) + my_exit(1); + + while ((size= my_fread(stdin, buf, sizeof(buf), MYF(MY_WME))) > 0) + if ((int)my_fwrite(f, buf, size, MYF(MY_WME)) != size) + my_exit(1); + + my_fclose(f, MYF(0)); + my_exit(0); +} + +void do_exec(char *args[]) +{ + if (!args[0]) + do_usage(); + + my_end(0); + execvp(args[0], args); +} + +int main(int argc, char *argv[]) +{ + struct passwd *user_info; + MY_INIT(argv[0]); + + if (argc < 3) + do_usage(argv[0]); + + user_info= my_check_user(argv[1], MYF(0)); + if (user_info ? my_set_user(argv[1], user_info, MYF(MY_WME)) + : my_errno == EINVAL) + my_exit(1); + + if (strcmp(argv[2], "log") == 0) + do_log(argv[3]); + + if (strcmp(argv[2], "exec") == 0) + do_exec(argv+3); + + my_end(0); + return 1; +} diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 7cadce725d1..059263fad51 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -20,6 +20,7 @@ mysqld_ld_preload= mysqld_ld_library_path= flush_caches=0 numa_interleave=0 +unsafe_my_cnf=0 # Initial logging status: error log is not open, and not using syslog logging=init @@ -128,6 +129,18 @@ my_which () return $ret # Success } +find_in_bin() { + if test -x "$MY_BASEDIR_VERSION/bin/$1" + then + echo "$MY_BASEDIR_VERSION/bin/$1" + elif test -x "@bindir@/$1" + then + echo "@bindir@/$1" + else + echo "$1" + fi +} + log_generic () { priority="$1" shift @@ -136,7 +149,7 @@ log_generic () { echo "$msg" case $logging in init) ;; # Just echo the message, don't save it anywhere - file) echo "$msg" >> "$err_log" ;; + file) echo "$msg" | "$helper" "$user" log "$err_log" ;; syslog) logger -t "$syslog_tag_mysqld_safe" -p "$priority" "$*" ;; *) echo "Internal program error (non-fatal):" \ @@ -156,7 +169,7 @@ log_notice () { eval_log_error () { cmd="$1" case $logging in - file) cmd="$cmd >> "`shell_quote_string "$err_log"`" 2>&1" ;; + file) cmd="$cmd 2>&1 | "`shell_quote_string "$helper"`" $user log "`shell_quote_string "$err_log"` ;; syslog) # mysqld often prefixes its messages with a timestamp, which is # redundant when logging to syslog (which adds its own timestamp) @@ -190,6 +203,13 @@ shell_quote_string() { echo "$1" | sed -e 's,\([^a-zA-Z0-9/_.=-]\),\\\1,g' } +check_executable_location() { + if test "$unsafe_my_cnf" = 1 -a "$unrecognized_handling" != collect; then + log_error "Cannot accept $1 from a config file, when my.cnf is in the datadir" + exit 1 + fi +} + parse_arguments() { for arg do # the parameter after "=", or the whole $arg if no match @@ -200,7 +220,6 @@ parse_arguments() { optname_subst=`echo "$optname" | sed 's/_/-/g'` arg=`echo $arg | sed "s/^$optname/$optname_subst/"` case "$arg" in - --crash-script=*) CRASH_SCRIPT="$val" ;; # these get passed explicitly to mysqld --basedir=*) MY_BASEDIR_VERSION="$val" ;; --datadir=*|--data=*) DATADIR="$val" ;; @@ -220,12 +239,14 @@ parse_arguments() { # mysqld_safe-specific options - must be set in my.cnf ([mysqld_safe])! --core-file-size=*) core_file_size="$val" ;; - --ledir=*) ledir="$val" ;; - --malloc-lib=*) set_malloc_lib "$val" ;; - --mysqld=*) MYSQLD="$val" ;; + --ledir=*) check_executable_location "$arg" ; ledir="$val" ;; + --malloc-lib=*) check_executable_location "$arg"; set_malloc_lib "$val" ;; + --crash-script=*) check_executable_location "$arg"; crash_script="$val" ;; + --mysqld=*) check_executable_location "$arg"; MYSQLD="$val" ;; --mysqld-version=*) if test -n "$val" then + check_executable_location "$arg" MYSQLD="mysqld-$val" PLUGIN_VARIANT="/$val" else @@ -385,15 +406,8 @@ set_malloc_lib() { # First, try to find BASEDIR and ledir (where mysqld is) # -if echo '@pkgdatadir@' | grep '^@prefix@' > /dev/null -then - relpkgdata=`echo '@pkgdatadir@' | sed -e 's,^@prefix@,,' -e 's,^/,,' -e 's,^,./,'` -else - # pkgdatadir is not relative to prefix - relpkgdata='@pkgdatadir@' -fi - -MY_PWD=`pwd` +MY_PWD=`dirname $0` +MY_PWD=`cd "$MY_PWD"/.. && pwd` # Check for the directories we would expect from a binary release install if test -n "$MY_BASEDIR_VERSION" -a -d "$MY_BASEDIR_VERSION" then @@ -409,16 +423,16 @@ then else ledir="$MY_BASEDIR_VERSION/bin" fi -elif test -f "$relpkgdata"/english/errmsg.sys -a -x "$MY_PWD/bin/mysqld" +elif test -x "$MY_PWD/bin/mysqld" then MY_BASEDIR_VERSION="$MY_PWD" # Where bin, share and data are ledir="$MY_PWD/bin" # Where mysqld is # Check for the directories we would expect from a source install -elif test -f "$relpkgdata"/english/errmsg.sys -a -x "$MY_PWD/libexec/mysqld" +elif test -x "$MY_PWD/libexec/mysqld" then MY_BASEDIR_VERSION="$MY_PWD" # Where libexec, share and var are ledir="$MY_PWD/libexec" # Where mysqld is -elif test -f "$relpkgdata"/english/errmsg.sys -a -x "$MY_PWD/sbin/mysqld" +elif test -x "$MY_PWD/sbin/mysqld" then MY_BASEDIR_VERSION="$MY_PWD" # Where sbin, share and var are ledir="$MY_PWD/sbin" # Where mysqld is @@ -428,6 +442,8 @@ else ledir='@libexecdir@' fi +helper=`find_in_bin mysqld_safe_helper` +print_defaults=`find_in_bin my_print_defaults` # # Second, try to find the data directory @@ -465,6 +481,7 @@ IGNORING $DATADIR/my.cnf" log_error "WARNING: Found $DATADIR/my.cnf The data directory is a deprecated location for my.cnf, please move it to $MY_BASEDIR_VERSION/my.cnf" + unsafe_my_cnf=1 MYSQL_HOME=$DATADIR else MYSQL_HOME=$MY_BASEDIR_VERSION @@ -472,34 +489,15 @@ $MY_BASEDIR_VERSION/my.cnf" fi export MYSQL_HOME - -# Get first arguments from the my.cnf file, groups [mysqld] and [mysqld_safe] -# and then merge with the command line arguments -if test -x "$MY_BASEDIR_VERSION/bin/my_print_defaults" -then - print_defaults="$MY_BASEDIR_VERSION/bin/my_print_defaults" -elif test -x `dirname $0`/my_print_defaults -then - print_defaults="`dirname $0`/my_print_defaults" -elif test -x ./bin/my_print_defaults -then - print_defaults="./bin/my_print_defaults" -elif test -x @bindir@/my_print_defaults -then - print_defaults="@bindir@/my_print_defaults" -elif test -x @bindir@/mysql_print_defaults -then - print_defaults="@bindir@/mysql_print_defaults" -else - print_defaults="my_print_defaults" -fi - append_arg_to_args () { args="$args "`shell_quote_string "$1"` } args= +# Get first arguments from the my.cnf file, groups [mysqld] and [mysqld_safe] +# and then merge with the command line arguments + SET_USER=2 parse_arguments `$print_defaults $defaults --loose-verbose --mysqld` if test $SET_USER -eq 2 @@ -603,11 +601,6 @@ then log_notice "Logging to '$err_log'." logging=file - if [ ! -f "$err_log" ]; then # if error log already exists, - touch "$err_log" # we just append. otherwise, - chmod "$fmode" "$err_log" # fix the permissions here! - fi - else if [ -n "$syslog_tag" ] then @@ -620,10 +613,6 @@ else logging=syslog fi -# close stdout and stderr, everything goes to $logging now -exec 1>&- -exec 2>&- - USER_OPTION="" if test -w / -o "$USER" = "root" then @@ -631,11 +620,6 @@ then then USER_OPTION="--user=$user" fi - # Change the err log to the right user, if it is in use - if [ $want_syslog -eq 0 ]; then - touch "$err_log" - chown $user "$err_log" - fi if test -n "$open_files" then ulimit -n $open_files @@ -879,6 +863,10 @@ max_fast_restarts=5 # flag whether a usable sleep command exists have_sleep=1 +# close stdout and stderr, everything goes to $logging now +exec 1>&- +exec 2>&- + while true do rm -f "$pid_file" # Some extra safety @@ -886,13 +874,6 @@ do start_time=`date +%M%S` eval_log_error "$cmd" - - if [ $want_syslog -eq 0 -a ! -f "$err_log" ]; then - touch "$err_log" # hypothetical: log was renamed but not - chown $user "$err_log" # flushed yet. we'd recreate it with - chmod "$fmode" "$err_log" # wrong owner next time we log, so set - fi # it up correctly while we can! - end_time=`date +%M%S` if test ! -f "$pid_file" # This is removed if normal shutdown @@ -956,9 +937,9 @@ do done fi log_notice "mysqld restarted" - if test -n "$CRASH_SCRIPT" + if test -n "$crash_script" then - crash_script_output=`$CRASH_SCRIPT 2>&1` + crash_script_output=`$crash_script 2>&1` log_error "$crash_script_output" fi done diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh index d4fff33af13..a4034dec385 100644 --- a/support-files/mysql.server.sh +++ b/support-files/mysql.server.sh @@ -157,15 +157,9 @@ parse_server_arguments() { # Get arguments from the my.cnf file, # the only group, which is read from now on is [mysqld] -if test -x ./bin/my_print_defaults -then - print_defaults="./bin/my_print_defaults" -elif test -x $bindir/my_print_defaults +if test -x $bindir/my_print_defaults then print_defaults="$bindir/my_print_defaults" -elif test -x $bindir/mysql_print_defaults -then - print_defaults="$bindir/mysql_print_defaults" else # Try to find basedir in /etc/my.cnf conf=/etc/my.cnf From 48655ce6985490fdf6c5c8be7c75b37f83f7738e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 22 Dec 2016 12:23:48 +0100 Subject: [PATCH 066/258] test case for Bug #23303485 : HANDLE_FATAL_SIGNAL (SIG=11) IN SUBSELECT_UNION_ENGINE::NO_ROWS --- mysql-test/r/subselect2.result | 10 ++++++++++ mysql-test/t/subselect2.test | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/mysql-test/r/subselect2.result b/mysql-test/r/subselect2.result index b6dc940d9fb..64bd86707cc 100644 --- a/mysql-test/r/subselect2.result +++ b/mysql-test/r/subselect2.result @@ -384,3 +384,13 @@ DEALLOCATE PREPARE stmt; DROP VIEW v1; DROP TABLE t1,t2,t3; set optimizer_switch=@subselect2_test_tmp; +create table t1 (a int); +create table t2 (a int); +create table t3(a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +insert into t2 select a from t1; +insert into t3 select a from t1; +select null in (select a from t1 where a < out3.a union select a from t2 where +(select a from t3) +1 < out3.a+1) from t3 out3; +ERROR 21000: Subquery returns more than 1 row +drop table t1, t2, t3; diff --git a/mysql-test/t/subselect2.test b/mysql-test/t/subselect2.test index f795cef648c..ae210b865a2 100644 --- a/mysql-test/t/subselect2.test +++ b/mysql-test/t/subselect2.test @@ -398,3 +398,16 @@ DROP TABLE t1,t2,t3; set optimizer_switch=@subselect2_test_tmp; +# +# Bug #23303485 : HANDLE_FATAL_SIGNAL (SIG=11) IN SUBSELECT_UNION_ENGINE::NO_ROWS +# +create table t1 (a int); +create table t2 (a int); +create table t3(a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +insert into t2 select a from t1; +insert into t3 select a from t1; +--error ER_SUBQUERY_NO_1_ROW +select null in (select a from t1 where a < out3.a union select a from t2 where + (select a from t3) +1 < out3.a+1) from t3 out3; +drop table t1, t2, t3; From e7d7910b7a926ccc6f5b8d73d55ac511f1c03c3d Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 22 Dec 2016 11:13:07 +0100 Subject: [PATCH 067/258] add an assert and use is_supported_parser_charset() instead of direct check --- sql/sql_connect.cc | 16 +++++++--------- sql/sys_vars.cc | 3 ++- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc index 61f8b4081eb..e2e56c48b3b 100644 --- a/sql/sql_connect.cc +++ b/sql/sql_connect.cc @@ -1,6 +1,6 @@ /* Copyright (c) 2007, 2013, Oracle and/or its affiliates. - Copyright (c) 2008, 2014, SkySQL Ab. + Copyright (c) 2008, 2016, MariaDB 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 @@ -821,6 +821,7 @@ void update_global_user_stats(THD *thd, bool create_user, time_t now) bool thd_init_client_charset(THD *thd, uint cs_number) { + SV *gv=&global_system_variables; CHARSET_INFO *cs; /* Use server character set and collation if @@ -831,16 +832,13 @@ bool thd_init_client_charset(THD *thd, uint cs_number) */ if (!opt_character_set_client_handshake || !(cs= get_charset(cs_number, MYF(0))) || - !my_strcasecmp(&my_charset_latin1, - global_system_variables.character_set_client->name, + !my_strcasecmp(&my_charset_latin1, gv->character_set_client->name, cs->name)) { - thd->variables.character_set_client= - global_system_variables.character_set_client; - thd->variables.collation_connection= - global_system_variables.collation_connection; - thd->variables.character_set_results= - global_system_variables.character_set_results; + DBUG_ASSERT(is_supported_parser_charset(gv->character_set_client)); + thd->variables.character_set_client= gv->character_set_client; + thd->variables.collation_connection= gv->collation_connection; + thd->variables.character_set_results= gv->character_set_results; } else { diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 7b898906184..35997525456 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -31,6 +31,7 @@ #include "my_global.h" /* NO_EMBEDDED_ACCESS_CHECKS */ #include "sql_priv.h" #include "sql_class.h" // set_var.h: THD +#include "sql_parse.h" #include "sys_vars.h" #include "events.h" @@ -445,7 +446,7 @@ static bool check_cs_client(sys_var *self, THD *thd, set_var *var) return true; // Currently, UCS-2 cannot be used as a client character set - if (((CHARSET_INFO *)(var->save_result.ptr))->mbminlen > 1) + if (!is_supported_parser_charset((CHARSET_INFO *)(var->save_result.ptr))) return true; return false; From ec6d8dadc01269451332e5b24b12a5350a2a4896 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 22 Dec 2016 13:02:32 +0100 Subject: [PATCH 068/258] reduce code duplication a little --- sql/event_db_repository.cc | 15 +++++++-------- sql/sp_head.cc | 6 +----- sql/sql_parse.cc | 23 ++++++++++++++--------- sql/sql_parse.h | 1 + sql/sql_table.cc | 6 +----- sql/sql_udf.cc | 6 +----- sql/sql_yacc.yy | 12 ++---------- 7 files changed, 27 insertions(+), 42 deletions(-) diff --git a/sql/event_db_repository.cc b/sql/event_db_repository.cc index 37dff0da714..673250ffd22 100644 --- a/sql/event_db_repository.cc +++ b/sql/event_db_repository.cc @@ -17,6 +17,7 @@ #include "sql_priv.h" #include "unireg.h" #include "sql_base.h" // close_thread_tables +#include "sql_parse.h" #include "event_db_repository.h" #include "key.h" // key_copy #include "sql_db.h" // get_default_db_collation @@ -702,19 +703,17 @@ Event_db_repository::create_event(THD *thd, Event_parse_data *parse_data, restore_record(table, s->default_values); // Get default values for fields - if (system_charset_info->cset-> - numchars(system_charset_info, parse_data->dbname.str, - parse_data->dbname.str + parse_data->dbname.length) > - table->field[ET_FIELD_DB]->char_length()) + if (check_string_char_length(&parse_data->dbname, 0, + table->field[ET_FIELD_DB]->char_length(), + system_charset_info, 1)) { my_error(ER_TOO_LONG_IDENT, MYF(0), parse_data->dbname.str); goto end; } - if (system_charset_info->cset-> - numchars(system_charset_info, parse_data->name.str, - parse_data->name.str + parse_data->name.length) > - table->field[ET_FIELD_NAME]->char_length()) + if (check_string_char_length(&parse_data->name, 0, + table->field[ET_FIELD_NAME]->char_length(), + system_charset_info, 1)) { my_error(ER_TOO_LONG_IDENT, MYF(0), parse_data->name.str); goto end; diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 9bfa60a07d3..69364eaa43f 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -488,12 +488,8 @@ check_routine_name(LEX_STRING *ident) my_error(ER_SP_WRONG_NAME, MYF(0), ident->str); return TRUE; } - if (check_string_char_length(ident, "", NAME_CHAR_LEN, - system_charset_info, 1)) - { - my_error(ER_TOO_LONG_IDENT, MYF(0), ident->str); + if (check_ident_length(ident)) return TRUE; - } return FALSE; } diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index a3114aba7d3..f000fe1a37d 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -4329,11 +4329,8 @@ create_sp_error: } case SQLCOM_SHOW_CREATE_TRIGGER: { - if (lex->spname->m_name.length > NAME_LEN) - { - my_error(ER_TOO_LONG_IDENT, MYF(0), lex->spname->m_name.str); + if (check_ident_length(&lex->spname->m_name)) goto error; - } if (show_create_trigger(thd, lex->spname)) goto error; /* Error has been already logged. */ @@ -6019,12 +6016,9 @@ bool add_field_to_list(THD *thd, LEX_STRING *field_name, enum_field_types type, LEX *lex= thd->lex; DBUG_ENTER("add_field_to_list"); - if (check_string_char_length(field_name, "", NAME_CHAR_LEN, - system_charset_info, 1)) - { - my_error(ER_TOO_LONG_IDENT, MYF(0), field_name->str); /* purecov: inspected */ + if (check_ident_length(field_name)) DBUG_RETURN(1); /* purecov: inspected */ - } + if (type_modifier & PRI_KEY_FLAG) { Key *key; @@ -7688,6 +7682,17 @@ bool check_string_char_length(LEX_STRING *str, const char *err_msg, } +bool check_ident_length(LEX_STRING *ident) +{ + if (check_string_char_length(ident, 0, NAME_CHAR_LEN, system_charset_info, 1)) + { + my_error(ER_TOO_LONG_IDENT, MYF(0), ident->str); + return 1; + } + return 0; +} + + /* Check if path does not contain mysql data home directory diff --git a/sql/sql_parse.h b/sql/sql_parse.h index 4c3070d197d..66a8f6efc7d 100644 --- a/sql/sql_parse.h +++ b/sql/sql_parse.h @@ -75,6 +75,7 @@ bool check_string_byte_length(LEX_STRING *str, const char *err_msg, bool check_string_char_length(LEX_STRING *str, const char *err_msg, uint max_char_length, CHARSET_INFO *cs, bool no_error); +bool check_ident_length(LEX_STRING *ident); CHARSET_INFO* merge_charset_and_collation(CHARSET_INFO *cs, CHARSET_INFO *cl); bool check_host_name(LEX_STRING *str); bool check_identifier_name(LEX_STRING *str, uint max_char_length, diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 9bcb4c3f8cc..2cec480d23b 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3312,12 +3312,8 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, my_error(ER_TOO_MANY_KEY_PARTS,MYF(0),tmp); DBUG_RETURN(TRUE); } - if (check_string_char_length(&key->name, "", NAME_CHAR_LEN, - system_charset_info, 1)) - { - my_error(ER_TOO_LONG_IDENT, MYF(0), key->name.str); + if (check_ident_length(&key->name)) DBUG_RETURN(TRUE); - } key_iterator2.rewind (); if (key->type != Key::FOREIGN_KEY) { diff --git a/sql/sql_udf.cc b/sql/sql_udf.cc index 626e5569ccc..d18498de784 100644 --- a/sql/sql_udf.cc +++ b/sql/sql_udf.cc @@ -455,12 +455,8 @@ int mysql_create_function(THD *thd,udf_func *udf) my_message(ER_UDF_NO_PATHS, ER(ER_UDF_NO_PATHS), MYF(0)); DBUG_RETURN(1); } - if (check_string_char_length(&udf->name, "", NAME_CHAR_LEN, - system_charset_info, 1)) - { - my_error(ER_TOO_LONG_IDENT, MYF(0), udf->name.str); + if (check_ident_length(&udf->name)) DBUG_RETURN(1); - } /* Turn off row binlogging of this statement and use statement-based diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 7d981e03aea..35c7203ca0d 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -4670,12 +4670,8 @@ part_name: { partition_info *part_info= Lex->part_info; partition_element *p_elem= part_info->curr_part_elem; - if (check_string_char_length(&$1, "", NAME_CHAR_LEN, - system_charset_info, true)) - { - my_error(ER_TOO_LONG_IDENT, MYF(0), $1.str); + if (check_ident_length(&$1)) MYSQL_YYABORT; - } p_elem->partition_name= $1.str; } ; @@ -4971,12 +4967,8 @@ sub_part_definition: sub_name: ident_or_text { - if (check_string_char_length(&$1, "", NAME_CHAR_LEN, - system_charset_info, true)) - { - my_error(ER_TOO_LONG_IDENT, MYF(0), $1.str); + if (check_ident_length(&$1)) MYSQL_YYABORT; - } Lex->part_info->curr_part_elem->partition_name= $1.str; } ; From e6b563f8be68d57df2a4c9b8e2b6c130855b18e4 Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Fri, 23 Dec 2016 16:58:32 +0100 Subject: [PATCH 069/258] Fix some XML table type bugs: - in DOMNODELIST::DropItem if (Listp == NULL || Listp->length <= n) return true; is wrong, should be: if (Listp == NULL || Listp->length < n) return true; - Crash in discovery with libxml2 in XMLColumns because: if (!tdp->Usedom) // nl was destroyed vp->nl = vp->pn->GetChildElements(g); is executed with vp->pn uninitialized. Fixed by adding: vp->pn = node; line 264. -In discovery with libxml2 some columns are not found. Because list was not recovered properly, nodes being modified and not reallocated. Fixed lines 214 and 277. modified: storage/connect/domdoc.cpp modified: storage/connect/tabxml.cpp Add support for zipped table files modified: storage/connect/domdoc.cpp modified: storage/connect/domdoc.h modified: storage/connect/filamap.cpp modified: storage/connect/filamap.h modified: storage/connect/filamzip.cpp modified: storage/connect/filamzip.h modified: storage/connect/ha_connect.cc modified: storage/connect/libdoc.cpp modified: storage/connect/plgdbutl.cpp modified: storage/connect/plgxml.cpp modified: storage/connect/plgxml.h modified: storage/connect/tabdos.cpp modified: storage/connect/tabdos.h modified: storage/connect/tabfmt.cpp modified: storage/connect/tabjson.cpp modified: storage/connect/tabxml.cpp --- storage/connect/domdoc.cpp | 40 +++- storage/connect/domdoc.h | 4 +- storage/connect/filamap.cpp | 49 ++-- storage/connect/filamap.h | 3 +- storage/connect/filamzip.cpp | 434 ++++++++++++++++++++++------------ storage/connect/filamzip.h | 96 +++++--- storage/connect/ha_connect.cc | 6 +- storage/connect/libdoc.cpp | 30 ++- storage/connect/plgdbutl.cpp | 2 +- storage/connect/plgxml.cpp | 55 ++++- storage/connect/plgxml.h | 16 +- storage/connect/tabdos.cpp | 34 ++- storage/connect/tabdos.h | 13 +- storage/connect/tabfmt.cpp | 11 +- storage/connect/tabjson.cpp | 33 ++- storage/connect/tabxml.cpp | 56 ++++- storage/connect/tabxml.h | 18 +- 17 files changed, 613 insertions(+), 287 deletions(-) diff --git a/storage/connect/domdoc.cpp b/storage/connect/domdoc.cpp index 64a0a172956..eb9660b439d 100644 --- a/storage/connect/domdoc.cpp +++ b/storage/connect/domdoc.cpp @@ -89,30 +89,43 @@ DOMDOC::DOMDOC(char *nsl, char *nsdf, char *enc, PFBLOCK fp) /******************************************************************/ /* Initialize XML parser and check library compatibility. */ /******************************************************************/ -bool DOMDOC::Initialize(PGLOBAL g) - { - if (TestHr(g, CoInitialize(NULL))) +bool DOMDOC::Initialize(PGLOBAL g, char *entry, bool zipped) +{ + if (zipped && InitZip(g, entry)) + return true; + + if (TestHr(g, CoInitialize(NULL))) return true; if (TestHr(g, Docp.CreateInstance("msxml2.domdocument"))) return true; return MakeNSlist(g); - } // end of Initialize +} // end of Initialize /******************************************************************/ /* Parse the XML file and construct node tree in memory. */ /******************************************************************/ -bool DOMDOC::ParseFile(char *fn) - { - // Load the document +bool DOMDOC::ParseFile(PGLOBAL g, char *fn) +{ + bool b; + Docp->async = false; - if (!(bool)Docp->load((_bstr_t)fn)) + if (zip) { + // Parse an in memory document + char *xdoc = GetMemDoc(g, fn); + + b = (xdoc) ? (bool)Docp->loadXML((_bstr_t)xdoc) : false; + } else + // Load the document + b = (bool)Docp->load((_bstr_t)fn); + + if (!b) return true; return false; - } // end of ParseFile +} // end of ParseFile /******************************************************************/ /* Create or reuse an Xblock for this document. */ @@ -239,6 +252,7 @@ int DOMDOC::DumpDoc(PGLOBAL g, char *ofn) void DOMDOC::CloseDoc(PGLOBAL g, PFBLOCK xp) { CloseXMLFile(g, xp, false); + CloseZip(); } // end of Close /* ----------------------- class DOMNODE ------------------------ */ @@ -616,13 +630,13 @@ PXNODE DOMNODELIST::GetItem(PGLOBAL g, int n, PXNODE np) /* Reset the pointer on the deleted item. */ /******************************************************************/ bool DOMNODELIST::DropItem(PGLOBAL g, int n) - { - if (Listp == NULL || Listp->length <= n) - return true; +{ + if (Listp == NULL || Listp->length < n) + return true; //Listp->item[n] = NULL; La propriété n'a pas de méthode 'set' return false; - } // end of DeleteItem +} // end of DeleteItem /* ----------------------- class DOMATTR ------------------------ */ diff --git a/storage/connect/domdoc.h b/storage/connect/domdoc.h index 2cffec499e2..cfec98a9422 100644 --- a/storage/connect/domdoc.h +++ b/storage/connect/domdoc.h @@ -37,8 +37,8 @@ class DOMDOC : public XMLDOCUMENT { virtual void SetNofree(bool b) {} // Only libxml2 // Methods - virtual bool Initialize(PGLOBAL g); - virtual bool ParseFile(char *fn); + virtual bool Initialize(PGLOBAL g, char *entry, bool zipped); + virtual bool ParseFile(PGLOBAL g, char *fn); virtual bool NewDoc(PGLOBAL g, char *ver); virtual void AddComment(PGLOBAL g, char *com); virtual PXNODE GetRoot(PGLOBAL g); diff --git a/storage/connect/filamap.cpp b/storage/connect/filamap.cpp index 3c5b3ae7592..94c562a9981 100644 --- a/storage/connect/filamap.cpp +++ b/storage/connect/filamap.cpp @@ -319,11 +319,13 @@ int MAPFAM::SkipRecord(PGLOBAL g, bool header) /***********************************************************************/ int MAPFAM::ReadBuffer(PGLOBAL g) { - int len; + int rc, len; // Are we at the end of the memory - if (Mempos >= Top) - return RC_EF; + if (Mempos >= Top) + if ((rc = GetNext(g)) != RC_OK) + return rc; + if (!Placed) { /*******************************************************************/ @@ -341,8 +343,10 @@ int MAPFAM::ReadBuffer(PGLOBAL g) /*******************************************************************/ switch (Tdbp->TestBlock(g)) { case RC_EF: - return RC_EF; - case RC_NF: + if ((rc = GetNext(g)) != RC_OK) + return rc; + + case RC_NF: // Skip this record if ((rc = SkipRecord(g, false)) != RC_OK) return rc; @@ -569,7 +573,7 @@ int MBKFAM::GetRowID(void) /***********************************************************************/ int MBKFAM::ReadBuffer(PGLOBAL g) { - int len; + int rc, len; /*********************************************************************/ /* Sequential block reading when Placed is not true. */ @@ -577,8 +581,10 @@ int MBKFAM::ReadBuffer(PGLOBAL g) if (Placed) { Placed = false; } else if (Mempos >= Top) { // Are we at the end of the memory - return RC_EF; - } else if (++CurNum < Nrec) { + if ((rc = GetNext(g)) != RC_OK) + return rc; + + } else if (++CurNum < Nrec) { Fpos = Mempos; } else { /*******************************************************************/ @@ -588,7 +594,8 @@ int MBKFAM::ReadBuffer(PGLOBAL g) next: if (++CurBlk >= Block) - return RC_EF; + if ((rc = GetNext(g)) != RC_OK) + return rc; /*******************************************************************/ /* Before reading a new block, check whether block optimization */ @@ -596,8 +603,11 @@ int MBKFAM::ReadBuffer(PGLOBAL g) /*******************************************************************/ switch (Tdbp->TestBlock(g)) { case RC_EF: - return RC_EF; - case RC_NF: + if ((rc = GetNext(g)) != RC_OK) + return rc; + + break; + case RC_NF: goto next; } // endswitch rc @@ -697,14 +707,18 @@ int MPXFAM::InitDelete(PGLOBAL, int fpos, int) /***********************************************************************/ int MPXFAM::ReadBuffer(PGLOBAL g) { + int rc; + /*********************************************************************/ /* Sequential block reading when Placed is not true. */ /*********************************************************************/ if (Placed) { Placed = false; } else if (Mempos >= Top) { // Are we at the end of the memory - return RC_EF; - } else if (++CurNum < Nrec) { + if ((rc = GetNext(g)) != RC_OK) + return rc; + + } else if (++CurNum < Nrec) { Fpos = Mempos; } else { /*******************************************************************/ @@ -714,7 +728,7 @@ int MPXFAM::ReadBuffer(PGLOBAL g) next: if (++CurBlk >= Block) - return RC_EF; + return GetNext(g); /*******************************************************************/ /* Before reading a new block, check whether block optimization */ @@ -722,8 +736,11 @@ int MPXFAM::ReadBuffer(PGLOBAL g) /*******************************************************************/ switch (Tdbp->TestBlock(g)) { case RC_EF: - return RC_EF; - case RC_NF: + if ((rc = GetNext(g)) != RC_OK) + return rc; + + break; + case RC_NF: goto next; } // endswitch rc diff --git a/storage/connect/filamap.h b/storage/connect/filamap.h index b9c8ad965fd..774eb8b91b3 100644 --- a/storage/connect/filamap.h +++ b/storage/connect/filamap.h @@ -41,7 +41,8 @@ class DllExport MAPFAM : public TXTFAM { virtual int SkipRecord(PGLOBAL g, bool header); virtual bool OpenTableFile(PGLOBAL g); virtual bool DeferReading(void) {return false;} - virtual int ReadBuffer(PGLOBAL g); + virtual int GetNext(PGLOBAL g) {return RC_EF;} + virtual int ReadBuffer(PGLOBAL g); virtual int WriteBuffer(PGLOBAL g); virtual int DeleteRecords(PGLOBAL g, int irc); virtual void CloseTableFile(PGLOBAL g, bool abort); diff --git a/storage/connect/filamzip.cpp b/storage/connect/filamzip.cpp index 8386e5be481..65013e170e4 100644 --- a/storage/connect/filamzip.cpp +++ b/storage/connect/filamzip.cpp @@ -40,19 +40,21 @@ //#include "tabzip.h" #include "filamzip.h" -/* -------------------------- class ZIPFAM --------------------------- */ +/* -------------------------- class ZIPUTIL -------------------------- */ /***********************************************************************/ /* Constructors. */ /***********************************************************************/ -ZIPFAM::ZIPFAM(PDOSDEF tdp) : MAPFAM(tdp) +ZIPUTIL::ZIPUTIL(PSZ tgt, bool mul) { zipfile = NULL; -//zfn = tdp->Fn; - target = tdp->Entry; -//*fn = 0; + target = tgt; + fp = NULL; + memory = NULL; + size = 0; entryopen = false; - multiple = (target && !(strchr(target, '*') || strchr(target, '?'))) ? 0 : 1; + multiple = mul; + memset(fn, 0, sizeof(fn)); // Init the case mapping table. #if defined(__WIN__) @@ -60,29 +62,30 @@ ZIPFAM::ZIPFAM(PDOSDEF tdp) : MAPFAM(tdp) #else for (int i = 0; i < 256; ++i) mapCaseTable[i] = i; #endif -} // end of ZIPFAM standard constructor +} // end of ZIPUTIL standard constructor -ZIPFAM::ZIPFAM(PZIPFAM txfp) : MAPFAM(txfp) +#if 0 +ZIPUTIL::ZIPUTIL(PZIPUTIL zutp) { - zipfile = txfp->zipfile; -//zfn = txfp->zfn; - target = txfp->target; -//strcpy(fn, txfp->fn); - finfo = txfp->finfo; - entryopen = txfp->entryopen; - multiple = txfp->multiple; - for (int i = 0; i < 256; ++i) mapCaseTable[i] = txfp->mapCaseTable[i]; -} // end of ZIPFAM copy constructor + zipfile = zutp->zipfile; + target = zutp->target; + fp = zutp->fp; + finfo = zutp->finfo; + entryopen = zutp->entryopen; + multiple = zutp->multiple; + for (int i = 0; i < 256; ++i) mapCaseTable[i] = zutp->mapCaseTable[i]; +} // end of ZIPUTIL copy constructor +#endif // 0 /***********************************************************************/ /* This code is the copyright property of Alessandro Felice Cantatore. */ /* http://xoomer.virgilio.it/acantato/dev/wildcard/wildmatch.html */ /***********************************************************************/ -bool ZIPFAM::WildMatch(PSZ pat, PSZ str) { +bool ZIPUTIL::WildMatch(PSZ pat, PSZ str) { PSZ s, p; bool star = FALSE; - loopStart: +loopStart: for (s = str, p = pat; *s; ++s, ++p) { switch (*p) { case '?': @@ -102,31 +105,18 @@ bool ZIPFAM::WildMatch(PSZ pat, PSZ str) { if (*p == '*') ++p; return (!*p); - starCheck: +starCheck: if (!star) return FALSE; str++; goto loopStart; } // end of WildMatch -/***********************************************************************/ -/* ZIP GetFileLength: returns file size in number of bytes. */ -/***********************************************************************/ -int ZIPFAM::GetFileLength(PGLOBAL g) -{ - int len = (entryopen) ? Top - Memory : 100; // not 0 to avoid ASSERT - - if (trace) - htrc("Zipped file length=%d\n", len); - - return len; -} // end of GetFileLength - /***********************************************************************/ /* open a zip file. */ /* param: filename path and the filename of the zip file to open. */ /* return: true if open, false otherwise. */ /***********************************************************************/ -bool ZIPFAM::open(PGLOBAL g, const char *filename) +bool ZIPUTIL::open(PGLOBAL g, char *filename) { if (!zipfile && !(zipfile = unzOpen64(filename))) sprintf(g->Message, "Zipfile open error on %s", filename); @@ -137,7 +127,7 @@ bool ZIPFAM::open(PGLOBAL g, const char *filename) /***********************************************************************/ /* Close the zip file. */ /***********************************************************************/ -void ZIPFAM::close() +void ZIPUTIL::close() { if (zipfile) { closeEntry(); @@ -150,10 +140,9 @@ void ZIPFAM::close() /***********************************************************************/ /* Find next entry matching target pattern. */ /***********************************************************************/ -int ZIPFAM::findEntry(PGLOBAL g, bool next) +int ZIPUTIL::findEntry(PGLOBAL g, bool next) { int rc; - char fn[FILENAME_MAX]; // The current entry file name do { if (next) { @@ -188,37 +177,53 @@ int ZIPFAM::findEntry(PGLOBAL g, bool next) strcpy(g->Message, "FindNext logical error"); return RC_FX; -} // end of FindNext +} // end of FindEntry + + +/***********************************************************************/ +/* Get the next used entry. */ +/***********************************************************************/ +int ZIPUTIL::nextEntry(PGLOBAL g) +{ + if (multiple) { + int rc; + + closeEntry(); + + if ((rc = findEntry(g, true)) != RC_OK) + return rc; + + if (openEntry(g)) + return RC_FX; + + return RC_OK; + } else + return RC_EF; + +} // end of nextEntry + /***********************************************************************/ /* OpenTableFile: Open a DOS/UNIX table file from a ZIP file. */ /***********************************************************************/ -bool ZIPFAM::OpenTableFile(PGLOBAL g) +bool ZIPUTIL::OpenTable(PGLOBAL g, MODE mode, char *fn) { - char filename[_MAX_PATH]; - MODE mode = Tdbp->GetMode(); - PFBLOCK fp; - PDBUSER dbuserp = (PDBUSER)g->Activityp->Aptr; - /*********************************************************************/ /* The file will be decompressed into virtual memory. */ /*********************************************************************/ - if (mode == MODE_READ) { - // We used the file name relative to recorded datapath - PlugSetPath(filename, To_File, Tdbp->GetPath()); - - bool b = open(g, filename); + if (mode == MODE_READ || mode == MODE_ANY) { + bool b = open(g, fn); if (!b) { int rc; - + if (target && *target) { if (!multiple) { rc = unzLocateFile(zipfile, target, 0); if (rc == UNZ_END_OF_LIST_OF_FILE) { - sprintf(g->Message, "Target file %s not in %s", target, filename); - return false; + sprintf(g->Message, "Target file %s not in %s", target, fn); + return true; } else if (rc != UNZ_OK) { sprintf(g->Message, "unzLocateFile rc=%d", rc); return true; @@ -227,9 +232,9 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) } else { if ((rc = findEntry(g, false)) == RC_FX) return true; - else if (rc == RC_NF) { - sprintf(g->Message, "No match of %s in %s", target, filename); - return false; + else if (rc == RC_EF) { + sprintf(g->Message, "No match of %s in %s", target, fn); + return true; } // endif rc } // endif multiple @@ -239,25 +244,26 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) if (openEntry(g)) return true; - if (Top > Memory) { + if (size > 0) { /*******************************************************************/ /* Link a Fblock. This make possible to automatically close it */ /* in case of error g->jump. */ /*******************************************************************/ + PDBUSER dbuserp = (PDBUSER)g->Activityp->Aptr; + fp = (PFBLOCK)PlugSubAlloc(g, NULL, sizeof(FBLOCK)); fp->Type = TYPE_FB_ZIP; - fp->Fname = PlugDup(g, filename); + fp->Fname = PlugDup(g, fn); fp->Next = dbuserp->Openlist; dbuserp->Openlist = fp; fp->Count = 1; - fp->Length = Top - Memory; - fp->Memory = Memory; + fp->Length = size; + fp->Memory = memory; fp->Mode = mode; fp->File = this; fp->Handle = NULL; } // endif fp - To_Fb = fp; // Useful when closing } else return true; @@ -267,65 +273,161 @@ bool ZIPFAM::OpenTableFile(PGLOBAL g) } // endif mode return false; - } // end of OpenTableFile +} // end of OpenTableFile /***********************************************************************/ /* Open target in zip file. */ /***********************************************************************/ -bool ZIPFAM::openEntry(PGLOBAL g) +bool ZIPUTIL::openEntry(PGLOBAL g) { - int rc; - uint size; + int rc; - rc = unzGetCurrentFileInfo(zipfile, &finfo, 0, 0, 0, 0, 0, 0); + rc = unzGetCurrentFileInfo(zipfile, &finfo, fn, sizeof(fn), + NULL, 0, NULL, 0); if (rc != UNZ_OK) { sprintf(g->Message, "unzGetCurrentFileInfo64 rc=%d", rc); return true; } else if ((rc = unzOpenCurrentFile(zipfile)) != UNZ_OK) { - sprintf(g->Message, "unzOpenCurrentFile rc=%d", rc); + sprintf(g->Message, "unzOpen fn=%s rc=%d", fn, rc); return true; } // endif rc size = finfo.uncompressed_size; - Memory = new char[size]; + memory = new char[size + 1]; - if ((rc = unzReadCurrentFile(zipfile, Memory, size)) < 0) { + if ((rc = unzReadCurrentFile(zipfile, memory, size)) < 0) { sprintf(g->Message, "unzReadCurrentFile rc = ", rc); unzCloseCurrentFile(zipfile); - free(Memory); + free(memory); + memory = NULL; entryopen = false; } else { - // The pseudo "buffer" is here the entire real buffer - Fpos = Mempos = Memory; - Top = Memory + size; - - if (trace) - htrc("Memory=%p size=%ud Top=%p\n", Memory, size, Top); - + memory[size] = 0; // Required by some table types (XML) entryopen = true; } // endif rc + if (trace) + htrc("Openning entry%s %s\n", fn, (entryopen) ? "oked" : "failed"); + return !entryopen; } // end of openEntry /***********************************************************************/ /* Close the zip file. */ /***********************************************************************/ -void ZIPFAM::closeEntry() +void ZIPUTIL::closeEntry() { if (entryopen) { unzCloseCurrentFile(zipfile); entryopen = false; } // endif entryopen - if (Memory) { - free(Memory); - Memory = NULL; - } // endif Memory + if (memory) { + free(memory); + memory = NULL; + } // endif memory } // end of closeEntry +/* -------------------------- class ZIPFAM --------------------------- */ + +/***********************************************************************/ +/* Constructors. */ +/***********************************************************************/ +ZIPFAM::ZIPFAM(PDOSDEF tdp) : MAPFAM(tdp) +{ + zutp = NULL; + target = tdp->GetEntry(); + mul = tdp->GetMul(); +} // end of ZIPFAM standard constructor + +ZIPFAM::ZIPFAM(PZIPFAM txfp) : MAPFAM(txfp) +{ + zutp = txfp->zutp; + target = txfp->target; + mul = txfp->mul; +} // end of ZIPFAM copy constructor + +ZIPFAM::ZIPFAM(PDOSDEF tdp, PZPXFAM txfp) : MAPFAM(tdp) +{ + zutp = txfp->zutp; + target = txfp->target; + mul = txfp->mul; +} // end of ZIPFAM constructor used in ResetTableOpt + +/***********************************************************************/ +/* ZIP GetFileLength: returns file size in number of bytes. */ +/***********************************************************************/ +int ZIPFAM::GetFileLength(PGLOBAL g) +{ + int len = (zutp && zutp->entryopen) ? Top - Memory + : TXTFAM::GetFileLength(g) * 3; + + if (trace) + htrc("Zipped file length=%d\n", len); + + return len; +} // end of GetFileLength + +/***********************************************************************/ +/* ZIP Cardinality: return the number of rows if possible. */ +/***********************************************************************/ +int ZIPFAM::Cardinality(PGLOBAL g) +{ + if (!g) + return 1; + + int card = -1; + int len = GetFileLength(g); + + card = (len / (int)Lrecl) * 2; // Estimated ??? + return card; +} // end of Cardinality + +/***********************************************************************/ +/* OpenTableFile: Open a DOS/UNIX table file from a ZIP file. */ +/***********************************************************************/ +bool ZIPFAM::OpenTableFile(PGLOBAL g) +{ + char filename[_MAX_PATH]; + MODE mode = Tdbp->GetMode(); + + /*********************************************************************/ + /* Allocate the ZIP utility class. */ + /*********************************************************************/ + zutp = new(g) ZIPUTIL(target, mul); + + // We used the file name relative to recorded datapath + PlugSetPath(filename, To_File, Tdbp->GetPath()); + + if (!zutp->OpenTable(g, mode, filename)) { + // The pseudo "buffer" is here the entire real buffer + Fpos = Mempos = Memory = zutp->memory; + Top = Memory + zutp->size; + To_Fb = zutp->fp; // Useful when closing + } else + return true; + + return false; + } // end of OpenTableFile + +/***********************************************************************/ +/* GetNext: go to next entry. */ +/***********************************************************************/ +int ZIPFAM::GetNext(PGLOBAL g) +{ + int rc = zutp->nextEntry(g); + + if (rc != RC_OK) + return rc; + + Mempos = Memory = zutp->memory; + Top = Memory + zutp->size; + return RC_OK; +} // end of GetNext + +#if 0 /***********************************************************************/ /* ReadBuffer: Read one line for a ZIP file. */ /***********************************************************************/ @@ -335,19 +437,12 @@ int ZIPFAM::ReadBuffer(PGLOBAL g) // Are we at the end of the memory if (Mempos >= Top) { - if (multiple) { - closeEntry(); + if ((rc = zutp->nextEntry(g)) != RC_OK) + return rc; - if ((rc = findEntry(g, true)) != RC_OK) - return rc; - - if (openEntry(g)) - return RC_FX; - - } else - return RC_EF; - - } // endif Mempos + Mempos = Memory = zutp->memory; + Top = Memory + zutp->size; + } // endif Mempos #if 0 if (!Placed) { @@ -399,7 +494,6 @@ int ZIPFAM::ReadBuffer(PGLOBAL g) return RC_OK; } // end of ReadBuffer -#if 0 /***********************************************************************/ /* Table file close routine for MAP access method. */ /***********************************************************************/ @@ -414,89 +508,115 @@ void ZIPFAM::CloseTableFile(PGLOBAL g, bool) /***********************************************************************/ /* Constructors. */ /***********************************************************************/ -ZPXFAM::ZPXFAM(PDOSDEF tdp) : ZIPFAM(tdp) +ZPXFAM::ZPXFAM(PDOSDEF tdp) : MPXFAM(tdp) { - Lrecl = tdp->GetLrecl(); + zutp = NULL; + target = tdp->GetEntry(); + mul = tdp->GetMul(); + //Lrecl = tdp->GetLrecl(); } // end of ZPXFAM standard constructor -ZPXFAM::ZPXFAM(PZPXFAM txfp) : ZIPFAM(txfp) +ZPXFAM::ZPXFAM(PZPXFAM txfp) : MPXFAM(txfp) { - Lrecl = txfp->Lrecl; + zutp = txfp->zutp; + target = txfp->target; + mul = txfp->mul; +//Lrecl = txfp->Lrecl; } // end of ZPXFAM copy constructor /***********************************************************************/ -/* ReadBuffer: Read one line for a fixed ZIP file. */ +/* ZIP GetFileLength: returns file size in number of bytes. */ /***********************************************************************/ -int ZPXFAM::ReadBuffer(PGLOBAL g) +int ZPXFAM::GetFileLength(PGLOBAL g) { - int rc, len; + int len; - // Are we at the end of the memory - if (Mempos >= Top) { - if (multiple) { - closeEntry(); + if (!zutp && OpenTableFile(g)) + return 0; - if ((rc = findEntry(g, true)) != RC_OK) - return rc; + if (zutp->entryopen) + len = zutp->size; + else + len = 0; - if (openEntry(g)) - return RC_FX; + return len; +} // end of GetFileLength +/***********************************************************************/ +/* ZIP Cardinality: return the number of rows if possible. */ +/***********************************************************************/ +int ZPXFAM::Cardinality(PGLOBAL g) +{ + if (!g) + return 1; + + int card = -1; + int len = GetFileLength(g); + + if (!(len % Lrecl)) + card = len / (int)Lrecl; // Fixed length file + else + sprintf(g->Message, MSG(NOT_FIXED_LEN), zutp->fn, len, Lrecl); + + // Set number of blocks for later use + Block = (card > 0) ? (card + Nrec - 1) / Nrec : 0; + return card; +} // end of Cardinality + +/***********************************************************************/ +/* OpenTableFile: Open a DOS/UNIX table file from a ZIP file. */ +/***********************************************************************/ +bool ZPXFAM::OpenTableFile(PGLOBAL g) +{ + // May have been already opened in GetFileLength + if (!zutp || !zutp->zipfile) { + char filename[_MAX_PATH]; + MODE mode = Tdbp->GetMode(); + + /*********************************************************************/ + /* Allocate the ZIP utility class. */ + /*********************************************************************/ + if (!zutp) + zutp = new(g)ZIPUTIL(target, mul); + + // We used the file name relative to recorded datapath + PlugSetPath(filename, To_File, Tdbp->GetPath()); + + if (!zutp->OpenTable(g, mode, filename)) { + // The pseudo "buffer" is here the entire real buffer + Memory = zutp->memory; + Fpos = Mempos = Memory + Headlen; + Top = Memory + zutp->size; + To_Fb = zutp->fp; // Useful when closing } else - return RC_EF; - - } // endif Mempos - -#if 0 - if (!Placed) { - /*******************************************************************/ - /* Record file position in case of UPDATE or DELETE. */ - /*******************************************************************/ - int rc; - - next: - Fpos = Mempos; - CurBlk = (int)Rows++; - - /*******************************************************************/ - /* Check whether optimization on ROWID */ - /* can be done, as well as for join as for local filtering. */ - /*******************************************************************/ - switch (Tdbp->TestBlock(g)) { - case RC_EF: - return RC_EF; - case RC_NF: - // Skip this record - if ((rc = SkipRecord(g, false)) != RC_OK) - return rc; - - goto next; - } // endswitch rc + return true; } else - Placed = false; -#else - // Perhaps unuseful - Fpos = Mempos; - CurBlk = (int)Rows++; - Placed = false; -#endif + Reset(); - // Immediately calculate next position (Used by DeleteDB) - Mempos += Lrecl; + return false; +} // end of OpenTableFile - // Set caller line buffer - len = Lrecl; +/***********************************************************************/ +/* GetNext: go to next entry. */ +/***********************************************************************/ +int ZPXFAM::GetNext(PGLOBAL g) +{ + int rc = zutp->nextEntry(g); - // Don't rely on ENDING setting - if (len > 0 && *(Mempos - 1) == '\n') - len--; // Line ends by LF + if (rc != RC_OK) + return rc; - if (len > 0 && *(Mempos - 2) == '\r') - len--; // Line ends by CRLF + int len = zutp->size; - memcpy(Tdbp->GetLine(), Fpos, len); - Tdbp->GetLine()[len] = '\0'; + if (len % Lrecl) { + sprintf(g->Message, MSG(NOT_FIXED_LEN), zutp->fn, len, Lrecl); + return RC_FX; + } // endif size + + Memory = zutp->memory; + Top = Memory + len; + Rewind(); return RC_OK; -} // end of ReadBuffer +} // end of GetNext diff --git a/storage/connect/filamzip.h b/storage/connect/filamzip.h index c3c04b2b3bb..9312fb2f70e 100644 --- a/storage/connect/filamzip.h +++ b/storage/connect/filamzip.h @@ -18,66 +18,100 @@ typedef class ZIPFAM *PZIPFAM; typedef class ZPXFAM *PZPXFAM; /***********************************************************************/ -/* This is the ZIP file access method. */ +/* This is the ZIP utility fonctions class. */ /***********************************************************************/ -class DllExport ZIPFAM : public MAPFAM { +class DllExport ZIPUTIL : public BLOCK { public: // Constructor - ZIPFAM(PDOSDEF tdp); - ZIPFAM(PZIPFAM txfp); + ZIPUTIL(PSZ tgt, bool mul); +//ZIPUTIL(ZIPUTIL *zutp); // Implementation - virtual AMT GetAmType(void) {return TYPE_AM_ZIP;} - virtual PTXF Duplicate(PGLOBAL g) {return (PTXF) new(g) ZIPFAM(this);} +//PTXF Duplicate(PGLOBAL g) { return (PTXF) new(g)ZIPFAM(this); } // Methods - virtual int GetFileLength(PGLOBAL g); - virtual int Cardinality(PGLOBAL g) {return (g) ? 10 : 1;} -//virtual int MaxBlkSize(PGLOBAL g, int s) {return s;} - virtual bool OpenTableFile(PGLOBAL g); - virtual bool DeferReading(void) {return false;} - virtual int ReadBuffer(PGLOBAL g); -//virtual int WriteBuffer(PGLOBAL g); -//virtual int DeleteRecords(PGLOBAL g, int irc); -//virtual void CloseTableFile(PGLOBAL g, bool abort); - void close(void); - -protected: - bool open(PGLOBAL g, const char *filename); + virtual bool OpenTable(PGLOBAL g, MODE mode, char *fn); + bool open(PGLOBAL g, char *fn); bool openEntry(PGLOBAL g); + void close(void); void closeEntry(void); bool WildMatch(PSZ pat, PSZ str); int findEntry(PGLOBAL g, bool next); + int nextEntry(PGLOBAL g); // Members - unzFile zipfile; // The ZIP container file -//PSZ zfn; // The ZIP file name - PSZ target; // The target file name - unz_file_info finfo; // The current file info -//char fn[FILENAME_MAX]; // The current file name - bool entryopen; // True when open current entry - int multiple; // Multiple targets + unzFile zipfile; // The ZIP container file + PSZ target; // The target file name + unz_file_info finfo; // The current file info + PFBLOCK fp; + char *memory; + uint size; + int multiple; // Multiple targets + bool entryopen; // True when open current entry + char fn[FILENAME_MAX]; // The current entry file name char mapCaseTable[256]; }; // end of ZIPFAM +/***********************************************************************/ +/* This is the ZIP file access method. */ +/***********************************************************************/ +class DllExport ZIPFAM : public MAPFAM { + friend class ZPXFAM; +public: + // Constructors + ZIPFAM(PDOSDEF tdp); + ZIPFAM(PZIPFAM txfp); + ZIPFAM(PDOSDEF tdp, PZPXFAM txfp); + + // Implementation + virtual AMT GetAmType(void) { return TYPE_AM_ZIP; } + virtual PTXF Duplicate(PGLOBAL g) { return (PTXF) new(g)ZIPFAM(this); } + + // Methods + virtual int Cardinality(PGLOBAL g); + virtual int GetFileLength(PGLOBAL g); +//virtual int MaxBlkSize(PGLOBAL g, int s) {return s;} + virtual bool OpenTableFile(PGLOBAL g); + virtual bool DeferReading(void) { return false; } + virtual int GetNext(PGLOBAL g); +//virtual int ReadBuffer(PGLOBAL g); +//virtual int WriteBuffer(PGLOBAL g); +//virtual int DeleteRecords(PGLOBAL g, int irc); +//virtual void CloseTableFile(PGLOBAL g, bool abort); + +protected: + // Members + ZIPUTIL *zutp; + PSZ target; + bool mul; +}; // end of ZIPFAM + /***********************************************************************/ /* This is the fixed ZIP file access method. */ /***********************************************************************/ -class DllExport ZPXFAM : public ZIPFAM { +class DllExport ZPXFAM : public MPXFAM { + friend class ZIPFAM; public: - // Constructor + // Constructors ZPXFAM(PDOSDEF tdp); ZPXFAM(PZPXFAM txfp); // Implementation - virtual PTXF Duplicate(PGLOBAL g) {return (PTXF) new(g) ZPXFAM(this);} + virtual AMT GetAmType(void) { return TYPE_AM_ZIP; } + virtual PTXF Duplicate(PGLOBAL g) { return (PTXF) new(g)ZPXFAM(this); } // Methods - virtual int ReadBuffer(PGLOBAL g); + virtual int GetFileLength(PGLOBAL g); + virtual int Cardinality(PGLOBAL g); + virtual bool OpenTableFile(PGLOBAL g); + virtual int GetNext(PGLOBAL g); +//virtual int ReadBuffer(PGLOBAL g); protected: // Members - int Lrecl; + ZIPUTIL *zutp; + PSZ target; + bool mul; }; // end of ZPXFAM #endif // __FILAMZIP_H diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index 45ca546ad4e..6590902bcd4 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -1242,8 +1242,10 @@ char *ha_connect::GetStringOption(char *opname, char *sdef) if (opval && (!stricmp(opname, "connect") || !stricmp(opname, "tabname") - || !stricmp(opname, "filename"))) - opval = GetRealString(opval); + || !stricmp(opname, "filename") + || !stricmp(opname, "optname") + || !stricmp(opname, "entry"))) + opval = GetRealString(opval); if (!opval) { if (sdef && !strcmp(sdef, "*")) { diff --git a/storage/connect/libdoc.cpp b/storage/connect/libdoc.cpp index c2882fc0d7c..2470d37c353 100644 --- a/storage/connect/libdoc.cpp +++ b/storage/connect/libdoc.cpp @@ -1,6 +1,6 @@ /******************************************************************/ /* Implementation of XML document processing using libxml2 */ -/* Author: Olivier Bertrand 2007-2015 */ +/* Author: Olivier Bertrand 2007-2016 */ /******************************************************************/ #include "my_global.h" #include @@ -68,8 +68,8 @@ class LIBXMLDOC : public XMLDOCUMENT { virtual void SetNofree(bool b) {Nofreelist = b;} // Methods - virtual bool Initialize(PGLOBAL g); - virtual bool ParseFile(char *fn); + virtual bool Initialize(PGLOBAL g, char *entry, bool zipped); + virtual bool ParseFile(PGLOBAL g, char *fn); virtual bool NewDoc(PGLOBAL g, char *ver); virtual void AddComment(PGLOBAL g, char *com); virtual PXNODE GetRoot(PGLOBAL g); @@ -373,22 +373,33 @@ LIBXMLDOC::LIBXMLDOC(char *nsl, char *nsdf, char *enc, PFBLOCK fp) /******************************************************************/ /* Initialize XML parser and check library compatibility. */ /******************************************************************/ -bool LIBXMLDOC::Initialize(PGLOBAL g) - { +bool LIBXMLDOC::Initialize(PGLOBAL g, char *entry, bool zipped) +{ + if (zipped && InitZip(g, entry)) + return true; + int n = xmlKeepBlanksDefault(1); return MakeNSlist(g); - } // end of Initialize +} // end of Initialize /******************************************************************/ /* Parse the XML file and construct node tree in memory. */ /******************************************************************/ -bool LIBXMLDOC::ParseFile(char *fn) +bool LIBXMLDOC::ParseFile(PGLOBAL g, char *fn) { if (trace) htrc("ParseFile\n"); - if ((Docp = xmlParseFile(fn))) { - if (Docp->encoding) + if (zip) { + // Parse an in memory document + char *xdoc = GetMemDoc(g, fn); + + Docp = (xdoc) ? xmlParseDoc((const xmlChar *)xdoc) : NULL; + } else + Docp = xmlParseFile(fn); + + if (Docp) { + if (Docp->encoding) Encoding = (char*)Docp->encoding; return false; @@ -609,6 +620,7 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp) } // endif xp CloseXML2File(g, xp, false); + CloseZip(); } // end of Close /******************************************************************/ diff --git a/storage/connect/plgdbutl.cpp b/storage/connect/plgdbutl.cpp index 31c040c6957..83975c6d8fa 100644 --- a/storage/connect/plgdbutl.cpp +++ b/storage/connect/plgdbutl.cpp @@ -939,7 +939,7 @@ int PlugCloseFile(PGLOBAL g __attribute__((unused)), PFBLOCK fp, bool all) #endif // LIBXML2_SUPPORT #ifdef ZIP_SUPPORT case TYPE_FB_ZIP: - ((PZIPFAM)fp->File)->close(); + ((ZIPUTIL*)fp->File)->close(); fp->Memory = NULL; fp->Mode = MODE_ANY; fp->Count = 0; diff --git a/storage/connect/plgxml.cpp b/storage/connect/plgxml.cpp index 3061a6d697e..71b72621b06 100644 --- a/storage/connect/plgxml.cpp +++ b/storage/connect/plgxml.cpp @@ -30,19 +30,51 @@ PXDOC GetLibxmlDoc(PGLOBAL g, char *nsl, char *nsdf, /* XMLDOCUMENT constructor. */ /******************************************************************/ XMLDOCUMENT::XMLDOCUMENT(char *nsl, char *nsdf, char *enc) - { - Namespaces = NULL; +{ +#if defined(ZIP_SUPPORT) + zip = NULL; +#else // !ZIP_SUPPORT + zip = false; +#endif // !ZIP_SUPPORT + Namespaces = NULL; Encoding = enc; Nslist = nsl; DefNs = nsdf; - } // end of XMLDOCUMENT constructor +} // end of XMLDOCUMENT constructor + +/******************************************************************/ +/* Initialize zipped file processing. */ +/******************************************************************/ +bool XMLDOCUMENT::InitZip(PGLOBAL g, char *entry) +{ +#if defined(ZIP_SUPPORT) + bool mul = (entry) ? strchr(entry, '*') || strchr(entry, '?') : false; + zip = new(g) ZIPUTIL(entry, mul); + return zip == NULL; +#else // !ZIP_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return true; +#endif // !ZIP_SUPPORT +} // end of InitZip + +/******************************************************************/ +/* Make the namespace structure list. */ +/******************************************************************/ +char* XMLDOCUMENT::GetMemDoc(PGLOBAL g, char *fn) +{ +#if defined(ZIP_SUPPORT) + return (zip->OpenTable(g, MODE_ANY, fn)) ? NULL : zip->memory; +#else // !ZIP_SUPPORT + return NULL; +#endif // !ZIP_SUPPORT +} // end of GetMemDoc /******************************************************************/ /* Make the namespace structure list. */ /******************************************************************/ bool XMLDOCUMENT::MakeNSlist(PGLOBAL g) - { - char *prefix, *href, *next = Nslist; +{ + char *prefix, *href, *next = Nslist; PNS nsp, *ppns = &Namespaces; while (next) { @@ -83,6 +115,19 @@ bool XMLDOCUMENT::MakeNSlist(PGLOBAL g) return false; } // end of MakeNSlist +/******************************************************************/ +/* Close ZIP file. */ +/******************************************************************/ +void XMLDOCUMENT::CloseZip(void) +{ +#if defined(ZIP_SUPPORT) + if (zip) { + zip->close(); + zip = NULL; + } // endif zip +#endif // ZIP_SUPPORT +} // end of CloseZip + /******************************************************************/ /* XMLNODE constructor. */ /******************************************************************/ diff --git a/storage/connect/plgxml.h b/storage/connect/plgxml.h index b8e914e0bf1..db7dfa6bda5 100644 --- a/storage/connect/plgxml.h +++ b/storage/connect/plgxml.h @@ -1,3 +1,7 @@ +#if defined(ZIP_SUPPORT) +#include "filamzip.h" +#endif // ZIP_SUPPORT + /******************************************************************/ /* Dual XML implementation base classes defines. */ /******************************************************************/ @@ -72,8 +76,8 @@ class XMLDOCUMENT : public BLOCK { virtual void SetNofree(bool b) = 0; // Methods - virtual bool Initialize(PGLOBAL) = 0; - virtual bool ParseFile(char *) = 0; + virtual bool Initialize(PGLOBAL, char *, bool) = 0; + virtual bool ParseFile(PGLOBAL, char *) = 0; virtual bool NewDoc(PGLOBAL, char *) = 0; virtual void AddComment(PGLOBAL, char *) = 0; virtual PXNODE GetRoot(PGLOBAL) = 0; @@ -91,8 +95,16 @@ class XMLDOCUMENT : public BLOCK { // Utility bool MakeNSlist(PGLOBAL g); + bool InitZip(PGLOBAL g, char *entry); + char *GetMemDoc(PGLOBAL g, char *fn); + void CloseZip(void); // Members +#if defined(ZIP_SUPPORT) + ZIPUTIL *zip; /* Used for zipped file */ +#else // !ZIP_SUPPORT + bool zip; /* Always false */ +#endif // !ZIP_SUPPORT PNS Namespaces; /* To the namespaces */ char *Encoding; /* The document encoding */ char *Nslist; /* Namespace list */ diff --git a/storage/connect/tabdos.cpp b/storage/connect/tabdos.cpp index f47e66b014b..16cc6c33b44 100644 --- a/storage/connect/tabdos.cpp +++ b/storage/connect/tabdos.cpp @@ -101,6 +101,7 @@ DOSDEF::DOSDEF(void) Recfm = RECFM_VAR; Mapped = false; Zipped = false; + Mulentries = false; Padded = false; Huge = false; Accept = false; @@ -131,12 +132,13 @@ bool DOSDEF::DefineAM(PGLOBAL g, LPCSTR am, int) : (am && (*am == 'B' || *am == 'b')) ? "B" : (am && !stricmp(am, "DBF")) ? "D" : "V"; - if (*dfm != 'D') - Zipped = GetBoolCatInfo("Zipped", false); + if ((Zipped = GetBoolCatInfo("Zipped", false))) + Mulentries = ((Entry = GetStringCatInfo(g, "Entry", NULL))) + ? strchr(Entry, '*') || strchr(Entry, '?') + : GetBoolCatInfo("Mulentries", false); Desc = Fn = GetStringCatInfo(g, "Filename", NULL); Ofn = GetStringCatInfo(g, "Optname", Fn); - Entry = GetStringCatInfo(g, "Entry", NULL); GetCharCatInfo("Recfm", (PSZ)dfm, buf, sizeof(buf)); Recfm = (toupper(*buf) == 'F') ? RECFM_FIX : (toupper(*buf) == 'B') ? RECFM_BIN : @@ -344,14 +346,16 @@ PTDB DOSDEF::GetTable(PGLOBAL g, MODE mode) /*********************************************************************/ if (Zipped) { #if defined(ZIP_SUPPORT) - if (Recfm == RECFM_VAR) - txfp = new(g) ZIPFAM(this); - else - txfp = new(g) ZPXFAM(this); + if (Recfm == RECFM_VAR) { + txfp = new(g)ZIPFAM(this); + tdbp = new(g)TDBDOS(this, txfp); + } else { + txfp = new(g)ZPXFAM(this); + tdbp = new(g)TDBFIX(this, txfp); + } // endif Recfm - tdbp = new(g) TDBDOS(this, txfp); #else // !ZIP_SUPPORT - strcpy(g->Message, "ZIP not supported"); + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); return NULL; #endif // !ZIP_SUPPORT } else if (Recfm == RECFM_DBF) { @@ -559,7 +563,7 @@ int TDBDOS::ResetTableOpt(PGLOBAL g, bool dop, bool dox) Txfp->Reset(); ((PZLBFAM)Txfp)->SetOptimized(false); #endif // GZ_SUPPORT - } else if (Txfp->GetAmType() == TYPE_AM_BLK) + } else if (Txfp->GetAmType() == TYPE_AM_BLK) Txfp = new(g) DOSFAM((PDOSDEF)To_Def); Txfp->SetTdbp(this); @@ -630,7 +634,12 @@ int TDBDOS::MakeBlockValues(PGLOBAL g) defp->SetOptimized(0); // Estimate the number of needed blocks - block = (int)((MaxSize + (int)nrec - 1) / (int)nrec); + if ((block = (int)((MaxSize + (int)nrec - 1) / (int)nrec)) < 2) { + // This may be wrong to do in some cases + defp->RemoveOptValues(g); + strcpy(g->Message, MSG(TABLE_NOT_OPT)); + return RC_INFO; // Not to be optimized + } // endif block // We have to use local variables because Txfp->CurBlk is set // to Rows+1 by unblocked variable length table access methods. @@ -973,13 +982,14 @@ bool TDBDOS::GetBlockValues(PGLOBAL g) PCOLDEF cdp; PDOSDEF defp = (PDOSDEF)To_Def; PCATLG cat = defp->GetCat(); + PDBUSER dup = PlgGetUser(g); #if 0 if (Mode == MODE_INSERT && Txfp->GetAmType() == TYPE_AM_DOS) return false; #endif // __WIN__ - if (defp->Optimized) + if (defp->Optimized || !(dup->Check & CHK_OPT)) return false; // Already done or to be redone if (Ftype == RECFM_VAR || defp->Compressed == 2) { diff --git a/storage/connect/tabdos.h b/storage/connect/tabdos.h index 623adcfed0d..4c8eb438a26 100644 --- a/storage/connect/tabdos.h +++ b/storage/connect/tabdos.h @@ -28,7 +28,7 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ friend class TDBFIX; friend class TXTFAM; friend class DBFBASE; - friend class ZIPFAM; + friend class ZIPUTIL; public: // Constructor DOSDEF(void); @@ -41,7 +41,9 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ virtual bool IsHuge(void) {return Huge;} PSZ GetFn(void) {return Fn;} PSZ GetOfn(void) {return Ofn;} - void SetBlock(int block) {Block = block;} + PSZ GetEntry(void) {return Entry;} + bool GetMul(void) {return Mulentries;} + void SetBlock(int block) {Block = block;} int GetBlock(void) {return Block;} int GetLast(void) {return Last;} void SetLast(int last) {Last = last;} @@ -58,9 +60,9 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ int *GetTo_Pos(void) {return To_Pos;} // Methods - virtual int Indexable(void) - {return (!Multiple && !Zipped && Compressed != 1) ? 1 : 0;} - virtual bool DeleteIndexFile(PGLOBAL g, PIXDEF pxdf); + virtual int Indexable(void) + {return (!Multiple && !Mulentries && Compressed != 1) ? 1 : 0;} + virtual bool DeleteIndexFile(PGLOBAL g, PIXDEF pxdf); virtual bool DefineAM(PGLOBAL g, LPCSTR am, int poff); virtual PTDB GetTable(PGLOBAL g, MODE mode); bool InvalidateIndex(PGLOBAL g); @@ -78,6 +80,7 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */ RECFM Recfm; /* 0:VAR, 1:FIX, 2:BIN, 3:VCT, 6:DBF */ bool Mapped; /* 0: disk file, 1: memory mapped file */ bool Zipped; /* true for zipped table file */ + bool Mulentries; /* true for multiple entries */ bool Padded; /* true for padded table file */ bool Huge; /* true for files larger than 2GB */ bool Accept; /* true if wrong lines are accepted */ diff --git a/storage/connect/tabfmt.cpp b/storage/connect/tabfmt.cpp index 2c4d605e66c..b24375443f6 100644 --- a/storage/connect/tabfmt.cpp +++ b/storage/connect/tabfmt.cpp @@ -177,9 +177,14 @@ PQRYRES CSVColumns(PGLOBAL g, char *dp, PTOS topt, bool info) htrc("File %s Sep=%c Qot=%c Header=%d maxerr=%d\n", SVP(tdp->Fn), tdp->Sep, tdp->Qot, tdp->Header, tdp->Maxerr); - if (tdp->Zipped) - tdbp = new(g) TDBCSV(tdp, new(g) ZIPFAM(tdp)); - else + if (tdp->Zipped) { +#if defined(ZIP_SUPPORT) + tdbp = new(g)TDBCSV(tdp, new(g)ZIPFAM(tdp)); +#else // !ZIP_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return NULL; +#endif // !ZIP_SUPPORT + } else tdbp = new(g) TDBCSV(tdp, new(g) DOSFAM(tdp)); tdbp->SetMode(MODE_READ); diff --git a/storage/connect/tabjson.cpp b/storage/connect/tabjson.cpp index eff95445a3a..1b9ce8b64c9 100644 --- a/storage/connect/tabjson.cpp +++ b/storage/connect/tabjson.cpp @@ -127,9 +127,14 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) tdp->Fn, tdp->Objname, tdp->Pretty, lvl); if (tdp->Pretty == 2) { - if (tdp->Zipped) - tjsp = new(g) TDBJSON(tdp, new(g) ZIPFAM(tdp)); - else + if (tdp->Zipped) { +#if defined(ZIP_SUPPORT) + tjsp = new(g) TDBJSON(tdp, new(g) ZIPFAM(tdp)); +#else // !ZIP_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return NULL; +#endif // !ZIP_SUPPORT + } else tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp)); if (tjsp->MakeDocument(g)) @@ -144,9 +149,14 @@ PQRYRES JSONColumns(PGLOBAL g, char *db, PTOS topt, bool info) tdp->Ending = GetIntegerTableOption(g, topt, "Ending", CRLF); - if (tdp->Zipped) - tjnp = new(g) TDBJSN(tdp, new(g) ZIPFAM(tdp)); - else + if (tdp->Zipped) { +#if defined(ZIP_SUPPORT) + tjnp = new(g)TDBJSN(tdp, new(g)ZIPFAM(tdp)); +#else // !ZIP_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return NULL; +#endif // !ZIP_SUPPORT + } else tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); tjnp->SetMode(MODE_READ); @@ -467,9 +477,14 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) ((TDBJSN*)tdbp)->G = g; #endif } else { - if (Zipped) - txfp = new(g) ZIPFAM(this); - else + if (Zipped) { +#if defined(ZIP_SUPPORT) + txfp = new(g)ZIPFAM(this); +#else // !ZIP_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return NULL; +#endif // !ZIP_SUPPORT + } else txfp = new(g) MAPFAM(this); tdbp = new(g) TDBJSON(this, txfp); diff --git a/storage/connect/tabxml.cpp b/storage/connect/tabxml.cpp index 1993b07eb7a..3b8229fcf51 100644 --- a/storage/connect/tabxml.cpp +++ b/storage/connect/tabxml.cpp @@ -1,9 +1,9 @@ /************* Tabxml C++ Program Source Code File (.CPP) **************/ /* PROGRAM NAME: TABXML */ /* ------------- */ -/* Version 2.8 */ +/* Version 2.9 */ /* */ -/* Author Olivier BERTRAND 2007 - 2015 */ +/* Author Olivier BERTRAND 2007 - 2016 */ /* */ /* This program are the XML tables classes using MS-DOM or libxml2. */ /***********************************************************************/ @@ -159,6 +159,8 @@ PQRYRES XMLColumns(PGLOBAL g, char *db, char *tab, PTOS topt, bool info) tdp->Fn = fn; tdp->Database = SetPath(g, db); tdp->Tabname = tab; + tdp->Zipped = GetBooleanTableOption(g, topt, "Zipped", false); + tdp->Entry = GetStringTableOption(g, topt, "Entry", NULL); if (!(op = GetStringTableOption(g, topt, "Xmlsup", NULL))) #if defined(__WIN__) @@ -209,7 +211,8 @@ PQRYRES XMLColumns(PGLOBAL g, char *db, char *tab, PTOS topt, bool info) while (true) { if (!vp->atp && - !(node = (vp->nl) ? vp->nl->GetItem(g, vp->k++, node) : NULL)) + !(node = (vp->nl) ? vp->nl->GetItem(g, vp->k++, tdp->Usedom ? node : NULL) + : NULL)) if (j) { vp = lvlp[--j]; @@ -259,7 +262,8 @@ PQRYRES XMLColumns(PGLOBAL g, char *db, char *tab, PTOS topt, bool info) if (j < lvl && ok) { vp = lvlp[j+1]; vp->k = 0; - vp->atp = node->GetAttribute(g, NULL); + vp->pn = node; + vp->atp = node->GetAttribute(g, NULL); vp->nl = node->GetChildElements(g); if (tdp->Usedom && vp->nl->GetLength() == 1) { @@ -270,7 +274,7 @@ PQRYRES XMLColumns(PGLOBAL g, char *db, char *tab, PTOS topt, bool info) if (vp->atp || vp->b) { if (!vp->atp) - node = vp->nl->GetItem(g, vp->k++, node); + node = vp->nl->GetItem(g, vp->k++, tdp->Usedom ? node : NULL); strncat(fmt, colname, XLEN(fmt)); strncat(fmt, "/", XLEN(fmt)); @@ -429,11 +433,14 @@ XMLDEF::XMLDEF(void) DefNs = NULL; Attrib = NULL; Hdattr = NULL; + Entry = NULL; Coltype = 1; Limit = 0; Header = 0; Xpand = false; Usedom = false; + Zipped = false; + Mulentries = false; } // end of XMLDEF constructor /***********************************************************************/ @@ -512,7 +519,14 @@ bool XMLDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) // Get eventual table node attribute Attrib = GetStringCatInfo(g, "Attribute", NULL); Hdattr = GetStringCatInfo(g, "HeadAttr", NULL); - return false; + + // Specific for zipped files + if ((Zipped = GetBoolCatInfo("Zipped", false))) + Mulentries = ((Entry = GetStringCatInfo(g, "Entry", NULL))) + ? strchr(Entry, '*') || strchr(Entry, '?') + : GetBoolCatInfo("Mulentries", false); + + return false; } // end of DefineAM /***********************************************************************/ @@ -552,6 +566,7 @@ TDBXML::TDBXML(PXMLDEF tdp) : TDBASE(tdp) Xfile = tdp->Fn; Enc = tdp->Encoding; Tabname = tdp->Tabname; +#if 0 // why all these? Rowname = (tdp->Rowname) ? tdp->Rowname : NULL; Colname = (tdp->Colname) ? tdp->Colname : NULL; Mulnode = (tdp->Mulnode) ? tdp->Mulnode : NULL; @@ -560,10 +575,22 @@ TDBXML::TDBXML(PXMLDEF tdp) : TDBASE(tdp) DefNs = (tdp->DefNs) ? tdp->DefNs : NULL; Attrib = (tdp->Attrib) ? tdp->Attrib : NULL; Hdattr = (tdp->Hdattr) ? tdp->Hdattr : NULL; - Coltype = tdp->Coltype; +#endif // 0 + Rowname = tdp->Rowname; + Colname = tdp->Colname; + Mulnode = tdp->Mulnode; + XmlDB = tdp->XmlDB; + Nslist = tdp->Nslist; + DefNs = tdp->DefNs; + Attrib = tdp->Attrib; + Hdattr = tdp->Hdattr; + Entry = tdp->Entry; + Coltype = tdp->Coltype; Limit = tdp->Limit; Xpand = tdp->Xpand; - Changed = false; + Zipped = tdp->Zipped; + Mulentries = tdp->Mulentries; + Changed = false; Checked = false; NextSame = false; NewRow = false; @@ -605,10 +632,13 @@ TDBXML::TDBXML(PTDBXML tdbp) : TDBASE(tdbp) DefNs = tdbp->DefNs; Attrib = tdbp->Attrib; Hdattr = tdbp->Hdattr; - Coltype = tdbp->Coltype; + Entry = tdbp->Entry; + Coltype = tdbp->Coltype; Limit = tdbp->Limit; Xpand = tdbp->Xpand; - Changed = tdbp->Changed; + Zipped = tdbp->Zipped; + Mulentries = tdbp->Mulentries; + Changed = tdbp->Changed; Checked = tdbp->Checked; NextSame = tdbp->NextSame; NewRow = tdbp->NewRow; @@ -686,7 +716,7 @@ int TDBXML::LoadTableFile(PGLOBAL g, char *filename) /*********************************************************************/ /* Firstly we check whether this file have been already loaded. */ /*********************************************************************/ - if (Mode == MODE_READ || Mode == MODE_ANY) + if ((Mode == MODE_READ || Mode == MODE_ANY) && !Zipped) for (fp = dup->Openlist; fp; fp = fp->Next) if (fp->Type == type && fp->Length && fp->Count) if (!stricmp(fp->Fname, filename)) @@ -708,7 +738,7 @@ int TDBXML::LoadTableFile(PGLOBAL g, char *filename) return RC_FX; // Initialize the implementation - if (Docp->Initialize(g)) { + if (Docp->Initialize(g, Entry, Zipped)) { sprintf(g->Message, MSG(INIT_FAILED), (Usedom) ? "DOM" : "libxml2"); return RC_FX; } // endif init @@ -717,7 +747,7 @@ int TDBXML::LoadTableFile(PGLOBAL g, char *filename) htrc("TDBXML: parsing %s rc=%d\n", filename, rc); // Parse the XML file - if (Docp->ParseFile(filename)) { + if (Docp->ParseFile(g, filename)) { // Does the file exist? int h= global_open(g, MSGID_NONE, filename, _O_RDONLY); diff --git a/storage/connect/tabxml.h b/storage/connect/tabxml.h index 7ba3166881d..6c586d79dec 100644 --- a/storage/connect/tabxml.h +++ b/storage/connect/tabxml.h @@ -1,7 +1,7 @@ /*************** Tabxml H Declares Source Code File (.H) ***************/ -/* Name: TABXML.H Version 1.6 */ +/* Name: TABXML.H Version 1.7 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 2007-2015 */ +/* (C) Copyright to the author Olivier BERTRAND 2007-2016 */ /* */ /* This file contains the XML table classes declares. */ /***********************************************************************/ @@ -42,12 +42,15 @@ class DllExport XMLDEF : public TABDEF { /* Logical table description */ char *DefNs; /* Dummy name of default namespace */ char *Attrib; /* Table node attributes */ char *Hdattr; /* Header node attributes */ - int Coltype; /* Default column type */ + char *Entry; /* Zip entry name or pattern */ + int Coltype; /* Default column type */ int Limit; /* Limit of multiple values */ int Header; /* n first rows are header rows */ bool Xpand; /* Put multiple tags in several rows */ bool Usedom; /* True: DOM, False: libxml2 */ - }; // end of XMLDEF + bool Zipped; /* True: Zipped XML file(s) */ + bool Mulentries; /* True: multiple entries in zip file*/ +}; // end of XMLDEF #if defined(INCLUDE_TDBXML) /***********************************************************************/ @@ -122,7 +125,9 @@ class DllExport TDBXML : public TDBASE { bool Bufdone; // True when column buffers allocated bool Nodedone; // True when column nodes allocated bool Void; // True if the file does not exist - char *Xfile; // The XML file + bool Zipped; // True if Zipped XML file(s) + bool Mulentries; // True if multiple entries in zip file + char *Xfile; // The XML file char *Enc; // New XML table file encoding char *Tabname; // Name of Table node char *Rowname; // Name of first level nodes @@ -133,7 +138,8 @@ class DllExport TDBXML : public TDBASE { char *DefNs; // Dummy name of default namespace char *Attrib; // Table node attribut(s) char *Hdattr; // Header node attribut(s) - int Coltype; // Default column type + char *Entry; // Zip entry name or pattern + int Coltype; // Default column type int Limit; // Limit of multiple values int Header; // n first rows are header rows int Multiple; // If multiple files From 2718225b2626eeb8df9ab71547a81e43104d52ab Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Sat, 24 Dec 2016 09:47:55 -0500 Subject: [PATCH 070/258] bump the VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 4f1ecb3a197..bc0b19220b6 100644 --- a/VERSION +++ b/VERSION @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MINOR=5 -MYSQL_VERSION_PATCH=54 +MYSQL_VERSION_PATCH=55 MYSQL_VERSION_EXTRA= From 43147681503299ccdf31e23e84dd39aeff52b2df Mon Sep 17 00:00:00 2001 From: Olivier Bertrand Date: Sun, 25 Dec 2016 12:32:05 +0100 Subject: [PATCH 071/258] Modified version number --- storage/connect/ha_connect.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index 6590902bcd4..33f02d8338c 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -6955,7 +6955,7 @@ maria_declare_plugin(connect) 0x0104, /* version number (1.04) */ NULL, /* status variables */ connect_system_variables, /* system variables */ - "1.04.0008", /* string version */ + "1.05.0001", /* string version */ MariaDB_PLUGIN_MATURITY_GAMMA /* maturity */ } maria_declare_plugin_end; From 11544334a277508fb984c0a5bba8faa6b97a2762 Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Tue, 27 Dec 2016 14:13:32 +0530 Subject: [PATCH 072/258] MDEV-11636 Extra persistent columns on slave always gets NULL in RBR Problem:- In replication if slave has extra persistent column then these column are not computed while applying write-set from master. Solution:- While applying row events from server, we will generate values for extra persistent columns. --- .../rpl/r/rpl_alter_extra_persistent.result | 220 ++++++++++++++++++ .../rpl/t/rpl_alter_extra_persistent.test | 106 +++++++++ sql/rpl_record.cc | 31 +++ sql/rpl_record.h | 1 + 4 files changed, 358 insertions(+) create mode 100644 mysql-test/suite/rpl/r/rpl_alter_extra_persistent.result create mode 100644 mysql-test/suite/rpl/t/rpl_alter_extra_persistent.test diff --git a/mysql-test/suite/rpl/r/rpl_alter_extra_persistent.result b/mysql-test/suite/rpl/r/rpl_alter_extra_persistent.result new file mode 100644 index 00000000000..84915073d87 --- /dev/null +++ b/mysql-test/suite/rpl/r/rpl_alter_extra_persistent.result @@ -0,0 +1,220 @@ +include/master-slave.inc +[connection master] +connection master; +create table t1(a int primary key); +insert into t1 values(1); +insert into t1 values(2); +insert into t1 values(3); +insert into t1 values(4); +connection slave; +select * from t1 order by a; +a +1 +2 +3 +4 +alter table t1 add column z1 int as(a+1) virtual, add column z2 int as (a+2) persistent; +select * from t1 order by a; +a z1 z2 +1 2 3 +2 3 4 +3 4 5 +4 5 6 +connection master; +insert into t1 values(5); +insert into t1 values(6); +connection slave; +select * from t1 order by a; +a z1 z2 +1 2 3 +2 3 4 +3 4 5 +4 5 6 +5 6 7 +6 7 8 +#UPDATE query +connection master; +update t1 set a = a+10; +select * from t1 order by a; +a +11 +12 +13 +14 +15 +16 +connection slave; +select * from t1 order by a; +a z1 z2 +11 12 13 +12 13 14 +13 14 15 +14 15 16 +15 16 17 +16 17 18 +connection master; +update t1 set a = a-10; +select * from t1 order by a; +a +1 +2 +3 +4 +5 +6 +connection slave; +select * from t1 order by a; +a z1 z2 +1 2 3 +2 3 4 +3 4 5 +4 5 6 +5 6 7 +6 7 8 +#DELETE quert +connection master; +delete from t1 where a > 2 and a < 4; +select * from t1 order by a; +a +1 +2 +4 +5 +6 +connection slave; +select * from t1 order by a; +a z1 z2 +1 2 3 +2 3 4 +4 5 6 +5 6 7 +6 7 8 +#REPLACE query +connection master; +replace into t1 values(1); +replace into t1 values(3); +replace into t1 values(1); +connection slave; +select * from t1 order by a; +a z1 z2 +1 2 3 +2 3 4 +3 4 5 +4 5 6 +5 6 7 +6 7 8 +#SELECT query +connection master; +select * from t1 where a > 2 and a < 4; +a +3 +connection slave; +select * from t1 where a > 2 and a < 4; +a z1 z2 +3 4 5 +#UPDATE with SELECT query +connection master; +update t1 set a = a + 10 where a > 2 and a < 4; +select * from t1 order by a; +a +1 +2 +4 +5 +6 +13 +connection slave; +select * from t1 order by a; +a z1 z2 +1 2 3 +2 3 4 +4 5 6 +5 6 7 +6 7 8 +13 14 15 +connection master; +update t1 set a = a - 10 where a = 13; +select * from t1 order by a; +a +1 +2 +3 +4 +5 +6 +connection slave; +select * from t1 order by a; +a z1 z2 +1 2 3 +2 3 4 +3 4 5 +4 5 6 +5 6 7 +6 7 8 +#Break Unique Constraint +alter table t1 add column z4 int as (a % 6) persistent unique; +connection master; +#entering duplicate value for slave persistent column +insert into t1 values(7); +select * from t1 order by a; +a +1 +2 +3 +4 +5 +6 +7 +connection slave; +include/wait_for_slave_sql_error.inc [errno=1062] +connection slave; +connection slave; +select * from t1 order by a; +a z1 z2 z4 +1 2 3 1 +2 3 4 2 +3 4 5 3 +4 5 6 4 +5 6 7 5 +6 7 8 0 +alter table t1 drop column z4; +start slave; +include/wait_for_slave_sql_to_start.inc +connection slave; +connection slave; +connection master; +connection slave; +select * from t1 order by a; +a z1 z2 +1 2 3 +2 3 4 +3 4 5 +4 5 6 +5 6 7 +6 7 8 +7 8 9 +connection master; +select * from t1 order by a; +a +1 +2 +3 +4 +5 +6 +7 +drop table t1; +include/rpl_end.inc +connection server_2; +connection server_2; +connection server_2; +connection server_2; +connection server_1; +connection server_1; +connection server_1; +connection server_2; +connection server_1; +connection server_2; +connection server_2; +connection server_1; +connection server_1; diff --git a/mysql-test/suite/rpl/t/rpl_alter_extra_persistent.test b/mysql-test/suite/rpl/t/rpl_alter_extra_persistent.test new file mode 100644 index 00000000000..3b2fff1cb13 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_alter_extra_persistent.test @@ -0,0 +1,106 @@ +--source include/master-slave.inc +--source include/have_binlog_format_row.inc + +--enable_connect_log +--connection master +create table t1(a int primary key); +insert into t1 values(1); +insert into t1 values(2); +insert into t1 values(3); +insert into t1 values(4); + +--sync_slave_with_master +select * from t1 order by a; +alter table t1 add column z1 int as(a+1) virtual, add column z2 int as (a+2) persistent; +select * from t1 order by a; + +--connection master +insert into t1 values(5); +insert into t1 values(6); + +--sync_slave_with_master +select * from t1 order by a; + + +--echo #UPDATE query + +--connection master +update t1 set a = a+10; +select * from t1 order by a; + +--sync_slave_with_master +select * from t1 order by a; + +--connection master +update t1 set a = a-10; +select * from t1 order by a; + +--sync_slave_with_master +select * from t1 order by a; + +--echo #DELETE quert +--connection master +delete from t1 where a > 2 and a < 4; +select * from t1 order by a; + +--sync_slave_with_master +select * from t1 order by a; + +--echo #REPLACE query +--connection master +replace into t1 values(1); +replace into t1 values(3); +replace into t1 values(1); + +--sync_slave_with_master +select * from t1 order by a; + +--echo #SELECT query +--connection master +select * from t1 where a > 2 and a < 4; + +--connection slave +select * from t1 where a > 2 and a < 4; + +--echo #UPDATE with SELECT query +--connection master +update t1 set a = a + 10 where a > 2 and a < 4; +select * from t1 order by a; + +--sync_slave_with_master +select * from t1 order by a; + +--connection master +update t1 set a = a - 10 where a = 13; +select * from t1 order by a; + +--sync_slave_with_master +select * from t1 order by a; + +--echo #Break Unique Constraint +alter table t1 add column z4 int as (a % 6) persistent unique; + +--connection master + +--echo #entering duplicate value for slave persistent column +insert into t1 values(7); +select * from t1 order by a; + +--connection slave +--let $slave_sql_errno= 1062 +--source include/wait_for_slave_sql_error.inc +select * from t1 order by a; +alter table t1 drop column z4; +start slave; + +--source include/wait_for_slave_sql_to_start.inc + +--connection master +--sync_slave_with_master +select * from t1 order by a; + +--connection master +select * from t1 order by a; +drop table t1; + +--source include/rpl_end.inc diff --git a/sql/rpl_record.cc b/sql/rpl_record.cc index df8036c40d8..21b8a8028a6 100644 --- a/sql/rpl_record.cc +++ b/sql/rpl_record.cc @@ -407,6 +407,12 @@ unpack_row(rpl_group_info *rgi, } } + /* + Add Extra slave persistent columns + */ + if ((error= fill_extra_persistent_columns(table, cols->n_bits))) + DBUG_RETURN(error); + /* We should now have read all the null bytes, otherwise something is really wrong. @@ -479,5 +485,30 @@ int prepare_record(TABLE *const table, const uint skip, const bool check) DBUG_RETURN(0); } +/** + Fills @c table->record[0] with computed values of extra persistent column which are present on slave but not on master. + @param table Table whose record[0] buffer is prepared. + @param master_cols No of columns on master + @returns 0 on success + */ +int fill_extra_persistent_columns(TABLE *table, int master_cols) +{ + int error= 0; + Field **vfield_ptr, *vfield; + if (!table->vfield) + return 0; + for (vfield_ptr= table->vfield; *vfield_ptr; ++vfield_ptr) + { + vfield= *vfield_ptr; + if (vfield->field_index >= master_cols && vfield->stored_in_db) + { + /*Set bitmap for writing*/ + bitmap_set_bit(table->vcol_set, vfield->field_index); + error= vfield->vcol_info->expr_item->save_in_field(vfield,0); + bitmap_clear_bit(table->vcol_set, vfield->field_index); + } + } + return error; +} #endif // HAVE_REPLICATION diff --git a/sql/rpl_record.h b/sql/rpl_record.h index c10eb8225b0..be69716d9d5 100644 --- a/sql/rpl_record.h +++ b/sql/rpl_record.h @@ -38,6 +38,7 @@ int unpack_row(rpl_group_info *rgi, // Fill table's record[0] with default values. int prepare_record(TABLE *const table, const uint skip, const bool check); +int fill_extra_persistent_columns(TABLE *table, int master_cols); #endif #endif From 0912fbbce179cba38bd41de797ba5934e63dbaad Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Wed, 4 Jan 2017 03:33:39 +0200 Subject: [PATCH 073/258] MDEV-11719 main.subselect_no_exists_to_in failed in buildbot main.log_slow might leave mysql.slow_log table non-empty, and tests which later use it might fail. Make sure that the table is properly truncated --- mysql-test/r/log_slow.result | 2 +- mysql-test/t/log_slow.test | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/log_slow.result b/mysql-test/r/log_slow.result index 89846dc698c..b396de8a3d8 100644 --- a/mysql-test/r/log_slow.result +++ b/mysql-test/r/log_slow.result @@ -67,9 +67,9 @@ sleep(0.5) select count(*) FROM mysql.slow_log; count(*) 1 -truncate mysql.slow_log; set @@long_query_time=default; set global slow_query_log= @org_slow_query_log; set @@log_slow_filter=default; set @@log_slow_verbosity=default; set global log_output= default; +truncate mysql.slow_log; diff --git a/mysql-test/t/log_slow.test b/mysql-test/t/log_slow.test index 8d5a09d7a94..56e35bd5a20 100644 --- a/mysql-test/t/log_slow.test +++ b/mysql-test/t/log_slow.test @@ -50,7 +50,6 @@ set global slow_query_log=1; set global log_output='TABLE'; select sleep(0.5); select count(*) FROM mysql.slow_log; -truncate mysql.slow_log; # Reset used variables set @@long_query_time=default; @@ -58,3 +57,4 @@ set global slow_query_log= @org_slow_query_log; set @@log_slow_filter=default; set @@log_slow_verbosity=default; set global log_output= default; +truncate mysql.slow_log; From e5d7fc967ede53407a65bfde3faec3181e35f19f Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Wed, 4 Jan 2017 13:03:30 +0200 Subject: [PATCH 074/258] MDEV-10100 main.pool_of_threads fails sporadically in buildbot Backport the fix to 5.5, because it fails there too The patch fixes two test failures: - on slow builders, sometimes a connection attempt which should fail due to the exceeded number of thread_pool_max_threads actually succeeds; - on even slow builders, MTR sometimes cannot establish the initial connection, and check-testcase fails prior to the test start The problem with check-testcase was caused by connect-timeout=2 which was set for all clients in the test config file. On slow builders it might be not enough. There is no way to override it for the pre-test check, so it needed to be substantially increased or removed. The other problem was caused by a race condition between sleeps that the test performs in existing connections and the connect timeout for the connection attempt which was expected to fail. If sleeps finished before the connect-timeout was exceeded, it would allow the connection to succeed. To solve each problem without making the other one worse, connect-timeout should be configured dynamically during the test. Due to the nature of the test (all connections must be busy at the moment when we need to change the timeout, and cannot execute SET GLOBAL ...), it needs to be done independently from the server. The solution: - recognize 'connect_timeout' as a connection option in mysqltest's "connect" command; - remove connect-timeout from the test configuration file; - use the new connect_timeout option for those connections which are expected to fail; - re-arrange the test flow to allow running a huge SLEEP without affecting the test execution time (because it would be interrupted after the main test flow is finished). The test is still subject to false negatives, e.g. if the connection fails due to timeout rather than due to the exceeded number of allowed threads, or if the connection on extra port succeeds due to a race condition and not because the special logic for the extra port. But those false negatives have always been possible there on slow builders, they should not be critical because faster builders should catch such failures if they appear. Conflicts: client/mysqltest.cc mysql-test/r/pool_of_threads.result mysql-test/t/pool_of_threads.test --- client/mysqltest.cc | 8 +++++ mysql-test/r/pool_of_threads.result | 21 +++++++------ mysql-test/t/pool_of_threads.cnf | 3 -- mysql-test/t/pool_of_threads.test | 46 ++++++++++++++++------------- 4 files changed, 44 insertions(+), 34 deletions(-) diff --git a/client/mysqltest.cc b/client/mysqltest.cc index 5daa0e72270..d9fa9bc0bef 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -5900,6 +5900,7 @@ void do_connect(struct st_command *command) my_bool con_ssl= 0, con_compress= 0; my_bool con_pipe= 0; my_bool con_shm __attribute__ ((unused))= 0; + int connect_timeout= 0; struct st_connection* con_slot; static DYNAMIC_STRING ds_connection_name; @@ -5996,6 +5997,9 @@ void do_connect(struct st_command *command) con_pipe= 1; else if (length == 3 && !strncmp(con_options, "SHM", 3)) con_shm= 1; + else if (strncasecmp(con_options, "connect_timeout=", + sizeof("connect_timeout=")-1) == 0) + connect_timeout= atoi(con_options + sizeof("connect_timeout=")-1); else die("Illegal option to connect: %.*s", (int) (end - con_options), con_options); @@ -6066,6 +6070,10 @@ void do_connect(struct st_command *command) if (opt_protocol) mysql_options(con_slot->mysql, MYSQL_OPT_PROTOCOL, (char*) &opt_protocol); + if (connect_timeout) + mysql_options(con_slot->mysql, MYSQL_OPT_CONNECT_TIMEOUT, + (char*)&connect_timeout); + #ifdef HAVE_SMEM if (con_shm) { diff --git a/mysql-test/r/pool_of_threads.result b/mysql-test/r/pool_of_threads.result index 7acb45121d6..f153ebc48f4 100644 --- a/mysql-test/r/pool_of_threads.result +++ b/mysql-test/r/pool_of_threads.result @@ -2157,23 +2157,22 @@ Warnings: Warning 1052 Column 'kundentyp' in group statement is ambiguous drop table t1; SET optimizer_switch=@save_optimizer_switch; -SELECT sleep(5); -SELECT sleep(5); +SELECT sleep(50); +SELECT sleep(50); # -- Success: more than --thread_pool_max_threads normal connections not possible -sleep(5) -0 -sleep(5) -0 -SELECT sleep(5); -SELECT sleep(5); SELECT 'Connection on extra port ok'; Connection on extra port ok Connection on extra port ok +SELECT sleep(5.5); SELECT 'Connection on extra port 2 ok'; Connection on extra port 2 ok Connection on extra port 2 ok # -- Success: more than --extra-max-connections + 1 normal connections not possible -sleep(5) -0 -sleep(5) +KILL QUERY ; +KILL QUERY ; +sleep(50) +1 +sleep(50) +1 +sleep(5.5) 0 diff --git a/mysql-test/t/pool_of_threads.cnf b/mysql-test/t/pool_of_threads.cnf index c03e1da6450..f6651c878de 100644 --- a/mysql-test/t/pool_of_threads.cnf +++ b/mysql-test/t/pool_of_threads.cnf @@ -7,8 +7,5 @@ loose-thread_pool_max_threads= 2 extra-port= @ENV.MASTER_EXTRA_PORT extra-max-connections=1 -[client] -connect-timeout= 2 - [ENV] MASTER_EXTRA_PORT= @OPT.port diff --git a/mysql-test/t/pool_of_threads.test b/mysql-test/t/pool_of_threads.test index 4600128ff43..f13a096985c 100644 --- a/mysql-test/t/pool_of_threads.test +++ b/mysql-test/t/pool_of_threads.test @@ -15,20 +15,26 @@ SET optimizer_switch=@save_optimizer_switch; # connections on the extra port. # First set two connections running, and check that extra connection -# on normal port fails due to--thread-pool-max_threads=2 +# on normal port fails due to --thread-pool-max-threads=2. +# We can afford using a really long sleep, because we won't wait +# till it ends, we'll interrupt it as soon as we don't need it anymore + connection default; -send SELECT sleep(5); +--let $con1_id= `SELECT CONNECTION_ID()` + +send SELECT sleep(50); --sleep 1 connect(con2,localhost,root,,); -connection con2; -send SELECT sleep(5); +--let $con2_id= `SELECT CONNECTION_ID()` + +send SELECT sleep(50); --sleep 0.5 --disable_abort_on_error --disable_result_log --disable_query_log -connect(con3,localhost,root,,); +connect(con3,localhost,root,,,,,connect_timeout=2); --enable_query_log --enable_result_log --enable_abort_on_error @@ -42,24 +48,15 @@ if ($error) --echo # -- Success: more than --thread_pool_max_threads normal connections not possible } -connection default; ---reap -connection con2; ---reap - -# Now try again, but this time use the extra port to successfully connect. - -connection default; -send SELECT sleep(5); - -connection con2; -send SELECT sleep(5); ---sleep 1 - connect(extracon,127.0.0.1,root,,test,$MASTER_EXTRA_PORT,); connection extracon; SELECT 'Connection on extra port ok'; +# Here, sleep just for slightly longer than 5 sec to trigger MDEV-4566 +# (abort in interruptible wait connection check). +send SELECT sleep(5.5); + + connect(extracon2,127.0.0.1,root,,test,$MASTER_EXTRA_PORT,); connection extracon2; SELECT 'Connection on extra port 2 ok'; @@ -67,7 +64,7 @@ SELECT 'Connection on extra port 2 ok'; --disable_abort_on_error --disable_result_log --disable_query_log -connect(extracon3,127.0.0.1,root,,test,$MASTER_EXTRA_PORT,); +connect(extracon3,127.0.0.1,root,,test,$MASTER_EXTRA_PORT,,connect_timeout=2); --enable_query_log --enable_result_log --enable_abort_on_error @@ -81,7 +78,16 @@ if ($error) --echo # -- Success: more than --extra-max-connections + 1 normal connections not possible } +connection extracon2; +--replace_result $con1_id +eval KILL QUERY $con1_id; +--replace_result $con2_id +eval KILL QUERY $con2_id; + connection default; --reap connection con2; --reap + +connection extracon; +--reap From f4d12c1d3fd79db8d30a7de3de3b851d2fa0a397 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 4 Jan 2017 13:36:55 +0100 Subject: [PATCH 075/258] MDEV-11676 Starting service with mysqld_safe_helper fails in SELINUX "enforcing" mode correct the error message in case of setuid/setgid failures --- mysys/my_setuser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mysys/my_setuser.c b/mysys/my_setuser.c index 1f3e7770d4c..14ab04dd10f 100644 --- a/mysys/my_setuser.c +++ b/mysys/my_setuser.c @@ -74,7 +74,8 @@ int my_set_user(const char *user, struct passwd *user_info, myf MyFlags) { my_errno= errno; if (MyFlags & MY_WME) - my_error(my_errno, MYF(ME_NOREFRESH)); + my_printf_error(errno, "Cannot change uid/gid (errno: %d)", MYF(ME_NOREFRESH), + errno); DBUG_RETURN(my_errno); } DBUG_RETURN(0); From f1ee011a6cbda1069a6ec9b5e2428451a64861fd Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Wed, 4 Jan 2017 23:05:22 +0200 Subject: [PATCH 076/258] MDEV-11722 main.join_cache fails in buildbot on very slow builders The guilty part of the test checks for performance degradation on a query with numerous joins on an empty table. The test expects the query to take less than 1 second, and fails if it is not so (which can happen on very slow builders). The solution is to add more JOINs to the query. On a fixed server, it should not have any noticeable impact on the query execution, while on the unfixed version the query would take several times longer (e.g. 6.5 sec vs 1.5 sec). Thus, we can increase the margin for the error, and make the test fail when the query takes longer than 5 seconds. --- mysql-test/r/join_cache.result | 16 ++++++++++++---- mysql-test/t/join_cache.test | 10 ++++++++-- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/mysql-test/r/join_cache.result b/mysql-test/r/join_cache.result index 8a2bdcec8a2..cc64393f975 100644 --- a/mysql-test/r/join_cache.result +++ b/mysql-test/r/join_cache.result @@ -5702,11 +5702,13 @@ LEFT JOIN t2 c1 ON c1.parent_id = t.id AND c1.col2 = "val" LEFT JOIN t2 c23 ON c23.parent_id = t.id AND c23.col2 = "val" LEFT JOIN t2 c24 ON c24.parent_id = t.id AND c24.col2 = "val" LEFT JOIN t2 c25 ON c25.parent_id = t.id AND c25.col2 = "val" + LEFT JOIN t2 c26 ON c26.parent_id = t.id AND c26.col2 = "val" + LEFT JOIN t2 c27 ON c27.parent_id = t.id AND c27.col2 = "val" ORDER BY col1; id col1 -select timestampdiff(second, @init_time, now()) <= 1; -timestampdiff(second, @init_time, now()) <= 1 +select timestampdiff(second, @init_time, now()) <= 5; +timestampdiff(second, @init_time, now()) <= 5 1 set join_cache_level=2; set @init_time:=now(); @@ -5738,11 +5740,13 @@ LEFT JOIN t2 c1 ON c1.parent_id = t.id AND c1.col2 = "val" LEFT JOIN t2 c23 ON c23.parent_id = t.id AND c23.col2 = "val" LEFT JOIN t2 c24 ON c24.parent_id = t.id AND c24.col2 = "val" LEFT JOIN t2 c25 ON c25.parent_id = t.id AND c25.col2 = "val" + LEFT JOIN t2 c26 ON c26.parent_id = t.id AND c26.col2 = "val" + LEFT JOIN t2 c27 ON c27.parent_id = t.id AND c27.col2 = "val" ORDER BY col1; id col1 -select timestampdiff(second, @init_time, now()) <= 1; -timestampdiff(second, @init_time, now()) <= 1 +select timestampdiff(second, @init_time, now()) <= 5; +timestampdiff(second, @init_time, now()) <= 5 1 EXPLAIN SELECT t.* @@ -5773,6 +5777,8 @@ LEFT JOIN t2 c1 ON c1.parent_id = t.id AND c1.col2 = "val" LEFT JOIN t2 c23 ON c23.parent_id = t.id AND c23.col2 = "val" LEFT JOIN t2 c24 ON c24.parent_id = t.id AND c24.col2 = "val" LEFT JOIN t2 c25 ON c25.parent_id = t.id AND c25.col2 = "val" + LEFT JOIN t2 c26 ON c26.parent_id = t.id AND c26.col2 = "val" + LEFT JOIN t2 c27 ON c27.parent_id = t.id AND c27.col2 = "val" ORDER BY col1; id select_type table type possible_keys key key_len ref rows Extra @@ -5802,6 +5808,8 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE c23 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE c24 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE c25 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) +1 SIMPLE c26 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) +1 SIMPLE c27 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) set join_buffer_size=default; set join_cache_level = default; DROP TABLE t1,t2; diff --git a/mysql-test/t/join_cache.test b/mysql-test/t/join_cache.test index 1d22de86799..77e8fce0d27 100644 --- a/mysql-test/t/join_cache.test +++ b/mysql-test/t/join_cache.test @@ -3709,9 +3709,11 @@ FROM LEFT JOIN t2 c23 ON c23.parent_id = t.id AND c23.col2 = "val" LEFT JOIN t2 c24 ON c24.parent_id = t.id AND c24.col2 = "val" LEFT JOIN t2 c25 ON c25.parent_id = t.id AND c25.col2 = "val" + LEFT JOIN t2 c26 ON c26.parent_id = t.id AND c26.col2 = "val" + LEFT JOIN t2 c27 ON c27.parent_id = t.id AND c27.col2 = "val" ORDER BY col1; -select timestampdiff(second, @init_time, now()) <= 1; +select timestampdiff(second, @init_time, now()) <= 5; set join_cache_level=2; @@ -3744,9 +3746,11 @@ FROM LEFT JOIN t2 c23 ON c23.parent_id = t.id AND c23.col2 = "val" LEFT JOIN t2 c24 ON c24.parent_id = t.id AND c24.col2 = "val" LEFT JOIN t2 c25 ON c25.parent_id = t.id AND c25.col2 = "val" + LEFT JOIN t2 c26 ON c26.parent_id = t.id AND c26.col2 = "val" + LEFT JOIN t2 c27 ON c27.parent_id = t.id AND c27.col2 = "val" ORDER BY col1; -select timestampdiff(second, @init_time, now()) <= 1; +select timestampdiff(second, @init_time, now()) <= 5; EXPLAIN SELECT t.* @@ -3777,6 +3781,8 @@ FROM LEFT JOIN t2 c23 ON c23.parent_id = t.id AND c23.col2 = "val" LEFT JOIN t2 c24 ON c24.parent_id = t.id AND c24.col2 = "val" LEFT JOIN t2 c25 ON c25.parent_id = t.id AND c25.col2 = "val" + LEFT JOIN t2 c26 ON c26.parent_id = t.id AND c26.col2 = "val" + LEFT JOIN t2 c27 ON c27.parent_id = t.id AND c27.col2 = "val" ORDER BY col1; From 5302ef2c955d98bf3b1fb1f94c036d904c8af922 Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Sun, 1 Jan 2017 23:13:04 +0200 Subject: [PATCH 077/258] MDEV-11700 funcs_2.innodb_charset fails in buldbot on valgrind builder with timeout When the test is run as a part of the suite with valgrind, only allow it to be executed if --big-test is set. If the test is run by specifying its name explicitly, it will still be executed, even with valgrind without big-test, MTR has special logic for that --- mysql-test/suite/funcs_2/t/innodb_charset.test | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/suite/funcs_2/t/innodb_charset.test b/mysql-test/suite/funcs_2/t/innodb_charset.test index b77bacfc01c..da4dea44ad7 100644 --- a/mysql-test/suite/funcs_2/t/innodb_charset.test +++ b/mysql-test/suite/funcs_2/t/innodb_charset.test @@ -6,6 +6,7 @@ # Checking of other prerequisites is in charset_master.test # ################################################################################ +--source include/no_valgrind_without_big.inc --source include/have_innodb.inc let $engine_type= InnoDB; From 9e528d4fdeab83fcc75ec788da939937ce27b98d Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Thu, 5 Jan 2017 17:38:55 +0200 Subject: [PATCH 078/258] MDEV-11727 Sequences of tests fail with valgrind warnings in buildbot The warning is "blocks are still reachable in loss record", happens in malloc / _dl_close_worker. Suppression added --- mysql-test/valgrind.supp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mysql-test/valgrind.supp b/mysql-test/valgrind.supp index b86cbd23408..154031feb0d 100644 --- a/mysql-test/valgrind.supp +++ b/mysql-test/valgrind.supp @@ -923,6 +923,14 @@ fun:backtrace } +{ + memory leak in mysqld_exit + Memcheck:Leak + fun:malloc + fun:_dl_close_worker + fun:_dl_close +} + # # Bug in Glibc 2.9: http://sourceware.org/bugzilla/show_bug.cgi?id=10391 # Fixed in latest Glibc, but suppressed here for running tests on hosts From ae1b3d1991b679bb38095711de27934d7683deda Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Thu, 5 Jan 2017 13:54:31 -0800 Subject: [PATCH 079/258] Fixed bug mdev-10705. The fix for bug mdev-5104 did not take into account that for any call of setup_order the size of ref_array must be big enough. This patch fixes this problem. --- mysql-test/r/order_by.result | 11 +++++++++++ mysql-test/t/order_by.test | 10 ++++++++++ sql/sql_select.cc | 7 ++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/order_by.result b/mysql-test/r/order_by.result index 6ce12651dba..94a38ca7827 100644 --- a/mysql-test/r/order_by.result +++ b/mysql-test/r/order_by.result @@ -2050,4 +2050,15 @@ t2 A, t2 B where A.b = B.b order by A.col2, B.col2 limit 10, 1000000; drop table t1,t2,t3; +# +# mdev-10705 : long order by list that can be skipped +# +SELECT 1 +UNION +( SELECT 2 +ORDER BY NULL, @a0 := 3, @a1 := 3, @a2 := 3, @a3 := 3, @a4 := 3, +@a5 := 3, @a6 := 3, @a7 := 3, @a8 := 3, @a9 := 3, @a10 := 3 ); +1 +1 +2 End of 5.5 tests diff --git a/mysql-test/t/order_by.test b/mysql-test/t/order_by.test index 2ebf8ba5af1..c96d5c2996a 100644 --- a/mysql-test/t/order_by.test +++ b/mysql-test/t/order_by.test @@ -1746,6 +1746,16 @@ order by A.col2, B.col2 limit 10, 1000000; drop table t1,t2,t3; +--echo # +--echo # mdev-10705 : long order by list that can be skipped +--echo # + +SELECT 1 +UNION +( SELECT 2 + ORDER BY NULL, @a0 := 3, @a1 := 3, @a2 := 3, @a3 := 3, @a4 := 3, + @a5 := 3, @a6 := 3, @a7 := 3, @a8 := 3, @a9 := 3, @a10 := 3 ); + --echo End of 5.5 tests diff --git a/sql/sql_select.cc b/sql/sql_select.cc index c406fab5a3a..2c65c59ad7e 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -714,10 +714,15 @@ JOIN::prepare(Item ***rref_pointer_array, if (mixed_implicit_grouping && tbl->table) tbl->table->maybe_null= 1; } + + uint real_og_num= og_num; + if (skip_order_by && + select_lex != select_lex->master_unit()->global_parameters) + real_og_num+= select_lex->order_list.elements; if ((wild_num && setup_wild(thd, tables_list, fields_list, &all_fields, wild_num)) || - select_lex->setup_ref_array(thd, og_num) || + select_lex->setup_ref_array(thd, real_og_num) || setup_fields(thd, (*rref_pointer_array), fields_list, MARK_COLUMNS_READ, &all_fields, 1) || setup_without_group(thd, (*rref_pointer_array), tables_list, From 6ac84d9824ec384c4489b68b8087369aef147ff9 Mon Sep 17 00:00:00 2001 From: vicentiu Date: Sat, 7 Jan 2017 14:24:42 +0200 Subject: [PATCH 080/258] 5.6.35 --- storage/innobase/dict/dict0stats.cc | 13 +++- storage/innobase/fts/fts0opt.cc | 7 +- storage/innobase/handler/ha_innodb.cc | 38 +++++++++++ storage/innobase/handler/handler0alter.cc | 79 +++++++++++++---------- storage/innobase/include/os0thread.h | 13 +++- storage/innobase/include/srv0srv.h | 1 + storage/innobase/mach/mach0data.cc | 57 ++++++++++++---- storage/innobase/os/os0thread.cc | 32 ++++++++- storage/innobase/row/row0ftsort.cc | 2 +- storage/innobase/row/row0merge.cc | 7 ++ storage/innobase/row/row0mysql.cc | 2 + storage/innobase/srv/srv0srv.cc | 1 + 12 files changed, 190 insertions(+), 62 deletions(-) diff --git a/storage/innobase/dict/dict0stats.cc b/storage/innobase/dict/dict0stats.cc index 9aa63caa579..b0ba98308be 100644 --- a/storage/innobase/dict/dict0stats.cc +++ b/storage/innobase/dict/dict0stats.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2009, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2009, 2016, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -1095,7 +1095,8 @@ dict_stats_analyze_index_level( them away) which brings non-determinism. We skip only leaf-level delete marks because delete marks on non-leaf level do not make sense. */ - if (level == 0 && + + if (level == 0 && srv_stats_include_delete_marked? 0: rec_get_deleted_flag( rec, page_is_comp(btr_pcur_get_page(&pcur)))) { @@ -1281,8 +1282,12 @@ enum page_scan_method_t { the given page and count the number of distinct ones, also ignore delete marked records */ - QUIT_ON_FIRST_NON_BORING/* quit when the first record that differs + QUIT_ON_FIRST_NON_BORING,/* quit when the first record that differs from its right neighbor is found */ + COUNT_ALL_NON_BORING_INCLUDE_DEL_MARKED/* scan all records on + the given page and count the number of + distinct ones, include delete marked + records */ }; /* @} */ @@ -1558,6 +1563,8 @@ dict_stats_analyze_index_below_cur( offsets_rec = dict_stats_scan_page( &rec, offsets1, offsets2, index, page, n_prefix, + srv_stats_include_delete_marked ? + COUNT_ALL_NON_BORING_INCLUDE_DEL_MARKED: COUNT_ALL_NON_BORING_AND_SKIP_DEL_MARKED, n_diff, n_external_pages); diff --git a/storage/innobase/fts/fts0opt.cc b/storage/innobase/fts/fts0opt.cc index 0d45a195c95..19098dc00ef 100644 --- a/storage/innobase/fts/fts0opt.cc +++ b/storage/innobase/fts/fts0opt.cc @@ -578,9 +578,6 @@ fts_zip_read_word( fts_zip_t* zip, /*!< in: Zip state + data */ fts_string_t* word) /*!< out: uncompressed word */ { -#ifdef UNIV_DEBUG - ulint i; -#endif short len = 0; void* null = NULL; byte* ptr = word->f_str; @@ -655,10 +652,9 @@ fts_zip_read_word( } } -#ifdef UNIV_DEBUG /* All blocks must be freed at end of inflate. */ if (zip->status != Z_OK) { - for (i = 0; i < ib_vector_size(zip->blocks); ++i) { + for (ulint i = 0; i < ib_vector_size(zip->blocks); ++i) { if (ib_vector_getp(zip->blocks, i)) { ut_free(ib_vector_getp(zip->blocks, i)); ib_vector_set(zip->blocks, i, &null); @@ -669,7 +665,6 @@ fts_zip_read_word( if (ptr != NULL) { ut_ad(word->f_len == strlen((char*) ptr)); } -#endif /* UNIV_DEBUG */ return(zip->status == Z_OK || zip->status == Z_STREAM_END ? ptr : NULL); } diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index be5e74e1617..41c767a4bfc 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -13359,6 +13359,37 @@ ha_innobase::get_auto_increment( ulonglong col_max_value = innobase_get_int_col_max_value( table->next_number_field); + /** The following logic is needed to avoid duplicate key error + for autoincrement column. + + (1) InnoDB gives the current autoincrement value with respect + to increment and offset value. + + (2) Basically it does compute_next_insert_id() logic inside InnoDB + to avoid the current auto increment value changed by handler layer. + + (3) It is restricted only for insert operations. */ + + if (increment > 1 && thd_sql_command(user_thd) != SQLCOM_ALTER_TABLE + && autoinc < col_max_value) { + + ulonglong prev_auto_inc = autoinc; + + autoinc = ((autoinc - 1) + increment - offset)/ increment; + + autoinc = autoinc * increment + offset; + + /* If autoinc exceeds the col_max_value then reset + to old autoinc value. Because in case of non-strict + sql mode, boundary value is not considered as error. */ + + if (autoinc >= col_max_value) { + autoinc = prev_auto_inc; + } + + ut_ad(autoinc > 0); + } + /* Called for the first time ? */ if (trx->n_autoinc_rows == 0) { @@ -15880,6 +15911,12 @@ static MYSQL_SYSVAR_BOOL(doublewrite, innobase_use_doublewrite, "Disable with --skip-innodb-doublewrite.", NULL, NULL, TRUE); +static MYSQL_SYSVAR_BOOL(stats_include_delete_marked, + srv_stats_include_delete_marked, + PLUGIN_VAR_OPCMDARG, + "Scan delete marked records for persistent stat", + NULL, NULL, FALSE); + static MYSQL_SYSVAR_ULONG(io_capacity, srv_io_capacity, PLUGIN_VAR_RQCMDARG, "Number of IOPs the server can do. Tunes the background IO rate", @@ -16681,6 +16718,7 @@ static struct st_mysql_sys_var* innobase_system_variables[]= { MYSQL_SYSVAR(data_file_path), MYSQL_SYSVAR(data_home_dir), MYSQL_SYSVAR(doublewrite), + MYSQL_SYSVAR(stats_include_delete_marked), MYSQL_SYSVAR(api_enable_binlog), MYSQL_SYSVAR(api_enable_mdl), MYSQL_SYSVAR(api_disable_rowlock), diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 2261754a4f5..e772208ed72 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -1709,6 +1709,7 @@ innobase_fts_check_doc_id_index_in_def( return(FTS_NOT_EXIST_DOC_ID_INDEX); } + /*******************************************************************//** Create an index table where indexes are ordered as follows: @@ -1775,26 +1776,11 @@ innobase_create_key_defs( (only prefix/part of the column is indexed), MySQL will treat the index as a PRIMARY KEY unless the table already has one. */ - if (n_add > 0 && !new_primary && got_default_clust - && (key_info[*add].flags & HA_NOSAME) - && !(key_info[*add].flags & HA_KEY_HAS_PART_KEY_SEG)) { - uint key_part = key_info[*add].user_defined_key_parts; + ut_ad(altered_table->s->primary_key == 0 + || altered_table->s->primary_key == MAX_KEY); - new_primary = true; - - while (key_part--) { - const uint maybe_null - = key_info[*add].key_part[key_part].key_type - & FIELDFLAG_MAYBE_NULL; - DBUG_ASSERT(!maybe_null - == !key_info[*add].key_part[key_part]. - field->real_maybe_null()); - - if (maybe_null) { - new_primary = false; - break; - } - } + if (got_default_clust && !new_primary) { + new_primary = (altered_table->s->primary_key != MAX_KEY); } const bool rebuild = new_primary || add_fts_doc_id @@ -1812,8 +1798,14 @@ innobase_create_key_defs( ulint primary_key_number; if (new_primary) { - DBUG_ASSERT(n_add > 0); - primary_key_number = *add; + if (n_add == 0) { + DBUG_ASSERT(got_default_clust); + DBUG_ASSERT(altered_table->s->primary_key + == 0); + primary_key_number = 0; + } else { + primary_key_number = *add; + } } else if (got_default_clust) { /* Create the GEN_CLUST_INDEX */ index_def_t* index = indexdef++; @@ -2900,6 +2892,8 @@ prepare_inplace_alter_table_dict( ctx->add_cols = add_cols; } else { DBUG_ASSERT(!innobase_need_rebuild(ha_alter_info)); + DBUG_ASSERT(old_table->s->primary_key + == altered_table->s->primary_key); if (!ctx->new_table->fts && innobase_fulltext_exist(altered_table)) { @@ -3892,6 +3886,27 @@ found_col: add_fts_doc_id_idx)); } +/** Get the name of an erroneous key. +@param[in] error_key_num InnoDB number of the erroneus key +@param[in] ha_alter_info changes that were being performed +@param[in] table InnoDB table +@return the name of the erroneous key */ +static +const char* +get_error_key_name( + ulint error_key_num, + const Alter_inplace_info* ha_alter_info, + const dict_table_t* table) +{ + if (error_key_num == ULINT_UNDEFINED) { + return(FTS_DOC_ID_INDEX_NAME); + } else if (ha_alter_info->key_count == 0) { + return(dict_table_get_first_index(table)->name); + } else { + return(ha_alter_info->key_info_buffer[error_key_num].name); + } +} + /** Alter the table structure in-place with operations specified using Alter_inplace_info. The level of concurrency allowed during this operation depends @@ -4009,17 +4024,13 @@ oom: case DB_ONLINE_LOG_TOO_BIG: DBUG_ASSERT(ctx->online); my_error(ER_INNODB_ONLINE_LOG_TOO_BIG, MYF(0), - (prebuilt->trx->error_key_num == ULINT_UNDEFINED) - ? FTS_DOC_ID_INDEX_NAME - : ha_alter_info->key_info_buffer[ - prebuilt->trx->error_key_num].name); + get_error_key_name(prebuilt->trx->error_key_num, + ha_alter_info, prebuilt->table)); break; case DB_INDEX_CORRUPT: my_error(ER_INDEX_CORRUPT, MYF(0), - (prebuilt->trx->error_key_num == ULINT_UNDEFINED) - ? FTS_DOC_ID_INDEX_NAME - : ha_alter_info->key_info_buffer[ - prebuilt->trx->error_key_num].name); + get_error_key_name(prebuilt->trx->error_key_num, + ha_alter_info, prebuilt->table)); break; default: my_error_innodb(error, @@ -4829,7 +4840,6 @@ innobase_update_foreign_cache( "Foreign key constraints for table '%s'" " are loaded with charset check off", user_table->name); - } } @@ -4929,14 +4939,13 @@ commit_try_rebuild( DBUG_RETURN(true); case DB_ONLINE_LOG_TOO_BIG: my_error(ER_INNODB_ONLINE_LOG_TOO_BIG, MYF(0), - ha_alter_info->key_info_buffer[0].name); + get_error_key_name(err_key, ha_alter_info, + rebuilt_table)); DBUG_RETURN(true); case DB_INDEX_CORRUPT: my_error(ER_INDEX_CORRUPT, MYF(0), - (err_key == ULINT_UNDEFINED) - ? FTS_DOC_ID_INDEX_NAME - : ha_alter_info->key_info_buffer[err_key] - .name); + get_error_key_name(err_key, ha_alter_info, + rebuilt_table)); DBUG_RETURN(true); default: my_error_innodb(error, table_name, user_table->flags); diff --git a/storage/innobase/include/os0thread.h b/storage/innobase/include/os0thread.h index 9a1ada8fa0d..54f3d7554bf 100644 --- a/storage/innobase/include/os0thread.h +++ b/storage/innobase/include/os0thread.h @@ -117,14 +117,25 @@ os_thread_create_func( os_thread_id_t* thread_id); /*!< out: id of the created thread, or NULL */ +/** Waits until the specified thread completes and joins it. +Its return value is ignored. +@param[in,out] thread thread to join */ +UNIV_INTERN +void +os_thread_join( + os_thread_t thread); + /*****************************************************************//** Exits the current thread. */ UNIV_INTERN void os_thread_exit( /*===========*/ - void* exit_value) /*!< in: exit value; in Windows this void* + void* exit_value, /*!< in: exit value; in Windows this void* is cast as a DWORD */ + bool detach = true) /*!< in: if true, the thread will be detached + right before exiting. If false, another thread + is responsible for joining this thread. */ UNIV_COLD MY_ATTRIBUTE((noreturn)); /*****************************************************************//** Returns the thread identifier of current thread. diff --git a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h index aaea21b264b..042ced75d10 100644 --- a/storage/innobase/include/srv0srv.h +++ b/storage/innobase/include/srv0srv.h @@ -347,6 +347,7 @@ extern unsigned long long srv_stats_transient_sample_pages; extern my_bool srv_stats_persistent; extern unsigned long long srv_stats_persistent_sample_pages; extern my_bool srv_stats_auto_recalc; +extern my_bool srv_stats_include_delete_marked; extern ibool srv_use_doublewrite_buf; extern ulong srv_doublewrite_batch_size; diff --git a/storage/innobase/mach/mach0data.cc b/storage/innobase/mach/mach0data.cc index df68aab8a18..feeedb01609 100644 --- a/storage/innobase/mach/mach0data.cc +++ b/storage/innobase/mach/mach0data.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2009, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -55,8 +55,22 @@ mach_parse_compressed( if (flag < 0x80UL) { *val = flag; return(ptr + 1); + } - } else if (flag < 0xC0UL) { + /* Workaround GCC bug + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77673: + the compiler moves mach_read_from_4 right to the beginning of the + function, causing and out-of-bounds read if we are reading a short + integer close to the end of buffer. */ +#if defined(__GNUC__) && (__GNUC__ >= 5) && !defined(__clang__) +#define DEPLOY_FENCE +#endif + +#ifdef DEPLOY_FENCE + __atomic_thread_fence(__ATOMIC_ACQUIRE); +#endif + + if (flag < 0xC0UL) { if (end_ptr < ptr + 2) { return(NULL); } @@ -64,8 +78,13 @@ mach_parse_compressed( *val = mach_read_from_2(ptr) & 0x7FFFUL; return(ptr + 2); + } - } else if (flag < 0xE0UL) { +#ifdef DEPLOY_FENCE + __atomic_thread_fence(__ATOMIC_ACQUIRE); +#endif + + if (flag < 0xE0UL) { if (end_ptr < ptr + 3) { return(NULL); } @@ -73,7 +92,13 @@ mach_parse_compressed( *val = mach_read_from_3(ptr) & 0x3FFFFFUL; return(ptr + 3); - } else if (flag < 0xF0UL) { + } + +#ifdef DEPLOY_FENCE + __atomic_thread_fence(__ATOMIC_ACQUIRE); +#endif + + if (flag < 0xF0UL) { if (end_ptr < ptr + 4) { return(NULL); } @@ -81,14 +106,20 @@ mach_parse_compressed( *val = mach_read_from_4(ptr) & 0x1FFFFFFFUL; return(ptr + 4); - } else { - ut_ad(flag == 0xF0UL); - - if (end_ptr < ptr + 5) { - return(NULL); - } - - *val = mach_read_from_4(ptr + 1); - return(ptr + 5); } + +#ifdef DEPLOY_FENCE + __atomic_thread_fence(__ATOMIC_ACQUIRE); +#endif + +#undef DEPLOY_FENCE + + ut_ad(flag == 0xF0UL); + + if (end_ptr < ptr + 5) { + return(NULL); + } + + *val = mach_read_from_4(ptr + 1); + return(ptr + 5); } diff --git a/storage/innobase/os/os0thread.cc b/storage/innobase/os/os0thread.cc index 772336215c9..d6f897ca46a 100644 --- a/storage/innobase/os/os0thread.cc +++ b/storage/innobase/os/os0thread.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. 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 @@ -191,14 +191,38 @@ os_thread_create_func( #endif } +/** Waits until the specified thread completes and joins it. +Its return value is ignored. +@param[in,out] thread thread to join */ +UNIV_INTERN +void +os_thread_join( + os_thread_t thread) +{ +#ifdef __WIN__ + /* Do nothing. */ +#else +#ifdef UNIV_DEBUG + const int ret = +#endif /* UNIV_DEBUG */ + pthread_join(thread, NULL); + + /* Waiting on already-quit threads is allowed. */ + ut_ad(ret == 0 || ret == ESRCH); +#endif /* __WIN__ */ +} + /*****************************************************************//** Exits the current thread. */ UNIV_INTERN void os_thread_exit( /*===========*/ - void* exit_value) /*!< in: exit value; in Windows this void* + void* exit_value, /*!< in: exit value; in Windows this void* is cast as a DWORD */ + bool detach) /*!< in: if true, the thread will be detached + right before exiting. If false, another thread + is responsible for joining this thread. */ { #ifdef UNIV_DEBUG_THREAD_CREATION fprintf(stderr, "Thread exits, id %lu\n", @@ -216,7 +240,9 @@ os_thread_exit( #ifdef __WIN__ ExitThread((DWORD) exit_value); #else - pthread_detach(pthread_self()); + if (detach) { + pthread_detach(pthread_self()); + } pthread_exit(exit_value); #endif } diff --git a/storage/innobase/row/row0ftsort.cc b/storage/innobase/row/row0ftsort.cc index 4fd3a51040a..7d3fcf675ec 100644 --- a/storage/innobase/row/row0ftsort.cc +++ b/storage/innobase/row/row0ftsort.cc @@ -957,7 +957,7 @@ fts_parallel_merge( CloseHandle(psort_info->thread_hdl); #endif /*__WIN__ */ - os_thread_exit(NULL); + os_thread_exit(NULL, false); OS_THREAD_DUMMY_RETURN; } diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc index c094be8a23b..f8bea67906c 100644 --- a/storage/innobase/row/row0merge.cc +++ b/storage/innobase/row/row0merge.cc @@ -3774,6 +3774,13 @@ wait_again: " exited when creating FTS" " index '%s'", indexes[i]->name); + } else { + for (j = 0; j < FTS_NUM_AUX_INDEX; + j++) { + + os_thread_join(merge_info[j] + .thread_hdl); + } } } else { /* This cannot report duplicates; an diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc index 11bef1064d6..09c20911ec9 100644 --- a/storage/innobase/row/row0mysql.cc +++ b/storage/innobase/row/row0mysql.cc @@ -1362,6 +1362,8 @@ run_again: row_ins_step(thr); + DEBUG_SYNC_C("ib_after_row_insert_step"); + err = trx->error_state; if (err != DB_SUCCESS) { diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index 7a7783b962c..a67f3a776c5 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -340,6 +340,7 @@ this many index pages, there are 2 ways to calculate statistics: table/index are not found in the innodb database */ UNIV_INTERN unsigned long long srv_stats_transient_sample_pages = 8; UNIV_INTERN my_bool srv_stats_persistent = TRUE; +UNIV_INTERN my_bool srv_stats_include_delete_marked = FALSE; UNIV_INTERN unsigned long long srv_stats_persistent_sample_pages = 20; UNIV_INTERN my_bool srv_stats_auto_recalc = TRUE; From c33db2cdc0ab70a874060d58710895f6dac3dea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Sat, 7 Jan 2017 15:53:37 +0200 Subject: [PATCH 081/258] 5.6.35 --- storage/perfschema/pfs.cc | 34 ++++-- storage/perfschema/pfs_digest.cc | 122 ++++++++++++--------- storage/perfschema/pfs_digest.h | 5 +- storage/perfschema/pfs_lock.h | 14 ++- storage/perfschema/table_esms_by_digest.cc | 22 ++-- 5 files changed, 131 insertions(+), 66 deletions(-) diff --git a/storage/perfschema/pfs.cc b/storage/perfschema/pfs.cc index cf0fa82ba3f..3bbc0a4602e 100644 --- a/storage/perfschema/pfs.cc +++ b/storage/perfschema/pfs.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -2560,10 +2560,7 @@ start_table_io_wait_v1(PSI_table_locker_state *state, if (! pfs_table->m_io_enabled) return NULL; - PFS_thread *pfs_thread= pfs_table->m_thread_owner; - - DBUG_ASSERT(pfs_thread == - my_pthread_getspecific_ptr(PFS_thread*, THR_PFS)); + PFS_thread *pfs_thread= my_pthread_getspecific_ptr(PFS_thread*, THR_PFS); register uint flags; ulonglong timer_start= 0; @@ -2666,7 +2663,7 @@ start_table_lock_wait_v1(PSI_table_locker_state *state, if (! pfs_table->m_lock_enabled) return NULL; - PFS_thread *pfs_thread= pfs_table->m_thread_owner; + PFS_thread *pfs_thread= my_pthread_getspecific_ptr(PFS_thread*, THR_PFS); PFS_TL_LOCK_TYPE lock_type; @@ -3068,7 +3065,12 @@ start_socket_wait_v1(PSI_socket_locker_state *state, if (flag_thread_instrumentation) { - PFS_thread *pfs_thread= pfs_socket->m_thread_owner; + /* + Do not use pfs_socket->m_thread_owner here, + as different threads may use concurrently the same socket, + for example during a KILL. + */ + PFS_thread *pfs_thread= my_pthread_getspecific_ptr(PFS_thread*, THR_PFS); if (unlikely(pfs_thread == NULL)) return NULL; @@ -3436,6 +3438,8 @@ static void end_idle_wait_v1(PSI_idle_locker* locker) if (flag_events_waits_history_long) insert_events_waits_history_long(wait); thread->m_events_waits_current--; + + DBUG_ASSERT(wait == thread->m_events_waits_current); } } @@ -3517,6 +3521,8 @@ static void end_mutex_wait_v1(PSI_mutex_locker* locker, int rc) if (flag_events_waits_history_long) insert_events_waits_history_long(wait); thread->m_events_waits_current--; + + DBUG_ASSERT(wait == thread->m_events_waits_current); } } } @@ -3596,6 +3602,8 @@ static void end_rwlock_rdwait_v1(PSI_rwlock_locker* locker, int rc) if (flag_events_waits_history_long) insert_events_waits_history_long(wait); thread->m_events_waits_current--; + + DBUG_ASSERT(wait == thread->m_events_waits_current); } } } @@ -3668,6 +3676,8 @@ static void end_rwlock_wrwait_v1(PSI_rwlock_locker* locker, int rc) if (flag_events_waits_history_long) insert_events_waits_history_long(wait); thread->m_events_waits_current--; + + DBUG_ASSERT(wait == thread->m_events_waits_current); } } } @@ -3732,6 +3742,8 @@ static void end_cond_wait_v1(PSI_cond_locker* locker, int rc) if (flag_events_waits_history_long) insert_events_waits_history_long(wait); thread->m_events_waits_current--; + + DBUG_ASSERT(wait == thread->m_events_waits_current); } } } @@ -3826,6 +3838,8 @@ static void end_table_io_wait_v1(PSI_table_locker* locker) if (flag_events_waits_history_long) insert_events_waits_history_long(wait); thread->m_events_waits_current--; + + DBUG_ASSERT(wait == thread->m_events_waits_current); } } @@ -3895,6 +3909,8 @@ static void end_table_lock_wait_v1(PSI_table_locker* locker) if (flag_events_waits_history_long) insert_events_waits_history_long(wait); thread->m_events_waits_current--; + + DBUG_ASSERT(wait == thread->m_events_waits_current); } } @@ -4143,6 +4159,8 @@ static void end_file_wait_v1(PSI_file_locker *locker, if (flag_events_waits_history_long) insert_events_waits_history_long(wait); thread->m_events_waits_current--; + + DBUG_ASSERT(wait == thread->m_events_waits_current); } } } @@ -5070,6 +5088,8 @@ static void end_socket_wait_v1(PSI_socket_locker *locker, size_t byte_count) if (flag_events_waits_history_long) insert_events_waits_history_long(wait); thread->m_events_waits_current--; + + DBUG_ASSERT(wait == thread->m_events_waits_current); } } diff --git a/storage/perfschema/pfs_digest.cc b/storage/perfschema/pfs_digest.cc index 1053bd59571..5886c379b2f 100644 --- a/storage/perfschema/pfs_digest.cc +++ b/storage/perfschema/pfs_digest.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -45,7 +45,7 @@ bool flag_statements_digest= true; Current index in Stat array where new record is to be inserted. index 0 is reserved for "all else" case when entire array is full. */ -volatile uint32 digest_index; +volatile uint32 PFS_ALIGNED digest_monotonic_index; bool digest_full= false; LF_HASH digest_hash; @@ -63,7 +63,7 @@ int init_digest(const PFS_global_param *param) */ digest_max= param->m_digest_sizing; digest_lost= 0; - digest_index= 1; + PFS_atomic::store_u32(& digest_monotonic_index, 1); digest_full= false; if (digest_max == 0) @@ -105,6 +105,9 @@ int init_digest(const PFS_global_param *param) + index * pfs_max_digest_length, pfs_max_digest_length); } + /* Set record[0] as allocated. */ + statements_digest_stat_array[0].m_lock.set_allocated(); + return 0; } @@ -207,9 +210,10 @@ find_or_create_digest(PFS_thread *thread, memcpy(hash_key.m_schema_name, schema_name, schema_name_length); int res; - ulong safe_index; uint retry_count= 0; const uint retry_max= 3; + size_t safe_index; + size_t attempts= 0; PFS_statements_digest_stat **entry; PFS_statements_digest_stat *pfs= NULL; @@ -245,55 +249,70 @@ search: return & pfs->m_stat; } - safe_index= PFS_atomic::add_u32(& digest_index, 1); - if (safe_index >= digest_max) + while (++attempts <= digest_max) { - /* The digest array is now full. */ - digest_full= true; - pfs= &statements_digest_stat_array[0]; - - if (pfs->m_first_seen == 0) - pfs->m_first_seen= now; - pfs->m_last_seen= now; - return & pfs->m_stat; - } - - /* Add a new record in digest stat array. */ - pfs= &statements_digest_stat_array[safe_index]; - - /* Copy digest hash/LF Hash search key. */ - memcpy(& pfs->m_digest_key, &hash_key, sizeof(PFS_digest_key)); - - /* - Copy digest storage to statement_digest_stat_array so that it could be - used later to generate digest text. - */ - pfs->m_digest_storage.copy(digest_storage); - - pfs->m_first_seen= now; - pfs->m_last_seen= now; - - res= lf_hash_insert(&digest_hash, pins, &pfs); - if (likely(res == 0)) - { - return & pfs->m_stat; - } - - if (res > 0) - { - /* Duplicate insert by another thread */ - if (++retry_count > retry_max) + safe_index= PFS_atomic::add_u32(& digest_monotonic_index, 1) % digest_max; + if (safe_index == 0) { - /* Avoid infinite loops */ - digest_lost++; - return NULL; + /* Record [0] is reserved. */ + safe_index= 1; + } + + /* Add a new record in digest stat array. */ + pfs= &statements_digest_stat_array[safe_index]; + + if (pfs->m_lock.is_free()) + { + if (pfs->m_lock.free_to_dirty()) + { + /* Copy digest hash/LF Hash search key. */ + memcpy(& pfs->m_digest_key, &hash_key, sizeof(PFS_digest_key)); + + /* + Copy digest storage to statement_digest_stat_array so that it could be + used later to generate digest text. + */ + pfs->m_digest_storage.copy(digest_storage); + + pfs->m_first_seen= now; + pfs->m_last_seen= now; + + res= lf_hash_insert(&digest_hash, pins, &pfs); + if (likely(res == 0)) + { + pfs->m_lock.dirty_to_allocated(); + return & pfs->m_stat; + } + + pfs->m_lock.dirty_to_free(); + + if (res > 0) + { + /* Duplicate insert by another thread */ + if (++retry_count > retry_max) + { + /* Avoid infinite loops */ + digest_lost++; + return NULL; + } + goto search; + } + + /* OOM in lf_hash_insert */ + digest_lost++; + return NULL; + } } - goto search; } - /* OOM in lf_hash_insert */ - digest_lost++; - return NULL; + /* The digest array is now full. */ + digest_full= true; + pfs= &statements_digest_stat_array[0]; + + if (pfs->m_first_seen == 0) + pfs->m_first_seen= now; + pfs->m_last_seen= now; + return & pfs->m_stat; } void purge_digest(PFS_thread* thread, PFS_digest_key *hash_key) @@ -320,10 +339,12 @@ void purge_digest(PFS_thread* thread, PFS_digest_key *hash_key) void PFS_statements_digest_stat::reset_data(unsigned char *token_array, uint length) { + m_lock.set_dirty(); m_digest_storage.reset(token_array, length); m_stat.reset(); m_first_seen= 0; m_last_seen= 0; + m_lock.dirty_to_free(); } void PFS_statements_digest_stat::reset_index(PFS_thread *thread) @@ -351,11 +372,14 @@ void reset_esms_by_digest() statements_digest_stat_array[index].reset_data(statements_digest_token_array + index * pfs_max_digest_length, pfs_max_digest_length); } + /* Mark record[0] as allocated again. */ + statements_digest_stat_array[0].m_lock.set_allocated(); + /* Reset index which indicates where the next calculated digest information to be inserted in statements_digest_stat_array. */ - digest_index= 1; + PFS_atomic::store_u32(& digest_monotonic_index, 1); digest_full= false; } diff --git a/storage/perfschema/pfs_digest.h b/storage/perfschema/pfs_digest.h index 76d6c33d984..429a9f4250a 100644 --- a/storage/perfschema/pfs_digest.h +++ b/storage/perfschema/pfs_digest.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -44,6 +44,9 @@ struct PFS_digest_key /** A statement digest stat record. */ struct PFS_ALIGNED PFS_statements_digest_stat { + /** Internal lock. */ + pfs_lock m_lock; + /** Digest Schema + MD5 Hash. */ PFS_digest_key m_digest_key; diff --git a/storage/perfschema/pfs_lock.h b/storage/perfschema/pfs_lock.h index c429d934702..339a893c833 100644 --- a/storage/perfschema/pfs_lock.h +++ b/storage/perfschema/pfs_lock.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -155,6 +155,18 @@ struct pfs_lock PFS_atomic::store_u32(&m_version_state, new_val); } + /** + Initialize a lock to dirty. + */ + void set_dirty(void) + { + /* Do not set the version to 0, read the previous value. */ + uint32 copy= PFS_atomic::load_u32(&m_version_state); + /* Increment the version, set the DIRTY state */ + uint32 new_val= (copy & VERSION_MASK) + VERSION_INC + PFS_LOCK_DIRTY; + PFS_atomic::store_u32(&m_version_state, new_val); + } + /** Execute a dirty to free transition. This transition should be executed by the writer that owns the record. diff --git a/storage/perfschema/table_esms_by_digest.cc b/storage/perfschema/table_esms_by_digest.cc index 99e24316cbb..002a7f0104b 100644 --- a/storage/perfschema/table_esms_by_digest.cc +++ b/storage/perfschema/table_esms_by_digest.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved. 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 @@ -238,11 +238,14 @@ int table_esms_by_digest::rnd_next(void) m_pos.next()) { digest_stat= &statements_digest_stat_array[m_pos.m_index]; - if (digest_stat->m_first_seen != 0) + if (digest_stat->m_lock.is_populated()) { - make_row(digest_stat); - m_next_pos.set_after(&m_pos); - return 0; + if (digest_stat->m_first_seen != 0) + { + make_row(digest_stat); + m_next_pos.set_after(&m_pos); + return 0; + } } } @@ -260,10 +263,13 @@ table_esms_by_digest::rnd_pos(const void *pos) set_position(pos); digest_stat= &statements_digest_stat_array[m_pos.m_index]; - if (digest_stat->m_first_seen != 0) + if (digest_stat->m_lock.is_populated()) { - make_row(digest_stat); - return 0; + if (digest_stat->m_first_seen != 0) + { + make_row(digest_stat); + return 0; + } } return HA_ERR_RECORD_DELETED; From 3e63fde52eb42ff23a9b260ed42b18284628ea42 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Mon, 9 Jan 2017 14:19:02 +0400 Subject: [PATCH 082/258] Adding LOAD DATA tests for MDEV-11079 and MDEV-11631 c3cf7f47f0f4a1ec314001aaf0c3d9c1c1f62097 reverted the patch for BUG#24487120. After merging the reverting patch from MySQL to MariaDB the problems described in MDEV-11079 and MDEV-11631 disappeared. Adding test cases only. --- mysql-test/r/loaddata.result | 18 ++++++++++++++++++ mysql-test/std_data/loaddata/mdev-11079.txt | 1 + mysql-test/std_data/loaddata/mdev-11631.txt | 1 + mysql-test/t/loaddata.test | 18 ++++++++++++++++++ 4 files changed, 38 insertions(+) create mode 100644 mysql-test/std_data/loaddata/mdev-11079.txt create mode 100644 mysql-test/std_data/loaddata/mdev-11631.txt diff --git a/mysql-test/r/loaddata.result b/mysql-test/r/loaddata.result index 8ccc1a3da3d..ce26abea66d 100644 --- a/mysql-test/r/loaddata.result +++ b/mysql-test/r/loaddata.result @@ -532,3 +532,21 @@ FIELDS TERMINATED BY 't' LINES TERMINATED BY ''; Got one of the listed errors SET @@sql_mode= @old_mode; DROP TABLE t1; +# +# MDEV-11079 Regression: LOAD DATA INFILE lost BLOB support using utf8 load files +# +CREATE TABLE t1 (a mediumblob NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; +LOAD DATA INFILE '../../std_data/loaddata/mdev-11079.txt' INTO TABLE t1 CHARSET utf8 FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'; +SELECT HEX(a) FROM t1; +HEX(a) +25AAABAC +DROP TABLE t1; +# +# MDEV-11631 LOAD DATA INFILE fails to load data with an escape character followed by a multi-byte character +# +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8); +LOAD DATA INFILE '../../std_data/loaddata/mdev-11631.txt' INTO TABLE t1 CHARACTER SET utf8; +SELECT HEX(a) FROM t1; +HEX(a) +C3A4 +DROP TABLE t1; diff --git a/mysql-test/std_data/loaddata/mdev-11079.txt b/mysql-test/std_data/loaddata/mdev-11079.txt new file mode 100644 index 00000000000..a792f984d5f --- /dev/null +++ b/mysql-test/std_data/loaddata/mdev-11079.txt @@ -0,0 +1 @@ +"%ª«¬" diff --git a/mysql-test/std_data/loaddata/mdev-11631.txt b/mysql-test/std_data/loaddata/mdev-11631.txt new file mode 100644 index 00000000000..87b824b71ae --- /dev/null +++ b/mysql-test/std_data/loaddata/mdev-11631.txt @@ -0,0 +1 @@ +\ä diff --git a/mysql-test/t/loaddata.test b/mysql-test/t/loaddata.test index 35243864c04..1bc7eb139b9 100644 --- a/mysql-test/t/loaddata.test +++ b/mysql-test/t/loaddata.test @@ -658,3 +658,21 @@ SET @@sql_mode= @old_mode; --remove_file $MYSQLTEST_VARDIR/mysql DROP TABLE t1; + +--echo # +--echo # MDEV-11079 Regression: LOAD DATA INFILE lost BLOB support using utf8 load files +--echo # + +CREATE TABLE t1 (a mediumblob NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; +LOAD DATA INFILE '../../std_data/loaddata/mdev-11079.txt' INTO TABLE t1 CHARSET utf8 FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'; +SELECT HEX(a) FROM t1; +DROP TABLE t1; + +--echo # +--echo # MDEV-11631 LOAD DATA INFILE fails to load data with an escape character followed by a multi-byte character +--echo # + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8); +LOAD DATA INFILE '../../std_data/loaddata/mdev-11631.txt' INTO TABLE t1 CHARACTER SET utf8; +SELECT HEX(a) FROM t1; +DROP TABLE t1; From ecdb39a9f51ebbdafae167889ec65ee817e07de6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 10 Jan 2017 12:08:36 +0200 Subject: [PATCH 083/258] Fix problems from 5.5 merge * Update mysqld_safe script to remove duplicated parameter --crash-script * Make --core-file-size accept underscores as well as dashes correctly. * Add mysqld_safe_helper to Debian and Ubuntu files. * Update innodb minor version to 35 --- debian/dist/Debian/mariadb-server-10.0.files.in | 1 + debian/dist/Ubuntu/mariadb-server-10.0.files.in | 1 + scripts/mysqld_safe.sh | 3 +-- storage/innobase/include/univ.i | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/dist/Debian/mariadb-server-10.0.files.in b/debian/dist/Debian/mariadb-server-10.0.files.in index 88516bb6089..9feec684ff0 100644 --- a/debian/dist/Debian/mariadb-server-10.0.files.in +++ b/debian/dist/Debian/mariadb-server-10.0.files.in @@ -38,6 +38,7 @@ usr/bin/mysql_zap usr/bin/mysqlbinlog usr/bin/mysqld_multi usr/bin/mysqld_safe +usr/bin/mysqld_safe_helper usr/bin/mysqlhotcopy usr/bin/perror usr/bin/replace diff --git a/debian/dist/Ubuntu/mariadb-server-10.0.files.in b/debian/dist/Ubuntu/mariadb-server-10.0.files.in index 849a763dccd..a5e8bd6e717 100644 --- a/debian/dist/Ubuntu/mariadb-server-10.0.files.in +++ b/debian/dist/Ubuntu/mariadb-server-10.0.files.in @@ -40,6 +40,7 @@ usr/bin/mysql_zap usr/bin/mysqlbinlog usr/bin/mysqld_multi usr/bin/mysqld_safe +usr/bin/mysqld_safe_helper usr/bin/mysqlhotcopy usr/bin/perror usr/bin/replace diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 10f88885068..bbd99e92ced 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -215,7 +215,6 @@ parse_arguments() { for arg do val=`echo "$arg" | sed -e "s;--[^=]*=;;"` case "$arg" in - --crash[-_]script=*) CRASH_SCRIPT="$val" ;; # these get passed explicitly to mysqld --basedir=*) MY_BASEDIR_VERSION="$val" ;; --datadir=*|--data=*) DATADIR="$val" ;; @@ -241,7 +240,7 @@ parse_arguments() { --socket=*) mysql_unix_port="$val" ;; # mysqld_safe-specific options - must be set in my.cnf ([mysqld_safe])! - --core[-_]file-size=*) core_file_size="$val" ;; + --core[-_]file[-_]size=*) core_file_size="$val" ;; --ledir=*) check_executable_location "$arg" ; ledir="$val" ;; --malloc[-_]lib=*) check_executable_location "$arg"; set_malloc_lib "$val" ;; --crash[-_]script=*) check_executable_location "$arg"; crash_script="$val" ;; diff --git a/storage/innobase/include/univ.i b/storage/innobase/include/univ.i index e6ddf45faba..e4b20441749 100644 --- a/storage/innobase/include/univ.i +++ b/storage/innobase/include/univ.i @@ -44,7 +44,7 @@ Created 1/20/1994 Heikki Tuuri #define INNODB_VERSION_MAJOR 5 #define INNODB_VERSION_MINOR 6 -#define INNODB_VERSION_BUGFIX 33 +#define INNODB_VERSION_BUGFIX 35 /* The following is the InnoDB version as shown in SELECT plugin_version FROM information_schema.plugins; From 4799af092574e7957d7143c7751acef74a95a495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 10 Jan 2017 14:20:43 +0200 Subject: [PATCH 084/258] Fix unit test after merge from mysql 5.5.35 perfschema The problem in MariaDB is introduced by this merge commit: c33db2cdc0ab70a874060d58710895f6dac3dea3 The merge comes from mysql and the original author comes from this commit from MySQL: ------------------------------------------------ commit 160b823d146288d66638e4a740d6d2da72f9a689 Author: Marc Alff Date: Tue Aug 30 12:14:07 2016 +0200 Bug#22551677 SIGNAL 11 IN LF_PINBOX_PUT_PINS Backport to 5.6 ------------------------------------------------ The breaking change is in start_socket_wait_v1 where instead of using m_thread_owner, we make use of my_pthread_getspecific_ptr to fetch a thread local storage value. Unfortunately this invalidates the "m_thread_owner" member when a socket is created. The internals of the socket structure have m_thread_owner set to NULL, but when checking for ownership we actually look at the current thread's key store. This seems incorrect however it is not immediately apparent why. To not diverge from MySQL's reasoning as it is not described what the actual problem was that this commit is trying to fix, I have adjusted the unittest to account for this new behaviour. We destroy the current thread in the unit test, such that the newly created socket actually has no thread owner. The m_thread_owner is untouched in all this. --- storage/perfschema/unittest/pfs-t.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/storage/perfschema/unittest/pfs-t.cc b/storage/perfschema/unittest/pfs-t.cc index 6121fac098f..f76b1aa2e75 100644 --- a/storage/perfschema/unittest/pfs-t.cc +++ b/storage/perfschema/unittest/pfs-t.cc @@ -1316,6 +1316,7 @@ void test_locker_disabled() /* Pretend the socket does not have a thread owner */ /* ---------------------------------------------- */ + psi->delete_current_thread(); socket_class_A->m_enabled= true; socket_A1= psi->init_socket(socket_key_A, NULL, NULL, 0); ok(socket_A1 != NULL, "instrumented"); From 6ad3dd6054b34afea1f1f13dfd925dc7e73f3b16 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 10 Jan 2017 14:19:11 +0100 Subject: [PATCH 085/258] mysqld_safe: don't close stdout if set -x --- scripts/mysqld_safe.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 059263fad51..a93a18c729c 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -864,8 +864,13 @@ max_fast_restarts=5 have_sleep=1 # close stdout and stderr, everything goes to $logging now -exec 1>&- -exec 2>&- +if expr "${-}" : '.*x' > /dev/null +then + : +else + exec 1>&- + exec 2>&- +fi while true do From 9a4bc0d098a9fba03e88b80db0f921b5ee597123 Mon Sep 17 00:00:00 2001 From: iangilfillan Date: Tue, 3 Jan 2017 16:38:56 +0200 Subject: [PATCH 086/258] Update mysql_secure_installation man page --- man/mysql_secure_installation.1 | 72 +++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/man/mysql_secure_installation.1 b/man/mysql_secure_installation.1 index 20a77bc3f1e..2a04e5d0b98 100644 --- a/man/mysql_secure_installation.1 +++ b/man/mysql_secure_installation.1 @@ -1,6 +1,6 @@ '\" t .\" -.TH "\FBMYSQL_SECURE_INST" "1" "04/08/2015" "MariaDB 10\&.0" "MariaDB Database System" +.TH "\FBMYSQL_SECURE_INST" "1" "3 January 2017" "MariaDB 10\&.0" "MariaDB Database System" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- @@ -71,9 +71,8 @@ test database, which by default can be accessed by anonymous users\&. .RE .PP -Invoke \fBmysql_secure_installation\fR -without arguments: +can be invoked without arguments: .sp .if n \{\ .RS 4 @@ -86,10 +85,75 @@ shell> \fBmysql_secure_installation\fR .\} .PP The script will prompt you to determine which actions to perform\&. +.PP +\fBmysql_secure_installation\fR +accepts some options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_secure_installation: basedir option +.\" basedir option: mysql_secure_installation +\fB\-\-basedir=\fR\fB\fIdir_name\fR\fR +.sp +Base directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_secure_installation: defaults-extra-file option +.\" defaults-extra-file option: mysql_secure_installation +\fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR +.sp +Additional option file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_secure_installation: defaults-file option +.\" defaults-file option: mysql_secure_installation +\fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR +.sp +Option file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_secure_installation: no-defaults option +.\" no-defaults option: mysql_secure_installation +\fB\-\-no\-defaults\fR +.sp +Don't read any defaults file\&. +.RE +.sp +Other unrecognized options will be passed on to the server\&. .SH "COPYRIGHT" .br .PP -Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc., 2010-2015 MariaDB Foundation +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc., 2010-2017 MariaDB Foundation .PP This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. .PP From c1a23cd4e5f96c51064f9569bfa4f87d76d53fb6 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 10 Jan 2017 18:31:03 +0100 Subject: [PATCH 087/258] MDEV-11676 Starting service with mysqld_safe_helper fails in SELINUX "enforcing" mode compile, and install selinux policy for mysqld_safe_helper on centos6. the policy was created as described in https://mariadb.com/kb/en/mariadb/what-to-do-if-mariadb-doesnt-start/#other-selinux-changes --- .gitignore | 1 + support-files/CMakeLists.txt | 2 +- support-files/SELinux/CMakeLists.txt | 35 +++++++++++++++++++ support-files/SELinux/centos6-mariadb.te | 9 +++++ .../mysql.fc => SELinux/rhel4-mysql.fc} | 0 .../mysql.te => SELinux/rhel4-mysql.te} | 0 support-files/rpm/server-postin.sh | 7 +++- 7 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 support-files/SELinux/CMakeLists.txt create mode 100644 support-files/SELinux/centos6-mariadb.te rename support-files/{RHEL4-SElinux/mysql.fc => SELinux/rhel4-mysql.fc} (100%) rename support-files/{RHEL4-SElinux/mysql.te => SELinux/rhel4-mysql.te} (100%) diff --git a/.gitignore b/.gitignore index 8b6e416ec45..4d96bfe65a3 100644 --- a/.gitignore +++ b/.gitignore @@ -221,6 +221,7 @@ support-files/mysql.spec support-files/mysqld_multi.server support-files/wsrep.cnf support-files/wsrep_notify +support-files/SELinux/centos6-mariadb.pp tags tests/async_queries tests/bug25714 diff --git a/support-files/CMakeLists.txt b/support-files/CMakeLists.txt index 4677bd59415..67a7b508e33 100644 --- a/support-files/CMakeLists.txt +++ b/support-files/CMakeLists.txt @@ -67,7 +67,7 @@ IF(UNIX) ENDFOREACH() IF(INSTALL_SUPPORTFILESDIR) INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles) - INSTALL(DIRECTORY RHEL4-SElinux/ DESTINATION ${inst_location}/SELinux/RHEL4 COMPONENT SupportFiles) + ADD_SUBDIRECTORY(SELinux) ENDIF() INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) diff --git a/support-files/SELinux/CMakeLists.txt b/support-files/SELinux/CMakeLists.txt new file mode 100644 index 00000000000..e3cdb26ca8f --- /dev/null +++ b/support-files/SELinux/CMakeLists.txt @@ -0,0 +1,35 @@ +# Copyright (c) 2017, MariaDB +# +# 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 + +FIND_PROGRAM(CHECKMODULE checkmodule) +FIND_PROGRAM(SEMODULE_PACKAGE semodule_package) +MARK_AS_ADVANCED(CHECKMODULE SEMODULE_PACKAGE) + +SET(params DESTINATION ${INSTALL_SUPPORTFILESDIR}/SELinux COMPONENT SupportFiles) + +IF(CHECKMODULE AND SEMODULE_PACKAGE) + FOREACH(pol centos6-mariadb) + SET(src ${CMAKE_CURRENT_SOURCE_DIR}/${pol}.te) + SET(mod ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${pol}-pp.dir/${pol}.mod) + SET(out ${CMAKE_CURRENT_BINARY_DIR}/${pol}.pp) + ADD_CUSTOM_COMMAND(OUTPUT ${out} + COMMAND ${CHECKMODULE} -M -m ${src} -o ${mod} + COMMAND ${SEMODULE_PACKAGE} -m ${mod} -o ${out} + DEPENDS ${src}) + ADD_CUSTOM_TARGET(${pol}-pp ALL DEPENDS ${out}) + INSTALL(FILES ${out} ${params}) + ENDFOREACH() +ENDIF() +INSTALL(FILES centos6-mariadb.te rhel4-mysql.fc rhel4-mysql.te ${params}) diff --git a/support-files/SELinux/centos6-mariadb.te b/support-files/SELinux/centos6-mariadb.te new file mode 100644 index 00000000000..1d3de52c700 --- /dev/null +++ b/support-files/SELinux/centos6-mariadb.te @@ -0,0 +1,9 @@ +module mariadb 1.0; + +require { + type mysqld_safe_t; + class capability { setuid setgid }; +} + +#============= mysqld_safe_t ============== +allow mysqld_safe_t self:capability { setuid setgid }; diff --git a/support-files/RHEL4-SElinux/mysql.fc b/support-files/SELinux/rhel4-mysql.fc similarity index 100% rename from support-files/RHEL4-SElinux/mysql.fc rename to support-files/SELinux/rhel4-mysql.fc diff --git a/support-files/RHEL4-SElinux/mysql.te b/support-files/SELinux/rhel4-mysql.te similarity index 100% rename from support-files/RHEL4-SElinux/mysql.te rename to support-files/SELinux/rhel4-mysql.te diff --git a/support-files/rpm/server-postin.sh b/support-files/rpm/server-postin.sh index cd2aec4d84a..377a752824d 100644 --- a/support-files/rpm/server-postin.sh +++ b/support-files/rpm/server-postin.sh @@ -79,7 +79,12 @@ if [ -f /etc/redhat-release ] ; then echo ' make load' echo echo - fi + fi + if grep 'CentOS release 6' /etc/redhat-release >/dev/null 2>&1; then + if [ -x /usr/sbin/semodule ] ; then + /usr/sbin/semodule -i /usr/share/mysql/SELinux/centos6-mariadb.pp + fi + fi fi if [ -x sbin/restorecon ] ; then From ab93a4d4df7206833fa4a8eb0aa47b8ba185da60 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Wed, 11 Jan 2017 09:05:36 -0500 Subject: [PATCH 088/258] MDEV-11685: sql_mode can't be set with non-ascii connection charset The supplied sql_mode(s) should be converted to ASCII first, before comparing it with the sql_mode set. --- mysql-test/r/ctype_ucs.result | 10 ++++++++++ mysql-test/r/ctype_utf16.result | 10 ++++++++++ mysql-test/r/ctype_utf32.result | 10 ++++++++++ mysql-test/t/ctype_ucs.test | 8 ++++++++ mysql-test/t/ctype_utf16.test | 9 +++++++++ mysql-test/t/ctype_utf32.test | 9 +++++++++ sql/sys_vars.h | 2 +- 7 files changed, 57 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index c38a03f76a8..7a93c5524ef 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -4357,5 +4357,15 @@ SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061)); CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061)) 1 # +# MDEV-11685: sql_mode can't be set with non-ascii connection charset +# +SET character_set_connection=ucs2; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +@@sql_mode +NO_ENGINE_SUBSTITUTION +SET sql_mode=DEFAULT; +SET NAMES utf8; +# # End of 5.5 tests # diff --git a/mysql-test/r/ctype_utf16.result b/mysql-test/r/ctype_utf16.result index bfb2d6a498c..0846811e2e6 100644 --- a/mysql-test/r/ctype_utf16.result +++ b/mysql-test/r/ctype_utf16.result @@ -1207,5 +1207,15 @@ DO LPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999); Warnings: Warning 1300 Invalid utf16 character string: 'DE9899' # +# MDEV-11685: sql_mode can't be set with non-ascii connection charset +# +SET character_set_connection=utf16; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +@@sql_mode +NO_ENGINE_SUBSTITUTION +SET sql_mode=DEFAULT; +SET NAMES utf8; +# # End of 5.5 tests # diff --git a/mysql-test/r/ctype_utf32.result b/mysql-test/r/ctype_utf32.result index ae55f2c101e..9b062f9480f 100644 --- a/mysql-test/r/ctype_utf32.result +++ b/mysql-test/r/ctype_utf32.result @@ -1273,5 +1273,15 @@ select hex(lower(cast(0xffff0000 as char character set utf32))) as c; c FFFF0000 # +# MDEV-11685: sql_mode can't be set with non-ascii connection charset +# +SET character_set_connection=utf32; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +@@sql_mode +NO_ENGINE_SUBSTITUTION +SET sql_mode=DEFAULT; +SET NAMES utf8; +# # End of 5.5 tests # diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index 7fd3768aa5f..d94c9ae62ac 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -853,6 +853,14 @@ SELECT CHAR_LENGTH(TRIM(BOTH 0x0001 FROM _ucs2 0x0061)); SELECT CHAR_LENGTH(TRIM(BOTH 0x61 FROM _ucs2 0x0061)); SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061)); +--echo # +--echo # MDEV-11685: sql_mode can't be set with non-ascii connection charset +--echo # +SET character_set_connection=ucs2; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +SET sql_mode=DEFAULT; +SET NAMES utf8; --echo # --echo # End of 5.5 tests diff --git a/mysql-test/t/ctype_utf16.test b/mysql-test/t/ctype_utf16.test index 3f9e5eece21..ab87c7da0d8 100644 --- a/mysql-test/t/ctype_utf16.test +++ b/mysql-test/t/ctype_utf16.test @@ -792,6 +792,15 @@ SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1; DO RPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999); DO LPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999); +--echo # +--echo # MDEV-11685: sql_mode can't be set with non-ascii connection charset +--echo # +SET character_set_connection=utf16; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +SET sql_mode=DEFAULT; +SET NAMES utf8; + --echo # --echo # End of 5.5 tests --echo # diff --git a/mysql-test/t/ctype_utf32.test b/mysql-test/t/ctype_utf32.test index 8cbb8e2e55e..2b3d3b3bdc5 100644 --- a/mysql-test/t/ctype_utf32.test +++ b/mysql-test/t/ctype_utf32.test @@ -881,6 +881,15 @@ SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _utf32 0x00000061)); # select hex(lower(cast(0xffff0000 as char character set utf32))) as c; +--echo # +--echo # MDEV-11685: sql_mode can't be set with non-ascii connection charset +--echo # +SET character_set_connection=utf32; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +SET sql_mode=DEFAULT; +SET NAMES utf8; + --echo # --echo # End of 5.5 tests --echo # diff --git a/sql/sys_vars.h b/sql/sys_vars.h index 3cbd24f1c89..dbe27ab107e 100644 --- a/sql/sys_vars.h +++ b/sql/sys_vars.h @@ -1141,7 +1141,7 @@ public: if (var->value->result_type() == STRING_RESULT) { - if (!(res=var->value->val_str(&str))) + if (!(res=var->value->val_str_ascii(&str))) return true; else { From 0d1d0d77f2a72d9cb6de0489dceb37644caf9037 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 11 Jan 2017 19:12:21 +0100 Subject: [PATCH 089/258] MDEV-11706 Assertion `is_stat_field || !table || (!table->write_set || bitmap_is_set(table->write_set, field_index) || (table->vcol_set && bitmap_is_set(table->vcol_set, field_index)))' failed in Field_time::store_TIME_with_warning vcols and triggers. Revert 094f4cf77890c5a747a57cf2bed149b0b6933507, backport the correct fix (Table_triggers_list::mark_fields_used() not marking vcols) from 10.2. --- mysql-test/suite/vcol/inc/vcol_trigger_sp.inc | 9 ++++++++- .../suite/vcol/r/vcol_trigger_sp_innodb.result | 8 +++++++- .../suite/vcol/r/vcol_trigger_sp_myisam.result | 8 +++++++- sql/sql_base.cc | 16 ++++------------ sql/sql_delete.cc | 5 +---- sql/sql_trigger.cc | 3 +++ sql/sql_update.cc | 13 +++---------- sql/table.cc | 13 +++++-------- sql/table.h | 3 +-- 9 files changed, 39 insertions(+), 39 deletions(-) diff --git a/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc b/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc index eb7e6ad32b9..b9a6ba28a5f 100644 --- a/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc +++ b/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc @@ -110,7 +110,7 @@ drop table t1,t2; drop procedure p1; --echo # ---echo # Bug mdev-3845: values of virtual columns are not computed for triggers +--echo # MDEV-3845 values of virtual columns are not computed for triggers --echo # CREATE TABLE t1 ( @@ -149,3 +149,10 @@ DROP TRIGGER t1_ins_aft; DROP TRIGGER t1_del_bef; DROP TABLE t1,t2; +# +# MDEV-11706 Assertion `is_stat_field || !table || (!table->write_set || bitmap_is_set(table->write_set, field_index) || (table->vcol_set && bitmap_is_set(table->vcol_set, field_index)))' failed in Field_time::store_TIME_with_warning +# +create table t1 (i int, t time not null, vt time(4) as (t) virtual); +create trigger trg before update on t1 for each row set @a = 1; +insert ignore into t1 (i) values (1); +drop table t1; diff --git a/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result b/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result index 1d78bbf50e4..034a67a9bb0 100644 --- a/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result +++ b/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result @@ -86,7 +86,7 @@ a b c drop table t1,t2; drop procedure p1; # -# Bug mdev-3845: values of virtual columns are not computed for triggers +# MDEV-3845 values of virtual columns are not computed for triggers # CREATE TABLE t1 ( a INTEGER UNSIGNED NULL DEFAULT NULL, @@ -125,3 +125,9 @@ c DROP TRIGGER t1_ins_aft; DROP TRIGGER t1_del_bef; DROP TABLE t1,t2; +create table t1 (i int, t time not null, vt time(4) as (t) virtual); +create trigger trg before update on t1 for each row set @a = 1; +insert ignore into t1 (i) values (1); +Warnings: +Warning 1364 Field 't' doesn't have a default value +drop table t1; diff --git a/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result b/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result index 77efa8fe6b9..07d011ac64c 100644 --- a/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result +++ b/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result @@ -86,7 +86,7 @@ a b c drop table t1,t2; drop procedure p1; # -# Bug mdev-3845: values of virtual columns are not computed for triggers +# MDEV-3845 values of virtual columns are not computed for triggers # CREATE TABLE t1 ( a INTEGER UNSIGNED NULL DEFAULT NULL, @@ -125,3 +125,9 @@ c DROP TRIGGER t1_ins_aft; DROP TRIGGER t1_del_bef; DROP TABLE t1,t2; +create table t1 (i int, t time not null, vt time(4) as (t) virtual); +create trigger trg before update on t1 for each row set @a = 1; +insert ignore into t1 (i) values (1); +Warnings: +Warning 1364 Field 't' doesn't have a default value +drop table t1; diff --git a/sql/sql_base.cc b/sql/sql_base.cc index d281758fc18..7f84f35c825 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -9033,9 +9033,7 @@ fill_record(THD * thd, List &fields, List &values, /* Update virtual fields*/ thd->abort_on_warning= FALSE; if (vcol_table && vcol_table->vfield && - update_virtual_fields(thd, vcol_table, - vcol_table->triggers ? VCOL_UPDATE_ALL : - VCOL_UPDATE_FOR_WRITE)) + update_virtual_fields(thd, vcol_table, VCOL_UPDATE_FOR_WRITE)) goto err; thd->abort_on_warning= save_abort_on_warning; thd->no_errors= save_no_errors; @@ -9099,9 +9097,7 @@ fill_record_n_invoke_before_triggers(THD *thd, List &fields, if (item_field && item_field->field && (table= item_field->field->table) && table->vfield) - result= update_virtual_fields(thd, table, - table->triggers ? VCOL_UPDATE_ALL : - VCOL_UPDATE_FOR_WRITE); + result= update_virtual_fields(thd, table, VCOL_UPDATE_FOR_WRITE); } } return result; @@ -9186,9 +9182,7 @@ fill_record(THD *thd, Field **ptr, List &values, bool ignore_errors, /* Update virtual fields*/ thd->abort_on_warning= FALSE; if (table->vfield && - update_virtual_fields(thd, table, - table->triggers ? VCOL_UPDATE_ALL : - VCOL_UPDATE_FOR_WRITE)) + update_virtual_fields(thd, table, VCOL_UPDATE_FOR_WRITE)) goto err; thd->abort_on_warning= abort_on_warning_saved; DBUG_RETURN(thd->is_error()); @@ -9241,9 +9235,7 @@ fill_record_n_invoke_before_triggers(THD *thd, Field **ptr, { TABLE *table= (*ptr)->table; if (table->vfield) - result= update_virtual_fields(thd, table, - table->triggers ? VCOL_UPDATE_ALL : - VCOL_UPDATE_FOR_WRITE); + result= update_virtual_fields(thd, table, VCOL_UPDATE_FOR_WRITE); } return result; diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index 5b233cde7c7..8aca415a9d0 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -328,9 +328,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, ! thd->is_error()) { if (table->vfield) - update_virtual_fields(thd, table, - table->triggers ? VCOL_UPDATE_ALL : - VCOL_UPDATE_FOR_READ); + update_virtual_fields(thd, table, VCOL_UPDATE_FOR_READ); thd->examined_row_count++; // thd->is_error() is tested to disallow delete row on error if (!select || select->skip_record(thd) > 0) @@ -1073,4 +1071,3 @@ bool multi_delete::send_eof() } return 0; } - diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc index b6915b708fa..4d7338b2e1d 100644 --- a/sql/sql_trigger.cc +++ b/sql/sql_trigger.cc @@ -2246,6 +2246,9 @@ void Table_triggers_list::mark_fields_used(trg_event_type event) bitmap_set_bit(trigger_table->read_set, trg_field->field_idx); if (trg_field->get_settable_routine_parameter()) bitmap_set_bit(trigger_table->write_set, trg_field->field_idx); + if (trigger_table->field[trg_field->field_idx]->vcol_info) + trigger_table->mark_virtual_col(trigger_table-> + field[trg_field->field_idx]); } } } diff --git a/sql/sql_update.cc b/sql/sql_update.cc index f134e0ba266..060952a589d 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -569,9 +569,7 @@ int mysql_update(THD *thd, while (!(error=info.read_record(&info)) && !thd->killed) { if (table->vfield) - update_virtual_fields(thd, table, - table->triggers ? VCOL_UPDATE_ALL : - VCOL_UPDATE_FOR_READ); + update_virtual_fields(thd, table, VCOL_UPDATE_FOR_READ); thd->examined_row_count++; if (!select || (error= select->skip_record(thd)) > 0) { @@ -695,9 +693,7 @@ int mysql_update(THD *thd, while (!(error=info.read_record(&info)) && !thd->killed) { if (table->vfield) - update_virtual_fields(thd, table, - table->triggers ? VCOL_UPDATE_ALL : - VCOL_UPDATE_FOR_READ); + update_virtual_fields(thd, table, VCOL_UPDATE_FOR_READ); thd->examined_row_count++; if (!select || select->skip_record(thd) > 0) { @@ -2235,10 +2231,7 @@ int multi_update::do_updates() { int error; if (table->vfield && - update_virtual_fields(thd, table, - (table->triggers ? - VCOL_UPDATE_ALL : - VCOL_UPDATE_FOR_WRITE))) + update_virtual_fields(thd, table, VCOL_UPDATE_FOR_WRITE)) goto err2; if ((error= cur_table->view_check_option(thd, ignore)) != VIEW_CHECK_OK) diff --git a/sql/table.cc b/sql/table.cc index db18214165e..1330560b6b6 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6557,11 +6557,9 @@ bool is_simple_order(ORDER *order) @details The function computes the values of the virtual columns of the table and stores them in the table record buffer. - If vcol_update_mode is set to VCOL_UPDATE_ALL then all virtual column are - computed. Otherwise, only fields from vcol_set are computed: all of them, - if vcol_update_mode is set to VCOL_UPDATE_FOR_WRITE, and, only those with - the stored_in_db flag set to false, if vcol_update_mode is equal to - VCOL_UPDATE_FOR_READ. + Only fields from vcol_set are computed: all of them, if vcol_update_mode is + set to VCOL_UPDATE_FOR_WRITE, and, only those with the stored_in_db flag + set to false, if vcol_update_mode is equal to VCOL_UPDATE_FOR_READ. @retval 0 Success @@ -6583,9 +6581,8 @@ int update_virtual_fields(THD *thd, TABLE *table, { vfield= (*vfield_ptr); DBUG_ASSERT(vfield->vcol_info && vfield->vcol_info->expr_item); - if ((bitmap_is_set(table->vcol_set, vfield->field_index) && - (vcol_update_mode == VCOL_UPDATE_FOR_WRITE || !vfield->stored_in_db)) || - vcol_update_mode == VCOL_UPDATE_ALL) + if (bitmap_is_set(table->vcol_set, vfield->field_index) && + (vcol_update_mode == VCOL_UPDATE_FOR_WRITE || !vfield->stored_in_db)) { /* Compute the actual value of the virtual fields */ error= vfield->vcol_info->expr_item->save_in_field(vfield, 0); diff --git a/sql/table.h b/sql/table.h index 17fdd4aba15..dde01a85d77 100644 --- a/sql/table.h +++ b/sql/table.h @@ -302,8 +302,7 @@ enum release_type { RELEASE_NORMAL, RELEASE_WAIT_FOR_DROP }; enum enum_vcol_update_mode { VCOL_UPDATE_FOR_READ= 0, - VCOL_UPDATE_FOR_WRITE, - VCOL_UPDATE_ALL + VCOL_UPDATE_FOR_WRITE }; typedef struct st_filesort_info From 20ca1bcf4bd81ed43683676276b5f27dc8da8e91 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 12 Jan 2017 13:54:21 +0100 Subject: [PATCH 090/258] MDEV-11527 Virtual columns do not get along well with NO_ZERO_DATE don't check defaults for vcols --- mysql-test/suite/vcol/r/vcol_misc.result | 7 +++++++ mysql-test/suite/vcol/t/vcol_misc.test | 11 +++++++++++ sql/sql_table.cc | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/vcol/r/vcol_misc.result b/mysql-test/suite/vcol/r/vcol_misc.result index 0aaed59ed6c..699b6d4efe3 100644 --- a/mysql-test/suite/vcol/r/vcol_misc.result +++ b/mysql-test/suite/vcol/r/vcol_misc.result @@ -330,3 +330,10 @@ t1 CREATE TABLE `t1` ( `c1` varchar(50) COLLATE latin1_general_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci drop table t1; +set sql_mode='no_zero_date'; +create table t1 ( +ts timestamp not null default current_timestamp, +tsv timestamp as (adddate(ts, interval 1 day)) virtual +); +drop table t1; +set sql_mode=default; diff --git a/mysql-test/suite/vcol/t/vcol_misc.test b/mysql-test/suite/vcol/t/vcol_misc.test index 12f46e9b002..80a36d9c623 100644 --- a/mysql-test/suite/vcol/t/vcol_misc.test +++ b/mysql-test/suite/vcol/t/vcol_misc.test @@ -290,3 +290,14 @@ create table t1 (a int, b int as (b is null) virtual); create table t1 (v1 varchar(255) as (c1) persistent, c1 varchar(50)) collate=latin1_general_ci; show create table t1; drop table t1; + +# +# MDEV-11527 Virtual columns do not get along well with NO_ZERO_DATE +# +set sql_mode='no_zero_date'; +create table t1 ( + ts timestamp not null default current_timestamp, + tsv timestamp as (adddate(ts, interval 1 day)) virtual +); +drop table t1; +set sql_mode=default; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 2cec480d23b..43e146f1f1d 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3826,7 +3826,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, Field::utype type= (Field::utype) MTYP_TYPENR(sql_field->unireg_check); if (thd->variables.sql_mode & MODE_NO_ZERO_DATE && - !sql_field->def && + !sql_field->def && !sql_field->vcol_info && sql_field->sql_type == MYSQL_TYPE_TIMESTAMP && (sql_field->flags & NOT_NULL_FLAG) && (type == Field::NONE || type == Field::TIMESTAMP_UN_FIELD)) From 939d1255a78e374f468154f3353e5faa0fa517ca Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Fri, 13 Jan 2017 10:15:28 -0500 Subject: [PATCH 091/258] bump the VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 36834bdb92d..5f666b9a57d 100644 --- a/VERSION +++ b/VERSION @@ -1,3 +1,3 @@ MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MINOR=0 -MYSQL_VERSION_PATCH=29 +MYSQL_VERSION_PATCH=30 From 5fc1ba604e27b7d9eaa2977ef5b0c180f6f62565 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Fri, 13 Jan 2017 13:57:17 -0500 Subject: [PATCH 092/258] Fix for post-merge build failure. --- storage/xtradb/handler/ha_innodb.cc | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index ea6a08fc156..ea94f90cbf8 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -7340,16 +7340,7 @@ wsrep_store_key_val_for_row( blob_data = row_mysql_read_blob_ref(&blob_len, (byte*) (record + (ulint) get_field_offset(table, field)), - (ulint) field->pack_length(), -#ifdef HAVE_PERCONA_COMPRESSED_COLUMNS - field->column_format() == - COLUMN_FORMAT_TYPE_COMPRESSED, - reinterpret_cast( - field->zip_dict_data.str), - field->zip_dict_data.length, prebuilt); -#else - 0, 0, 0, prebuilt); -#endif + (ulint) field->pack_length()); true_len = blob_len; @@ -9103,9 +9094,7 @@ wsrep_calc_row_hash( switch (col_type) { case DATA_BLOB: - ptr = row_mysql_read_blob_ref(&len, ptr, len, - false, 0, 0, prebuilt); - + ptr = row_mysql_read_blob_ref(&len, ptr, len); break; case DATA_VARCHAR: From 67e2028161d1f653a852f1a4679ff5e523296218 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 14 Jan 2017 14:56:01 +0100 Subject: [PATCH 093/258] MDEV-9690 concurrent queries with virtual columns crash in temporal code Item_func_le included Arg_comparator. Arg_comparator remembered the current_thd during fix_fields and used that value during execution to allocate Item_cache in get_datetime_value(). But for vcols fix_fields and val_int can happen in different threads. Same bug for Item_func_in using in_datetime or cmp_item_datetime, both also remembered current_thd at fix_fields() to use it later for get_datetime_value(). As a fix, these objects no longer remember the current_thd, and get_datetime_value() uses current_thd at run time. This should not increase the number of current_thd calls much, as Item_cache is created only once anyway. --- mysql-test/suite/vcol/r/wrong_arena.result | 39 ++++++++++++++++++++++ mysql-test/suite/vcol/t/wrong_arena.test | 22 ++++++++++++ sql/item_cmpfunc.cc | 22 ++++++------ sql/item_cmpfunc.h | 12 +++---- 4 files changed, 77 insertions(+), 18 deletions(-) create mode 100644 mysql-test/suite/vcol/r/wrong_arena.result create mode 100644 mysql-test/suite/vcol/t/wrong_arena.test diff --git a/mysql-test/suite/vcol/r/wrong_arena.result b/mysql-test/suite/vcol/r/wrong_arena.result new file mode 100644 index 00000000000..d542c82458e --- /dev/null +++ b/mysql-test/suite/vcol/r/wrong_arena.result @@ -0,0 +1,39 @@ +create table t1 (a datetime, +# get_datetime_value +b int as (a > 1), # Arg_comparator +c int as (a in (1,2,3)), # in_datetime +d int as ((a,a) in ((1,1),(2,1),(NULL,1))) # cmp_item_datetime +); +Warnings: +Warning 1292 Incorrect datetime value: '1' +Warning 1292 Incorrect datetime value: '2' +Warning 1292 Incorrect datetime value: '3' +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` datetime DEFAULT NULL, + `b` int(11) AS (a > 1) VIRTUAL, + `c` int(11) AS (a in (1,2,3)) VIRTUAL, + `d` int(11) AS ((a,a) in ((1,1),(2,1),(NULL,1))) VIRTUAL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1292 Incorrect datetime value: '1' +Warning 1292 Incorrect datetime value: '2' +Warning 1292 Incorrect datetime value: '3' +insert t1 (a) values ('2010-10-10 10:10:10'); +select * from t1; +a b c d +2010-10-10 10:10:10 1 0 0 +Warnings: +Warning 1292 Incorrect datetime value: '1' +Warning 1292 Incorrect datetime value: '1' +Warning 1292 Incorrect datetime value: '2' +Warning 1292 Incorrect datetime value: '1' +select * from t1; +a b c d +2010-10-10 10:10:10 1 0 0 +Warnings: +Warning 1292 Incorrect datetime value: '1' +Warning 1292 Incorrect datetime value: '2' +Warning 1292 Incorrect datetime value: '1' +drop table t1; diff --git a/mysql-test/suite/vcol/t/wrong_arena.test b/mysql-test/suite/vcol/t/wrong_arena.test new file mode 100644 index 00000000000..8bf06bdb9bd --- /dev/null +++ b/mysql-test/suite/vcol/t/wrong_arena.test @@ -0,0 +1,22 @@ +# +# This tests various issues when vcol items allocate memory (e.g. more items) +# not in the TABLE::expr_arena. +# + +# +# MDEV-9690 concurrent queries with virtual columns crash in temporal code +# +create table t1 (a datetime, + # get_datetime_value + b int as (a > 1), # Arg_comparator + c int as (a in (1,2,3)), # in_datetime + d int as ((a,a) in ((1,1),(2,1),(NULL,1))) # cmp_item_datetime +); +show create table t1; +connect con1, localhost, root; +insert t1 (a) values ('2010-10-10 10:10:10'); +select * from t1; +disconnect con1; +connection default; +select * from t1; +drop table t1; diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 3bd0b5b3fa2..46566206094 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -777,7 +777,7 @@ int Arg_comparator::set_cmp_func(Item_result_field *owner_arg, Item **a1, Item **a2, Item_result type) { - thd= current_thd; + THD *thd= current_thd; owner= owner_arg; set_null= set_null && owner_arg; a= a1; @@ -846,7 +846,6 @@ Item** Arg_comparator::cache_converted_constant(THD *thd_arg, Item **value, void Arg_comparator::set_datetime_cmp_func(Item_result_field *owner_arg, Item **a1, Item **b1) { - thd= current_thd; owner= owner_arg; a= a1; b= b1; @@ -919,6 +918,9 @@ get_datetime_value(THD *thd, Item ***item_arg, Item **cache_arg, if (cache_arg && item->const_item() && !(item->type() == Item::CACHE_ITEM && item->cmp_type() == TIME_RESULT)) { + if (!thd) + thd= current_thd; + Query_arena backup; Query_arena *save_arena= thd->switch_to_arena_for_cached_items(&backup); Item_cache_temporal *cache= new Item_cache_temporal(f_type); @@ -959,12 +961,12 @@ int Arg_comparator::compare_datetime() owner->null_value= 1; /* Get DATE/DATETIME/TIME value of the 'a' item. */ - a_value= get_datetime_value(thd, &a, &a_cache, *b, &a_is_null); + a_value= get_datetime_value(0, &a, &a_cache, *b, &a_is_null); if (a_is_null) return -1; /* Get DATE/DATETIME/TIME value of the 'b' item. */ - b_value= get_datetime_value(thd, &b, &b_cache, *a, &b_is_null); + b_value= get_datetime_value(0, &b, &b_cache, *a, &b_is_null); if (b_is_null) return -1; @@ -982,10 +984,10 @@ int Arg_comparator::compare_e_datetime() longlong a_value, b_value; /* Get DATE/DATETIME/TIME value of the 'a' item. */ - a_value= get_datetime_value(thd, &a, &a_cache, *b, &a_is_null); + a_value= get_datetime_value(0, &a, &a_cache, *b, &a_is_null); /* Get DATE/DATETIME/TIME value of the 'b' item. */ - b_value= get_datetime_value(thd, &b, &b_cache, *a, &b_is_null); + b_value= get_datetime_value(0, &b, &b_cache, *a, &b_is_null); return a_is_null || b_is_null ? a_is_null == b_is_null : a_value == b_value; } @@ -3600,7 +3602,7 @@ void in_datetime::set(uint pos,Item *item) bool is_null; struct packed_longlong *buff= &((packed_longlong*) base)[pos]; - buff->val= get_datetime_value(thd, &tmp_item, 0, warn_item, &is_null); + buff->val= get_datetime_value(0, &tmp_item, 0, warn_item, &is_null); buff->unsigned_flag= 1L; } @@ -3608,7 +3610,7 @@ uchar *in_datetime::get_value(Item *item) { bool is_null; Item **tmp_item= lval_cache ? &lval_cache : &item; - tmp.val= get_datetime_value(thd, &tmp_item, &lval_cache, warn_item, &is_null); + tmp.val= get_datetime_value(0, &tmp_item, &lval_cache, warn_item, &is_null); if (item->null_value) return 0; tmp.unsigned_flag= 1L; @@ -3852,7 +3854,7 @@ void cmp_item_datetime::store_value(Item *item) { bool is_null; Item **tmp_item= lval_cache ? &lval_cache : &item; - value= get_datetime_value(thd, &tmp_item, &lval_cache, warn_item, &is_null); + value= get_datetime_value(0, &tmp_item, &lval_cache, warn_item, &is_null); } @@ -3861,7 +3863,7 @@ int cmp_item_datetime::cmp(Item *arg) bool is_null; Item **tmp_item= &arg; return value != - get_datetime_value(thd, &tmp_item, 0, warn_item, &is_null); + get_datetime_value(0, &tmp_item, 0, warn_item, &is_null); } diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h index 0194f9cd0e0..a8befa47b95 100644 --- a/sql/item_cmpfunc.h +++ b/sql/item_cmpfunc.h @@ -44,7 +44,6 @@ class Arg_comparator: public Sql_alloc Arg_comparator *comparators; // used only for compare_row() double precision; /* Fields used in DATE/DATETIME comparison. */ - THD *thd; Item *a_cache, *b_cache; // Cached values of a and b items // when one of arguments is NULL. public: @@ -52,10 +51,10 @@ public: /* Allow owner function to use string buffers. */ String value1, value2; - Arg_comparator(): set_null(TRUE), comparators(0), thd(0), + Arg_comparator(): set_null(TRUE), comparators(0), a_cache(0), b_cache(0) {}; Arg_comparator(Item **a1, Item **a2): a(a1), b(a2), set_null(TRUE), - comparators(0), thd(0), a_cache(0), b_cache(0) {}; + comparators(0), a_cache(0), b_cache(0) {}; int set_compare_func(Item_result_field *owner, Item_result type); inline int set_compare_func(Item_result_field *owner_arg) @@ -944,15 +943,13 @@ public: class in_datetime :public in_longlong { public: - THD *thd; /* An item used to issue warnings. */ Item *warn_item; /* Cache for the left item. */ Item *lval_cache; in_datetime(Item *warn_item_arg, uint elements) - :in_longlong(elements), thd(current_thd), warn_item(warn_item_arg), - lval_cache(0) {}; + :in_longlong(elements), warn_item(warn_item_arg), lval_cache(0) {}; void set(uint pos,Item *item); uchar *get_value(Item *item); Item* create_item() @@ -1112,14 +1109,13 @@ class cmp_item_datetime :public cmp_item { longlong value; public: - THD *thd; /* Item used for issuing warnings. */ Item *warn_item; /* Cache for the left item. */ Item *lval_cache; cmp_item_datetime(Item *warn_item_arg) - :thd(current_thd), warn_item(warn_item_arg), lval_cache(0) {} + : warn_item(warn_item_arg), lval_cache(0) {} void store_value(Item *item); int cmp(Item *arg); int compare(cmp_item *ci); From 798fcb541698cbf51f1ee33f44b023c11dc2b784 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 14 Jan 2017 20:55:33 +0100 Subject: [PATCH 094/258] bugfix: cmp_item_row::alloc_comparators() allocated on the wrong arena it used current_thd->alloc() and allocated on the thd's execution arena, not on table->expr_arena. Remove THD::arena_for_cached_items that is temporarily set in update_virtual_fields(), and replaces THD arena in get_datetime_value(). Instead set THD arena to table->expr_arena for the whole duration of update_virtual_fields() --- mysql-test/suite/vcol/r/wrong_arena.result | 19 +++++++++++++------ mysql-test/suite/vcol/t/wrong_arena.test | 4 +++- sql/item_cmpfunc.cc | 5 ----- sql/sql_class.cc | 1 - sql/sql_class.h | 19 ------------------- sql/table.cc | 6 ++++-- 6 files changed, 20 insertions(+), 34 deletions(-) diff --git a/mysql-test/suite/vcol/r/wrong_arena.result b/mysql-test/suite/vcol/r/wrong_arena.result index d542c82458e..af41ea89ab5 100644 --- a/mysql-test/suite/vcol/r/wrong_arena.result +++ b/mysql-test/suite/vcol/r/wrong_arena.result @@ -2,7 +2,9 @@ create table t1 (a datetime, # get_datetime_value b int as (a > 1), # Arg_comparator c int as (a in (1,2,3)), # in_datetime -d int as ((a,a) in ((1,1),(2,1),(NULL,1))) # cmp_item_datetime +d int as ((a,a) in ((1,1),(2,1),(NULL,1))), # cmp_item_datetime +# other issues +e int as ((a,1) in ((1,1),(2,1),(NULL,1))) # cmp_item_row::alloc_comparators() ); Warnings: Warning 1292 Incorrect datetime value: '1' @@ -14,7 +16,8 @@ t1 CREATE TABLE `t1` ( `a` datetime DEFAULT NULL, `b` int(11) AS (a > 1) VIRTUAL, `c` int(11) AS (a in (1,2,3)) VIRTUAL, - `d` int(11) AS ((a,a) in ((1,1),(2,1),(NULL,1))) VIRTUAL + `d` int(11) AS ((a,a) in ((1,1),(2,1),(NULL,1))) VIRTUAL, + `e` int(11) AS ((a,1) in ((1,1),(2,1),(NULL,1))) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 Warnings: Warning 1292 Incorrect datetime value: '1' @@ -22,18 +25,22 @@ Warning 1292 Incorrect datetime value: '2' Warning 1292 Incorrect datetime value: '3' insert t1 (a) values ('2010-10-10 10:10:10'); select * from t1; -a b c d -2010-10-10 10:10:10 1 0 0 +a b c d e +2010-10-10 10:10:10 1 0 0 NULL Warnings: Warning 1292 Incorrect datetime value: '1' Warning 1292 Incorrect datetime value: '1' Warning 1292 Incorrect datetime value: '2' Warning 1292 Incorrect datetime value: '1' +Warning 1292 Incorrect datetime value: '1' +Warning 1292 Incorrect datetime value: '2' select * from t1; -a b c d -2010-10-10 10:10:10 1 0 0 +a b c d e +2010-10-10 10:10:10 1 0 0 NULL Warnings: Warning 1292 Incorrect datetime value: '1' Warning 1292 Incorrect datetime value: '2' Warning 1292 Incorrect datetime value: '1' +Warning 1292 Incorrect datetime value: '1' +Warning 1292 Incorrect datetime value: '2' drop table t1; diff --git a/mysql-test/suite/vcol/t/wrong_arena.test b/mysql-test/suite/vcol/t/wrong_arena.test index 8bf06bdb9bd..4276437f446 100644 --- a/mysql-test/suite/vcol/t/wrong_arena.test +++ b/mysql-test/suite/vcol/t/wrong_arena.test @@ -10,7 +10,9 @@ create table t1 (a datetime, # get_datetime_value b int as (a > 1), # Arg_comparator c int as (a in (1,2,3)), # in_datetime - d int as ((a,a) in ((1,1),(2,1),(NULL,1))) # cmp_item_datetime + d int as ((a,a) in ((1,1),(2,1),(NULL,1))), # cmp_item_datetime + # other issues + e int as ((a,1) in ((1,1),(2,1),(NULL,1))) # cmp_item_row::alloc_comparators() ); show create table t1; connect con1, localhost, root; diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 46566206094..ebe088e5092 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -921,12 +921,7 @@ get_datetime_value(THD *thd, Item ***item_arg, Item **cache_arg, if (!thd) thd= current_thd; - Query_arena backup; - Query_arena *save_arena= thd->switch_to_arena_for_cached_items(&backup); Item_cache_temporal *cache= new Item_cache_temporal(f_type); - if (save_arena) - thd->set_query_arena(save_arena); - cache->store_packed(value, item); *cache_arg= cache; *item_arg= cache_arg; diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 62339b2690a..93af4d3bb4d 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -957,7 +957,6 @@ THD::THD() m_internal_handler= NULL; m_binlog_invoker= FALSE; - arena_for_cached_items= 0; memset(&invoker_user, 0, sizeof(invoker_user)); memset(&invoker_host, 0, sizeof(invoker_host)); prepare_derived_at_open= FALSE; diff --git a/sql/sql_class.h b/sql/sql_class.h index 27bc40e3761..5dd7cd18a5d 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -3102,26 +3102,7 @@ public: } } -private: - /* - This reference points to the table arena when the expression - for a virtual column is being evaluated - */ - Query_arena *arena_for_cached_items; - public: - void reset_arena_for_cached_items(Query_arena *new_arena) - { - arena_for_cached_items= new_arena; - } - Query_arena *switch_to_arena_for_cached_items(Query_arena *backup) - { - if (!arena_for_cached_items) - return 0; - set_n_backup_active_arena(arena_for_cached_items, backup); - return backup; - } - void clear_wakeup_ready() { wakeup_ready= false; } /* Sleep waiting for others to wake us up with signal_wakeup_ready(). diff --git a/sql/table.cc b/sql/table.cc index 1330560b6b6..9d52d5f87a2 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6575,7 +6575,9 @@ int update_virtual_fields(THD *thd, TABLE *table, int error __attribute__ ((unused))= 0; DBUG_ASSERT(table && table->vfield); - thd->reset_arena_for_cached_items(table->expr_arena); + Query_arena backup_arena; + thd->set_n_backup_active_arena(table->expr_arena, &backup_arena); + /* Iterate over virtual fields in the table */ for (vfield_ptr= table->vfield; *vfield_ptr; vfield_ptr++) { @@ -6593,7 +6595,7 @@ int update_virtual_fields(THD *thd, TABLE *table, DBUG_PRINT("info", ("field '%s' - skipped", vfield->field_name)); } } - thd->reset_arena_for_cached_items(0); + thd->restore_active_arena(table->expr_arena, &backup_arena); DBUG_RETURN(0); } From b948b5f7c64c6430d98dc31b7e9f71d990b40ec1 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 14 Jan 2017 21:23:00 +0100 Subject: [PATCH 095/258] bugfix: Item_func_min_max stored thd internally It was used for get_datetime_value() and for thd->is_error(). But in fact, get_datetime_value() never used thd argument, because the cache ptr argument was NULL. And thd->is_error() check was not needed at that place at all. --- mysql-test/suite/vcol/r/wrong_arena.result | 15 +++++++++++++++ mysql-test/suite/vcol/t/wrong_arena.test | 11 +++++++++++ sql/item_func.cc | 7 ++----- sql/item_func.h | 1 - 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/mysql-test/suite/vcol/r/wrong_arena.result b/mysql-test/suite/vcol/r/wrong_arena.result index af41ea89ab5..172b59d6c4c 100644 --- a/mysql-test/suite/vcol/r/wrong_arena.result +++ b/mysql-test/suite/vcol/r/wrong_arena.result @@ -44,3 +44,18 @@ Warning 1292 Incorrect datetime value: '1' Warning 1292 Incorrect datetime value: '1' Warning 1292 Incorrect datetime value: '2' drop table t1; +create table t1 (a datetime, +b datetime as (least(a,1)) # Item_func_min_max::get_date +); +insert t1 (a) values ('2010-10-10 10:10:10'); +select * from t1; +a b +2010-10-10 10:10:10 0000-00-00 00:00:00 +Warnings: +Warning 1292 Incorrect datetime value: '1' +select * from t1; +a b +2010-10-10 10:10:10 0000-00-00 00:00:00 +Warnings: +Warning 1292 Incorrect datetime value: '1' +drop table t1; diff --git a/mysql-test/suite/vcol/t/wrong_arena.test b/mysql-test/suite/vcol/t/wrong_arena.test index 4276437f446..484f1fe685d 100644 --- a/mysql-test/suite/vcol/t/wrong_arena.test +++ b/mysql-test/suite/vcol/t/wrong_arena.test @@ -22,3 +22,14 @@ disconnect con1; connection default; select * from t1; drop table t1; + +connect con1, localhost, root; +create table t1 (a datetime, + b datetime as (least(a,1)) # Item_func_min_max::get_date +); +insert t1 (a) values ('2010-10-10 10:10:10'); +select * from t1; +disconnect con1; +connection default; +select * from t1; +drop table t1; diff --git a/sql/item_func.cc b/sql/item_func.cc index 89d3cd9e32a..cfccd66ea8a 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -2856,7 +2856,6 @@ void Item_func_min_max::fix_length_and_dec() decimals=0; max_length=0; maybe_null=0; - thd= current_thd; cmp_type=args[0]->result_type(); for (uint i=0 ; i < arg_count ; i++) @@ -2929,13 +2928,11 @@ bool Item_func_min_max::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) { Item **arg= args + i; bool is_null; - longlong res= get_datetime_value(thd, &arg, 0, compare_as_dates, &is_null); + longlong res= get_datetime_value(0, &arg, 0, compare_as_dates, &is_null); /* Check if we need to stop (because of error or KILL) and stop the loop */ - if (thd->is_error() || args[i]->null_value) - { + if (args[i]->null_value) return (null_value= 1); - } if (i == 0 || (res < min_max ? cmp_sign : -cmp_sign) > 0) min_max= res; diff --git a/sql/item_func.h b/sql/item_func.h index 0da38e22c7f..d60801745fe 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -1068,7 +1068,6 @@ class Item_func_min_max :public Item_func int cmp_sign; /* An item used for issuing warnings while string to DATETIME conversion. */ Item *compare_as_dates; - THD *thd; protected: enum_field_types cached_field_type; public: From eddbae422bd3430f684d5cd287ca522467040c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Mon, 16 Jan 2017 12:49:22 +0200 Subject: [PATCH 096/258] MDEV-11712: ArmHF EXPLAIN JSON garbage longlong values printed Make sure printing with snprintf uses the correct typed parameters. --- sql/field.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/field.cc b/sql/field.cc index 58def13f5f3..ea56489543d 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -10600,7 +10600,7 @@ Create_field::Create_field(THD *thd, Field *old_field, Field *orig_field) if (length != 4) { char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1]; - my_snprintf(buff, sizeof(buff), "YEAR(%lu)", length); + my_snprintf(buff, sizeof(buff), "YEAR(%llu)", length); push_warning_printf(thd, Sql_condition::WARN_LEVEL_NOTE, ER_WARN_DEPRECATED_SYNTAX, ER_THD(thd, ER_WARN_DEPRECATED_SYNTAX), From 6560e9c3a86383cb3af1333987abd39aae6af8b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Mon, 16 Jan 2017 12:50:12 +0200 Subject: [PATCH 097/258] MDEV-11711: ArmHF EXPLAIN JSON garbage longlong values printed Make sure printing with snprintf uses the correct typed parameters. --- sql/my_json_writer.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/my_json_writer.cc b/sql/my_json_writer.cc index d36fdd1192a..135ce353552 100644 --- a/sql/my_json_writer.cc +++ b/sql/my_json_writer.cc @@ -125,7 +125,7 @@ void Json_writer::start_element() void Json_writer::add_ll(longlong val) { char buf[64]; - my_snprintf(buf, sizeof(buf), "%ld", val); + my_snprintf(buf, sizeof(buf), "%lld", val); add_unquoted_str(buf); } @@ -135,16 +135,16 @@ void Json_writer::add_size(longlong val) { char buf[64]; if (val < 1024) - my_snprintf(buf, sizeof(buf), "%ld", val); + my_snprintf(buf, sizeof(buf), "%lld", val); else if (val < 1024*1024*16) { /* Values less than 16MB are specified in KB for precision */ - size_t len= my_snprintf(buf, sizeof(buf), "%ld", val/1024); + size_t len= my_snprintf(buf, sizeof(buf), "%lld", val/1024); strcpy(buf + len, "Kb"); } else { - size_t len= my_snprintf(buf, sizeof(buf), "%ld", val/(1024*1024)); + size_t len= my_snprintf(buf, sizeof(buf), "%lld", val/(1024*1024)); strcpy(buf + len, "Mb"); } add_str(buf); From d807e41511c92a1497f8550fdee6557eb856218a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 17 Jan 2017 00:37:20 +0200 Subject: [PATCH 098/258] Post merge fix sysvars_innodb for xtradb --- mysql-test/suite/sys_vars/t/sysvars_innodb.test | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mysql-test/suite/sys_vars/t/sysvars_innodb.test b/mysql-test/suite/sys_vars/t/sysvars_innodb.test index bd8442b6a44..8faa9bce31a 100644 --- a/mysql-test/suite/sys_vars/t/sysvars_innodb.test +++ b/mysql-test/suite/sys_vars/t/sysvars_innodb.test @@ -3,6 +3,11 @@ --source include/not_valgrind.inc --source include/word_size.inc +if (`select plugin_auth_version <= "5.6.34-79.1" from information_schema.plugins where plugin_name='innodb'`) +{ + --skip Not fixed in XtraDB as of 10.1.21-MariaDB or earlier +} + --vertical_results --replace_regex /^\/\S+/PATH/ /\.\//PATH/ select * from information_schema.system_variables From 1e192e901ccf34454967cc3f62a71432c50f2c88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 17 Jan 2017 02:35:16 +0200 Subject: [PATCH 099/258] Post merge review fixes * Remove duplicate lines from tests * Use thd instead of current_thd * Remove extra wsrep_binlog_format_names * Correctly merge union patch from 5.5 wrt duplicate rows. * Correctly merge SELinux changes into 10.1 --- .gitignore | 2 +- .../suite/rpl/r/rpl_row_mysqlbinlog.result | 1 - .../suite/rpl/t/rpl_row_mysqlbinlog.test | 2 - scripts/mysqld_safe.sh | 4 - sql/item.cc | 2 +- sql/mysqld.cc | 4 - sql/sql_select.cc | 2 +- support-files/CMakeLists.txt | 20 ++- support-files/SELinux/CMakeLists.txt | 35 ----- support-files/SELinux/rhel4-mysql.fc | 41 ----- support-files/SELinux/rhel4-mysql.te | 147 ------------------ .../selinux/mysqld-safe.te} | 0 support-files/rpm/server-postin.sh | 2 +- 13 files changed, 23 insertions(+), 239 deletions(-) delete mode 100644 support-files/SELinux/CMakeLists.txt delete mode 100644 support-files/SELinux/rhel4-mysql.fc delete mode 100644 support-files/SELinux/rhel4-mysql.te rename support-files/{SELinux/centos6-mariadb.te => policy/selinux/mysqld-safe.te} (100%) diff --git a/.gitignore b/.gitignore index c76b08477c9..5d882f268ff 100644 --- a/.gitignore +++ b/.gitignore @@ -218,7 +218,7 @@ support-files/mysql.spec support-files/mysqld_multi.server support-files/wsrep.cnf support-files/wsrep_notify -support-files/SELinux/centos6-mariadb.pp +support-files/policy/selinux/mysqld-safe.pp tags tests/async_queries tests/bug25714 diff --git a/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result b/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result index 08a2237df39..7c7c6997b07 100644 --- a/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result +++ b/mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result @@ -1,7 +1,6 @@ include/master-slave.inc [connection master] ---Setup Section -- ----Setup Section -- set timestamp=1000000000; CREATE TABLE t1(word VARCHAR(20)); CREATE TABLE t2(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY); diff --git a/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test b/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test index 6f17824f43e..678679f0cf1 100644 --- a/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test +++ b/mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test @@ -11,8 +11,6 @@ --echo ---Setup Section -- ---echo ---Setup Section -- - # we need this for getting fixed timestamps inside of this test set timestamp=1000000000; diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 8faa11467d4..59f69e79a55 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -975,10 +975,6 @@ cmd="$cmd $args" # Avoid 'nohup: ignoring input' warning test -n "$NOHUP_NICENESS" && cmd="$cmd < /dev/null" -# close stdout and stderr, everything goes to $logging now -exec 1>&- -exec 2>&- - log_notice "Starting $MYSQLD daemon with databases from $DATADIR" # variable to track the current number of "fast" (a.k.a. subsecond) restarts diff --git a/sql/item.cc b/sql/item.cc index 2e7bc8e20c0..643e5c85df5 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -1133,7 +1133,7 @@ Item *Item_cache::safe_charset_converter(THD *thd, CHARSET_INFO *tocs) if (conv == example) return this; Item_cache *cache; - if (!conv || conv->fix_fields(current_thd, (Item **) NULL) || + if (!conv || conv->fix_fields(thd, (Item **) NULL) || !(cache= new (thd->mem_root) Item_cache_str(thd, conv))) return NULL; // Safe conversion is not possible, or OEM cache->setup(thd, conv); diff --git a/sql/mysqld.cc b/sql/mysqld.cc index b0bb0e5cd22..5ff56daf7c2 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -480,10 +480,6 @@ ulong opt_binlog_rows_event_max_size; my_bool opt_master_verify_checksum= 0; my_bool opt_slave_sql_verify_checksum= 1; const char *binlog_format_names[]= {"MIXED", "STATEMENT", "ROW", NullS}; -#ifdef WITH_WSREP -const char *wsrep_binlog_format_names[]= - {"MIXED", "STATEMENT", "ROW", "NONE", NullS}; -#endif /* WITH_WSREP */ volatile sig_atomic_t calling_initgroups= 0; /**< Used in SIGSEGV handler. */ uint mysqld_port, test_flags, select_errors, dropping_tables, ha_open_options; uint mysqld_extra_port; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index f299e863bf2..1bd101bbe6f 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -17972,7 +17972,7 @@ do_select(JOIN *join,List *fields,TABLE *table,Procedure *procedure) error= NESTED_LOOP_OK; /* select_limit used */ } - join->thd->limit_found_rows= join->send_records; + join->thd->limit_found_rows= join->send_records - join->duplicate_rows; if (error == NESTED_LOOP_NO_MORE_ROWS || join->thd->killed == ABORT_QUERY) error= NESTED_LOOP_OK; diff --git a/support-files/CMakeLists.txt b/support-files/CMakeLists.txt index e2c449d3b80..40a28e67625 100644 --- a/support-files/CMakeLists.txt +++ b/support-files/CMakeLists.txt @@ -56,10 +56,28 @@ IF(UNIX) INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${script} DESTINATION ${inst_location} COMPONENT Server_Scripts) ENDFOREACH() + + FIND_PROGRAM(CHECKMODULE checkmodule) + FIND_PROGRAM(SEMODULE_PACKAGE semodule_package) + MARK_AS_ADVANCED(CHECKMODULE SEMODULE_PACKAGE) + + # Build pp files in policy/selinux + IF(CHECKMODULE AND SEMODULE_PACKAGE) + FOREACH(pol mysqld-safe) + SET(src ${CMAKE_CURRENT_SOURCE_DIR}/policy/selinux/${pol}.te) + SET(mod ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${pol}-pp.dir/${pol}.mod) + SET(out ${CMAKE_CURRENT_SOURCE_DIR}/policy/selinux/${pol}.pp) + ADD_CUSTOM_COMMAND(OUTPUT ${out} + COMMAND ${CHECKMODULE} -M -m ${src} -o ${mod} + COMMAND ${SEMODULE_PACKAGE} -m ${mod} -o ${out} + DEPENDS ${src}) + ADD_CUSTOM_TARGET(${pol}-pp ALL DEPENDS ${out}) + ENDFOREACH() + ENDIF() + IF(INSTALL_SUPPORTFILESDIR) INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles) INSTALL(DIRECTORY policy DESTINATION ${inst_location} COMPONENT SupportFiles) - ADD_SUBDIRECTORY(SELinux) ENDIF() CONFIGURE_FILE(mariadb.pc.in ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc @ONLY) diff --git a/support-files/SELinux/CMakeLists.txt b/support-files/SELinux/CMakeLists.txt deleted file mode 100644 index e3cdb26ca8f..00000000000 --- a/support-files/SELinux/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (c) 2017, MariaDB -# -# 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 - -FIND_PROGRAM(CHECKMODULE checkmodule) -FIND_PROGRAM(SEMODULE_PACKAGE semodule_package) -MARK_AS_ADVANCED(CHECKMODULE SEMODULE_PACKAGE) - -SET(params DESTINATION ${INSTALL_SUPPORTFILESDIR}/SELinux COMPONENT SupportFiles) - -IF(CHECKMODULE AND SEMODULE_PACKAGE) - FOREACH(pol centos6-mariadb) - SET(src ${CMAKE_CURRENT_SOURCE_DIR}/${pol}.te) - SET(mod ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${pol}-pp.dir/${pol}.mod) - SET(out ${CMAKE_CURRENT_BINARY_DIR}/${pol}.pp) - ADD_CUSTOM_COMMAND(OUTPUT ${out} - COMMAND ${CHECKMODULE} -M -m ${src} -o ${mod} - COMMAND ${SEMODULE_PACKAGE} -m ${mod} -o ${out} - DEPENDS ${src}) - ADD_CUSTOM_TARGET(${pol}-pp ALL DEPENDS ${out}) - INSTALL(FILES ${out} ${params}) - ENDFOREACH() -ENDIF() -INSTALL(FILES centos6-mariadb.te rhel4-mysql.fc rhel4-mysql.te ${params}) diff --git a/support-files/SELinux/rhel4-mysql.fc b/support-files/SELinux/rhel4-mysql.fc deleted file mode 100644 index aa0fced4bbc..00000000000 --- a/support-files/SELinux/rhel4-mysql.fc +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (C) 2007 MySQL AB -# Use is subject to license terms -# -# 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 Street, Fifth Floor, Boston, MA 02110-1301, USA - -# MySQL Database Server - -# -# /etc -# -/etc/my\.cnf -- gen_context(system_u:object_r:mysqld_etc_t,s0) -/etc/mysql(/.*)? gen_context(system_u:object_r:mysqld_etc_t,s0) - -# -# /usr -# Red Hat compatibility -/usr/libexec/mysqld -- gen_context(system_u:object_r:mysqld_exec_t,s0) - -# MySQL AB compatibility -/usr/sbin/mysqld(-max)? -- gen_context(system_u:object_r:mysqld_exec_t,s0) - -# -# /var -# -/var/lib/mysql(/.*)? gen_context(system_u:object_r:mysqld_db_t,s0) -/var/lib/mysql/mysql\.sock -s gen_context(system_u:object_r:mysqld_var_run_t,s0) - -/var/log/mysql.* -- gen_context(system_u:object_r:mysqld_log_t,s0) - -/var/run/mysqld(/.*)? gen_context(system_u:object_r:mysqld_var_run_t,s0) diff --git a/support-files/SELinux/rhel4-mysql.te b/support-files/SELinux/rhel4-mysql.te deleted file mode 100644 index d2609244640..00000000000 --- a/support-files/SELinux/rhel4-mysql.te +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright (C) 2007 MySQL AB -# Use is subject to license terms -# -# 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 Street, Fifth Floor, Boston, MA 02110-1301, USA - -policy_module(mysql,1.0.0) - -######################################## -# -# Declarations -# - -type mysqld_t; -type mysqld_exec_t; -init_daemon_domain(mysqld_t,mysqld_exec_t) - -type mysqld_var_run_t; -files_pid_file(mysqld_var_run_t) - -type mysqld_db_t; -files_type(mysqld_db_t) - -type mysqld_etc_t alias etc_mysqld_t; -files_config_file(mysqld_etc_t) - -type mysqld_log_t; -logging_log_file(mysqld_log_t) - -type mysqld_tmp_t; -files_tmp_file(mysqld_tmp_t) - -######################################## -# -# Local policy -# - -allow mysqld_t self:capability { dac_override setgid setuid sys_resource net_bind_service }; -dontaudit mysqld_t self:capability sys_tty_config; -allow mysqld_t self:process { setsched getsched setrlimit signal_perms rlimitinh }; -allow mysqld_t self:fifo_file { read write }; -allow mysqld_t self:unix_stream_socket create_stream_socket_perms; -allow mysqld_t self:tcp_socket create_stream_socket_perms; -allow mysqld_t self:udp_socket create_socket_perms; - -allow mysqld_t mysqld_db_t:dir create_dir_perms; -allow mysqld_t mysqld_db_t:file create_file_perms; -allow mysqld_t mysqld_db_t:lnk_file create_lnk_perms; -files_var_lib_filetrans(mysqld_t,mysqld_db_t,{ dir file }) - -allow mysqld_t mysqld_etc_t:file { getattr read }; -allow mysqld_t mysqld_etc_t:lnk_file { getattr read }; -allow mysqld_t mysqld_etc_t:dir list_dir_perms; - -allow mysqld_t mysqld_log_t:file create_file_perms; -logging_log_filetrans(mysqld_t,mysqld_log_t,file) - -allow mysqld_t mysqld_tmp_t:dir create_dir_perms; -allow mysqld_t mysqld_tmp_t:file create_file_perms; -files_tmp_filetrans(mysqld_t, mysqld_tmp_t, { file dir }) - -allow mysqld_t mysqld_var_run_t:dir rw_dir_perms; -allow mysqld_t mysqld_var_run_t:sock_file create_file_perms; -allow mysqld_t mysqld_var_run_t:file create_file_perms; -files_pid_filetrans(mysqld_t,mysqld_var_run_t,file) - -kernel_read_system_state(mysqld_t) -kernel_read_kernel_sysctls(mysqld_t) - -corenet_non_ipsec_sendrecv(mysqld_t) -corenet_tcp_sendrecv_all_if(mysqld_t) -corenet_udp_sendrecv_all_if(mysqld_t) -corenet_tcp_sendrecv_all_nodes(mysqld_t) -corenet_udp_sendrecv_all_nodes(mysqld_t) -corenet_tcp_sendrecv_all_ports(mysqld_t) -corenet_udp_sendrecv_all_ports(mysqld_t) -corenet_tcp_bind_all_nodes(mysqld_t) -corenet_tcp_bind_mysqld_port(mysqld_t) -corenet_tcp_connect_mysqld_port(mysqld_t) -corenet_sendrecv_mysqld_client_packets(mysqld_t) -corenet_sendrecv_mysqld_server_packets(mysqld_t) - -dev_read_sysfs(mysqld_t) - -fs_getattr_all_fs(mysqld_t) -fs_search_auto_mountpoints(mysqld_t) - -term_dontaudit_use_console(mysqld_t) - -domain_use_interactive_fds(mysqld_t) - -files_getattr_var_lib_dirs(mysqld_t) -files_read_etc_runtime_files(mysqld_t) -files_read_etc_files(mysqld_t) -files_read_usr_files(mysqld_t) -files_search_var_lib(mysqld_t) - -auth_use_nsswitch(mysqld_t) - -init_use_fds(mysqld_t) -init_use_script_ptys(mysqld_t) - -libs_use_ld_so(mysqld_t) -libs_use_shared_libs(mysqld_t) - -logging_send_syslog_msg(mysqld_t) - -miscfiles_read_localization(mysqld_t) - -sysnet_read_config(mysqld_t) - -userdom_dontaudit_use_unpriv_user_fds(mysqld_t) -# for /root/.my.cnf - should not be needed: -userdom_read_sysadm_home_content_files(mysqld_t) - -ifdef(`distro_redhat',` - # because Fedora has the sock_file in the database directory - type_transition mysqld_t mysqld_db_t:sock_file mysqld_var_run_t; -') - -ifdef(`targeted_policy',` - term_dontaudit_use_unallocated_ttys(mysqld_t) - term_dontaudit_use_generic_ptys(mysqld_t) - files_dontaudit_read_root_files(mysqld_t) -') - -optional_policy(` - daemontools_service_domain(mysqld_t, mysqld_exec_t) -') - -optional_policy(` - seutil_sigchld_newrole(mysqld_t) -') - -optional_policy(` - udev_read_db(mysqld_t) -') diff --git a/support-files/SELinux/centos6-mariadb.te b/support-files/policy/selinux/mysqld-safe.te similarity index 100% rename from support-files/SELinux/centos6-mariadb.te rename to support-files/policy/selinux/mysqld-safe.te diff --git a/support-files/rpm/server-postin.sh b/support-files/rpm/server-postin.sh index fca66a96c04..bdce35b1d0e 100644 --- a/support-files/rpm/server-postin.sh +++ b/support-files/rpm/server-postin.sh @@ -96,7 +96,7 @@ if [ -f /etc/redhat-release ] ; then fi if grep 'CentOS release 6' /etc/redhat-release >/dev/null 2>&1; then if [ -x /usr/sbin/semodule ] ; then - /usr/sbin/semodule -i /usr/share/mysql/SELinux/centos6-mariadb.pp + /usr/sbin/semodule -i /usr/share/mysql/policy/selinux/mysqld-safe.pp fi fi fi From 3e589d4b8edf3d435a44cf71419a8355fe284f8e Mon Sep 17 00:00:00 2001 From: Kristian Nielsen Date: Tue, 17 Jan 2017 12:24:55 +0100 Subject: [PATCH 100/258] MDEV-11811: dual master with parallel replication memory leak in write master Gtid_list_log_event::do_apply_event() did not free_root(thd->mem_root). It can allocate on this in record_gtid(), and in some scenarios there is nothing else that does free_root(), leading to temporary memory leak until stop of SQL thread. One scenario is in circular replication with only one master active. The active master receives only its own events on the slave, all of which are ignored. But whenever the SQL thread catches up with the IO thread, a Gtid_list_log_event is applied, leading to the leak. --- sql/log_event.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/log_event.cc b/sql/log_event.cc index d311297f8a8..14f6bb20b47 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -6915,6 +6915,7 @@ Gtid_list_log_event::do_apply_event(rpl_group_info *rgi) rli->abort_slave= true; rli->stop_for_until= true; } + free_root(thd->mem_root, MYF(MY_KEEP_PREALLOC)); return ret; } From 30a9ac4250e1b19754dd0ae43705108cc9de2ab0 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Tue, 17 Jan 2017 15:32:41 +0400 Subject: [PATCH 101/258] MDEV-10956 Strict Password Validation Breaks Replication. strict_password_validation variable now has no effect in the slave thread. --- .../r/rpl_strict_password_validation.result | 13 ++++++++++ .../rpl/t/rpl_strict_password_validation.test | 24 +++++++++++++++++++ sql/sql_acl.cc | 9 +++---- 3 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 mysql-test/suite/rpl/r/rpl_strict_password_validation.result create mode 100644 mysql-test/suite/rpl/t/rpl_strict_password_validation.test diff --git a/mysql-test/suite/rpl/r/rpl_strict_password_validation.result b/mysql-test/suite/rpl/r/rpl_strict_password_validation.result new file mode 100644 index 00000000000..071d730fa72 --- /dev/null +++ b/mysql-test/suite/rpl/r/rpl_strict_password_validation.result @@ -0,0 +1,13 @@ +include/master-slave.inc +[connection master] +install soname "simple_password_check"; +select @@strict_password_validation; +@@strict_password_validation +1 +create user foo1 identified by password '11111111111111111111111111111111111111111'; +set password for foo1 = PASSWORD('PLAINtext-password!!99'); +drop user foo1; +create user foo1 identified by password '11111111111111111111111111111111111111111'; +ERROR HY000: The MariaDB server is running with the --strict-password-validation option so it cannot execute this statement +uninstall plugin simple_password_check; +include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_strict_password_validation.test b/mysql-test/suite/rpl/t/rpl_strict_password_validation.test new file mode 100644 index 00000000000..c4dda1e1269 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_strict_password_validation.test @@ -0,0 +1,24 @@ +if (!$SIMPLE_PASSWORD_CHECK_SO) { + skip No SIMPLE_PASSWORD_CHECK plugin; +} + +--source include/master-slave.inc + + +--connection slave +install soname "simple_password_check"; +select @@strict_password_validation; + +--connection master +create user foo1 identified by password '11111111111111111111111111111111111111111'; +set password for foo1 = PASSWORD('PLAINtext-password!!99'); +drop user foo1; +--sync_slave_with_master + +--connection slave +--error ER_OPTION_PREVENTS_STATEMENT +create user foo1 identified by password '11111111111111111111111111111111111111111'; + +uninstall plugin simple_password_check; + +--source include/rpl_end.inc diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 2accb3abc91..912930d60f3 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -895,7 +895,7 @@ static my_bool do_validate(THD *, plugin_ref plugin, void *arg) } -static bool validate_password(LEX_USER *user) +static bool validate_password(LEX_USER *user, THD *thd) { if (user->pwtext.length || !user->pwhash.length) { @@ -911,7 +911,8 @@ static bool validate_password(LEX_USER *user) } else { - if (strict_password_validation && has_validation_plugins()) + if (!thd->slave_thread && + strict_password_validation && has_validation_plugins()) { my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--strict-password-validation"); return true; @@ -2750,7 +2751,7 @@ bool check_change_password(THD *thd, LEX_USER *user) LEX_USER *real_user= get_current_user(thd, user); if (fix_and_copy_user(real_user, user, thd) || - validate_password(real_user)) + validate_password(real_user, thd)) return true; *user= *real_user; @@ -3465,7 +3466,7 @@ static int replace_user_table(THD *thd, TABLE *table, LEX_USER &combo, } if (!old_row_exists || combo.pwtext.length || combo.pwhash.length) - if (!handle_as_role && validate_password(&combo)) + if (!handle_as_role && validate_password(&combo, thd)) goto end; /* Update table columns with new privileges */ From e4e801d4789d3992c1f04b260de3af4c9e5e6b0c Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 17 Jan 2017 11:15:21 +0100 Subject: [PATCH 102/258] connect: compilation errors and few obvious bugs --- storage/connect/filamzip.cpp | 8 ++++---- storage/connect/ioapi.h | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/storage/connect/filamzip.cpp b/storage/connect/filamzip.cpp index 65013e170e4..22fe95aebad 100644 --- a/storage/connect/filamzip.cpp +++ b/storage/connect/filamzip.cpp @@ -97,7 +97,7 @@ loopStart: if (!*++pat) return TRUE; goto loopStart; default: - if (mapCaseTable[*s] != mapCaseTable[*p]) + if (mapCaseTable[(unsigned)*s] != mapCaseTable[(unsigned)*p]) goto starCheck; break; } /* endswitch */ @@ -151,7 +151,7 @@ int ZIPUTIL::findEntry(PGLOBAL g, bool next) if (rc == UNZ_END_OF_LIST_OF_FILE) return RC_EF; else if (rc != UNZ_OK) { - sprintf(g->Message, "unzGoToNextFile rc = ", rc); + sprintf(g->Message, "unzGoToNextFile rc = %d", rc); return RC_FX; } // endif rc @@ -261,7 +261,7 @@ bool ZIPUTIL::OpenTable(PGLOBAL g, MODE mode, char *fn) fp->Memory = memory; fp->Mode = mode; fp->File = this; - fp->Handle = NULL; + fp->Handle = 0; } // endif fp } else @@ -297,7 +297,7 @@ bool ZIPUTIL::openEntry(PGLOBAL g) memory = new char[size + 1]; if ((rc = unzReadCurrentFile(zipfile, memory, size)) < 0) { - sprintf(g->Message, "unzReadCurrentFile rc = ", rc); + sprintf(g->Message, "unzReadCurrentFile rc = %d", rc); unzCloseCurrentFile(zipfile); free(memory); memory = NULL; diff --git a/storage/connect/ioapi.h b/storage/connect/ioapi.h index 8dcbdb06e35..4fa73002053 100644 --- a/storage/connect/ioapi.h +++ b/storage/connect/ioapi.h @@ -129,8 +129,9 @@ extern "C" { #endif #endif - - +#ifndef OF +#define OF(args) args +#endif typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size)); From 736afe868094b9aa24211c3772fb3b297d62d8fc Mon Sep 17 00:00:00 2001 From: Kristian Nielsen Date: Fri, 13 Jan 2017 11:25:38 +0100 Subject: [PATCH 103/258] mysql_install_db enhancements to facilitate Debian bug#848616 fix In Debian, the default install is made more secure by omitting the anonymous user and by making the root account authenticate by unix socket authentication instead of the default password-less root. However, Debian hard-codes this change in mysql_install_db, which breaks that program for other users. This commit instead implements new general options for mysql_install_db that can be used by anyone to similarly perform a more secure install: --skip-auth-anonymous-user: omits the anonymous user. --auth-root-authentication-method=normal: Keeps the existing behaviour with a password-less root account. Currently on by default. --auth-root-socket-user=USER --auth-root-authentication-method=socket: creates the MariaDB root user with the name USER (defaults to 'root') and using unix socket authentication. This way, only that user has MariaDB root access after install. The idea with --auth-root-authentication-method=normal is that applications that need this behaviour can give that option explicitly. Then eventually we could make --auth-root-authentication-method=socket the default, giving a more secure default installation. Note that it is perfectly possible to do a secure install with --auth-root-authentication-method=normal. For example, installing a private server just for local access by a single OS-level user, by using --skip-networking and putting the connection socket in a location without public access. So it is important to preserve this API for backwards compatibility. --- ...mysql_create_system_tables__no_test.dpatch | 24 +++++------ scripts/mysql_install_db.sh | 40 ++++++++++++++++++- scripts/mysql_system_tables_data.sql | 27 ++++++++----- 3 files changed, 69 insertions(+), 22 deletions(-) diff --git a/debian/patches/33_scripts__mysql_create_system_tables__no_test.dpatch b/debian/patches/33_scripts__mysql_create_system_tables__no_test.dpatch index 6547e4434f1..183212ef678 100755 --- a/debian/patches/33_scripts__mysql_create_system_tables__no_test.dpatch +++ b/debian/patches/33_scripts__mysql_create_system_tables__no_test.dpatch @@ -8,8 +8,8 @@ ## DP: http://bugs.mysql.com/bug.php?id=6901 @DPATCH@ ---- old/scripts/mysql_system_tables_data.sql 2008-12-04 22:59:44.000000000 +0100 -+++ new/scripts/mysql_system_tables_data.sql 2008-12-04 23:00:07.000000000 +0100 +--- a/scripts/mysql_system_tables_data.sql ++++ b/scripts/mysql_system_tables_data.sql @@ -26,16 +26,6 @@ -- a plain character SELECT LOWER( REPLACE((SELECT REPLACE(@@hostname,'_','\_')),'%','\%') )INTO @current_hostname; @@ -26,14 +26,14 @@ - -- Fill "user" table with default users allowing root access -- from local machine if "user" table didn't exist before - CREATE TEMPORARY TABLE tmp_user LIKE user; -@@ -43,8 +33,6 @@ INSERT INTO tmp_user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y',' - REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0 FROM dual WHERE @current_hostname != 'localhost'; - REPLACE INTO tmp_user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0); - REPLACE INTO tmp_user VALUES ('::1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N', '', 0); --INSERT INTO tmp_user (host,user) VALUES ('localhost',''); --INSERT INTO tmp_user (host,user) SELECT @current_hostname,'' FROM dual WHERE @current_hostname != 'localhost'; - INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0; - DROP TABLE tmp_user; + CREATE TEMPORARY TABLE tmp_user_nopasswd LIKE user; +@@ -48,9 +38,6 @@ REPLACE INTO tmp_user_nopasswd VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y' + REPLACE INTO tmp_user_nopasswd VALUES ('::1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N', '', 0); + -- More secure root account using unix sucket auth. + INSERT INTO tmp_user_socket VALUES ('localhost',IFNULL(@auth_root_socket, 'root'),'','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'unix_socket','','N', 'N','', 0); +--- Anonymous user with no privileges. +-INSERT INTO tmp_user_anonymous (host,user) VALUES ('localhost',''); +-INSERT INTO tmp_user_anonymous (host,user) SELECT @current_hostname,'' FROM dual WHERE @current_hostname != 'localhost'; - + INSERT INTO user SELECT * FROM tmp_user_nopasswd WHERE @had_user_table=0 AND @skip_auth_root_nopasswd IS NULL; + INSERT INTO user SELECT * FROM tmp_user_socket WHERE @had_user_table=0 AND @auth_root_socket IS NOT NULL; diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh index 5eb0796c647..364cc4fb9e0 100644 --- a/scripts/mysql_install_db.sh +++ b/scripts/mysql_install_db.sh @@ -34,11 +34,26 @@ force=0 in_rpm=0 ip_only=0 cross_bootstrap=0 +install_params="" +auth_root_authentication_method=normal +auth_root_socket_user='root' usage() { cat < /dev/null +case "$auth_root_authentication_method" in + normal) + install_params="$install_params +SET @skip_auth_root_nopasswd=NULL; +SET @auth_root_socket=NULL;" ;; + socket) + install_params="$install_params +SET @skip_auth_root_nopasswd=1; +SET @auth_root_socket='$auth_root_socket_user';" ;; +esac +if { echo "use mysql;$install_params"; cat "$create_system_tables" "$create_system_tables2" "$fill_system_tables"; } | eval "$filter_cmd_line" | mysqld_install_cmd_line > /dev/null then s_echo "OK" else diff --git a/scripts/mysql_system_tables_data.sql b/scripts/mysql_system_tables_data.sql index 075aafd5e3b..9556e7ba160 100644 --- a/scripts/mysql_system_tables_data.sql +++ b/scripts/mysql_system_tables_data.sql @@ -38,15 +38,24 @@ DROP TABLE tmp_db; -- Fill "user" table with default users allowing root access -- from local machine if "user" table didn't exist before -CREATE TEMPORARY TABLE tmp_user LIKE user; -INSERT INTO tmp_user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N', 'N','', 0); -REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0 FROM dual WHERE @current_hostname != 'localhost'; -REPLACE INTO tmp_user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0); -REPLACE INTO tmp_user VALUES ('::1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N', '', 0); -INSERT INTO tmp_user (host,user) VALUES ('localhost',''); -INSERT INTO tmp_user (host,user) SELECT @current_hostname,'' FROM dual WHERE @current_hostname != 'localhost'; -INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0; -DROP TABLE tmp_user; +CREATE TEMPORARY TABLE tmp_user_nopasswd LIKE user; +CREATE TEMPORARY TABLE tmp_user_socket LIKE user; +CREATE TEMPORARY TABLE tmp_user_anonymous LIKE user; +-- Classic passwordless root account. +INSERT INTO tmp_user_nopasswd VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N', 'N','', 0); +REPLACE INTO tmp_user_nopasswd SELECT @current_hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0 FROM dual WHERE @current_hostname != 'localhost'; +REPLACE INTO tmp_user_nopasswd VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N','',0); +REPLACE INTO tmp_user_nopasswd VALUES ('::1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N','N', '', 0); +-- More secure root account using unix sucket auth. +INSERT INTO tmp_user_socket VALUES ('localhost',IFNULL(@auth_root_socket, 'root'),'','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'unix_socket','','N', 'N','', 0); +-- Anonymous user with no privileges. +INSERT INTO tmp_user_anonymous (host,user) VALUES ('localhost',''); +INSERT INTO tmp_user_anonymous (host,user) SELECT @current_hostname,'' FROM dual WHERE @current_hostname != 'localhost'; + +INSERT INTO user SELECT * FROM tmp_user_nopasswd WHERE @had_user_table=0 AND @skip_auth_root_nopasswd IS NULL; +INSERT INTO user SELECT * FROM tmp_user_socket WHERE @had_user_table=0 AND @auth_root_socket IS NOT NULL; +INSERT INTO user SELECT * FROM tmp_user_anonymous WHERE @had_user_table=0 AND @skip_auth_anonymous IS NULL; +DROP TABLE tmp_user_nopasswd, tmp_user_socket, tmp_user_anonymous; CREATE TEMPORARY TABLE tmp_proxies_priv LIKE proxies_priv; INSERT INTO tmp_proxies_priv VALUES ('localhost', 'root', '', '', TRUE, '', now()); From e79e840607adff6f2e55d4c889ae055d07bdabf5 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 17 Jan 2017 14:09:38 +0100 Subject: [PATCH 104/258] selinux fixes for 10.0->10.1 merge 1. don't put generated files into ${CMAKE_CURRENT_SOURCE_DIR} 2. policy file name must match the module name (Fedora 24 requirement) --- support-files/CMakeLists.txt | 36 +++++++++---------- .../selinux/{mysqld-safe.te => mariadb.te} | 0 support-files/rpm/server-postin.sh | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) rename support-files/policy/selinux/{mysqld-safe.te => mariadb.te} (100%) diff --git a/support-files/CMakeLists.txt b/support-files/CMakeLists.txt index 40a28e67625..c80de04d069 100644 --- a/support-files/CMakeLists.txt +++ b/support-files/CMakeLists.txt @@ -57,27 +57,27 @@ IF(UNIX) DESTINATION ${inst_location} COMPONENT Server_Scripts) ENDFOREACH() - FIND_PROGRAM(CHECKMODULE checkmodule) - FIND_PROGRAM(SEMODULE_PACKAGE semodule_package) - MARK_AS_ADVANCED(CHECKMODULE SEMODULE_PACKAGE) - - # Build pp files in policy/selinux - IF(CHECKMODULE AND SEMODULE_PACKAGE) - FOREACH(pol mysqld-safe) - SET(src ${CMAKE_CURRENT_SOURCE_DIR}/policy/selinux/${pol}.te) - SET(mod ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${pol}-pp.dir/${pol}.mod) - SET(out ${CMAKE_CURRENT_SOURCE_DIR}/policy/selinux/${pol}.pp) - ADD_CUSTOM_COMMAND(OUTPUT ${out} - COMMAND ${CHECKMODULE} -M -m ${src} -o ${mod} - COMMAND ${SEMODULE_PACKAGE} -m ${mod} -o ${out} - DEPENDS ${src}) - ADD_CUSTOM_TARGET(${pol}-pp ALL DEPENDS ${out}) - ENDFOREACH() - ENDIF() - IF(INSTALL_SUPPORTFILESDIR) INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles) INSTALL(DIRECTORY policy DESTINATION ${inst_location} COMPONENT SupportFiles) + FIND_PROGRAM(CHECKMODULE checkmodule) + FIND_PROGRAM(SEMODULE_PACKAGE semodule_package) + MARK_AS_ADVANCED(CHECKMODULE SEMODULE_PACKAGE) + + # Build pp files in policy/selinux + IF(CHECKMODULE AND SEMODULE_PACKAGE) + FOREACH(pol mariadb) + SET(src ${CMAKE_CURRENT_SOURCE_DIR}/policy/selinux/${pol}.te) + SET(tmp ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${pol}-pp.dir/${pol}.mod) + SET(out ${CMAKE_CURRENT_BINARY_DIR}/${pol}.pp) + ADD_CUSTOM_COMMAND(OUTPUT ${out} + COMMAND ${CHECKMODULE} -M -m ${src} -o ${tmp} + COMMAND ${SEMODULE_PACKAGE} -m ${tmp} -o ${out} + DEPENDS ${src}) + ADD_CUSTOM_TARGET(${pol}-pp ALL DEPENDS ${out}) + INSTALL(FILES ${out} DESTINATION ${inst_location}/policy/selinux COMPONENT SupportFiles) + ENDFOREACH() + ENDIF() ENDIF() CONFIGURE_FILE(mariadb.pc.in ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc @ONLY) diff --git a/support-files/policy/selinux/mysqld-safe.te b/support-files/policy/selinux/mariadb.te similarity index 100% rename from support-files/policy/selinux/mysqld-safe.te rename to support-files/policy/selinux/mariadb.te diff --git a/support-files/rpm/server-postin.sh b/support-files/rpm/server-postin.sh index bdce35b1d0e..9ef9bec3e0d 100644 --- a/support-files/rpm/server-postin.sh +++ b/support-files/rpm/server-postin.sh @@ -96,7 +96,7 @@ if [ -f /etc/redhat-release ] ; then fi if grep 'CentOS release 6' /etc/redhat-release >/dev/null 2>&1; then if [ -x /usr/sbin/semodule ] ; then - /usr/sbin/semodule -i /usr/share/mysql/policy/selinux/mysqld-safe.pp + /usr/sbin/semodule -i /usr/share/mysql/policy/selinux/mariadb.pp fi fi fi From ef8003eb9a23007ac5d606530dcdcc3ea2f0c039 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 16 Jan 2017 18:23:02 +0100 Subject: [PATCH 105/258] MDEV-11698 Old Bug possibly not fixed; BEFORE INSERT Trigger on NOT NULL check_that_all_fields_are_given_values() relied on write_set, but was run too early, before triggers updated write_set. also, when triggers are present, fields might get values conditionally, so we need to check that all fields are given values for every row. --- mysql-test/r/insert_update.result | 4 +- mysql-test/r/trigger_no_defaults-11698.result | 22 ++++ mysql-test/t/insert_update.test | 6 +- mysql-test/t/trigger_no_defaults-11698.test | 25 ++++ sql/sql_insert.cc | 118 +++++++++--------- sql/sql_insert.h | 3 +- sql/sql_prepare.cc | 2 +- 7 files changed, 119 insertions(+), 61 deletions(-) create mode 100644 mysql-test/r/trigger_no_defaults-11698.result create mode 100644 mysql-test/t/trigger_no_defaults-11698.test diff --git a/mysql-test/r/insert_update.result b/mysql-test/r/insert_update.result index 1987c5c0559..e8e6e16fe5a 100644 --- a/mysql-test/r/insert_update.result +++ b/mysql-test/r/insert_update.result @@ -242,14 +242,16 @@ ERROR 42S22: Unknown column 'a' in 'field list' DROP TABLE t1,t2; SET SQL_MODE = 'TRADITIONAL'; CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL); +INSERT INTO t1 VALUES (1,1); INSERT INTO t1 (a) VALUES (1); ERROR HY000: Field 'b' doesn't have a default value INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE a = b; ERROR HY000: Field 'b' doesn't have a default value +INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE b = a; INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE b = b; -ERROR HY000: Field 'b' doesn't have a default value SELECT * FROM t1; a b +1 1 DROP TABLE t1; CREATE TABLE t1 (f1 INT AUTO_INCREMENT PRIMARY KEY, f2 VARCHAR(5) NOT NULL UNIQUE); diff --git a/mysql-test/r/trigger_no_defaults-11698.result b/mysql-test/r/trigger_no_defaults-11698.result new file mode 100644 index 00000000000..40546cee41d --- /dev/null +++ b/mysql-test/r/trigger_no_defaults-11698.result @@ -0,0 +1,22 @@ +set sql_mode='strict_all_tables'; +create table t1 (a int not null, b int); +insert t1 (b) values (1); +ERROR HY000: Field 'a' doesn't have a default value +create trigger trgi before insert on t1 for each row +case new.b +when 10 then +set new.a = new.b; +when 30 then +set new.a = new.a; +else +do 1; +end case| +insert t1 (b) values (10); +insert t1 (b) values (20); +ERROR HY000: Field 'a' doesn't have a default value +insert t1 (b) values (30); +select * from t1; +a b +10 10 +0 30 +drop table t1; diff --git a/mysql-test/t/insert_update.test b/mysql-test/t/insert_update.test index de38ae0b0d3..7234973eeb8 100644 --- a/mysql-test/t/insert_update.test +++ b/mysql-test/t/insert_update.test @@ -170,6 +170,7 @@ DROP TABLE t1,t2; SET SQL_MODE = 'TRADITIONAL'; CREATE TABLE t1 (a INT PRIMARY KEY, b INT NOT NULL); +INSERT INTO t1 VALUES (1,1); --error ER_NO_DEFAULT_FOR_FIELD INSERT INTO t1 (a) VALUES (1); @@ -177,7 +178,10 @@ INSERT INTO t1 (a) VALUES (1); --error ER_NO_DEFAULT_FOR_FIELD INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE a = b; ---error ER_NO_DEFAULT_FOR_FIELD +# this one is ok +INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE b = a; + +# arguably the statement below should fail INSERT INTO t1 (a) VALUES (1) ON DUPLICATE KEY UPDATE b = b; SELECT * FROM t1; diff --git a/mysql-test/t/trigger_no_defaults-11698.test b/mysql-test/t/trigger_no_defaults-11698.test new file mode 100644 index 00000000000..fab7845ad7d --- /dev/null +++ b/mysql-test/t/trigger_no_defaults-11698.test @@ -0,0 +1,25 @@ +# +# MDEV-11698 Old Bug possibly not fixed; BEFORE INSERT Trigger on NOT NULL +# +set sql_mode='strict_all_tables'; +create table t1 (a int not null, b int); +--error ER_NO_DEFAULT_FOR_FIELD +insert t1 (b) values (1); +delimiter |; +create trigger trgi before insert on t1 for each row + case new.b + when 10 then + set new.a = new.b; + when 30 then + set new.a = new.a; + else + do 1; + end case| +delimiter ;| +insert t1 (b) values (10); +--error ER_NO_DEFAULT_FOR_FIELD +insert t1 (b) values (20); +# arguably the statement below should fail too +insert t1 (b) values (30); +select * from t1; +drop table t1; diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index ac7fd93f0c0..f4e0a6a00eb 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -304,6 +304,32 @@ static int check_insert_fields(THD *thd, TABLE_LIST *table_list, DBUG_RETURN(0); } +static bool has_no_default_value(THD *thd, Field *field, TABLE_LIST *table_list) +{ + if ((field->flags & NO_DEFAULT_VALUE_FLAG) && field->real_type() != MYSQL_TYPE_ENUM) + { + bool view= false; + if (table_list) + { + table_list= table_list->top_table(); + view= table_list->view != NULL; + } + if (view) + { + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_NO_DEFAULT_FOR_VIEW_FIELD, + ER_THD(thd, ER_NO_DEFAULT_FOR_VIEW_FIELD), + table_list->view_db.str, table_list->view_name.str); + } + else + { + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_NO_DEFAULT_FOR_FIELD, + ER_THD(thd, ER_NO_DEFAULT_FOR_FIELD), field->field_name); + } + return true; + } + return false; +} + /** Check if update fields are correct. @@ -733,13 +759,10 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list, if (mysql_prepare_insert(thd, table_list, table, fields, values, update_fields, update_values, duplic, &unused_conds, - FALSE, - (fields.elements || !value_count || - table_list->view != 0), - !ignore && thd->is_strict_mode())) + FALSE)) goto abort; - /* mysql_prepare_insert set table_list->table if it was not set */ + /* mysql_prepare_insert sets table_list->table if it was not set */ table= table_list->table; context= &thd->lex->select_lex.context; @@ -866,6 +889,14 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list, table->prepare_triggers_for_insert_stmt_or_event(); table->mark_columns_needed_for_insert(); + if (fields.elements || !value_count || table_list->view != 0) + { + if (check_that_all_fields_are_given_values(thd, table, table_list)) + { + error= 1; + goto values_loop_end; + } + } if (table_list->prepare_where(thd, 0, TRUE) || table_list->prepare_check_option(thd)) @@ -965,6 +996,23 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list, error= 1; break; } + /* + with triggers a field can get a value *conditionally*, so we have to repeat + has_no_default_value() check for every row + */ + if (table->triggers && + table->triggers->has_triggers(TRG_EVENT_INSERT, TRG_ACTION_BEFORE)) + { + for (Field **f=table->field ; *f ; f++) + { + if (!((*f)->flags & HAS_EXPLICIT_VALUE) && has_no_default_value(thd, *f, table_list)) + { + error= 1; + goto values_loop_end; + } + (*f)->flags &= ~HAS_EXPLICIT_VALUE; + } + } if ((res= table_list->view_check_option(thd, (values_list.elements == 1 ? @@ -1374,10 +1422,6 @@ static void prepare_for_positional_update(TABLE *table, TABLE_LIST *tables) be taken from table_list->table) where Where clause (for insert ... select) select_insert TRUE if INSERT ... SELECT statement - check_fields TRUE if need to check that all INSERT fields are - given values. - abort_on_warning whether to report if some INSERT field is not - assigned as an error (TRUE) or as a warning (FALSE). TODO (in far future) In cases of: @@ -1397,9 +1441,8 @@ static void prepare_for_positional_update(TABLE *table, TABLE_LIST *tables) bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, TABLE *table, List &fields, List_item *values, List &update_fields, List &update_values, - enum_duplicates duplic, - COND **where, bool select_insert, - bool check_fields, bool abort_on_warning) + enum_duplicates duplic, COND **where, + bool select_insert) { SELECT_LEX *select_lex= &thd->lex->select_lex; Name_resolution_context *context= &select_lex->context; @@ -1470,17 +1513,6 @@ bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, check_insert_fields(thd, context->table_list, fields, *values, !insert_into_view, 0, &map)); - if (!res && check_fields) - { - bool saved_abort_on_warning= thd->abort_on_warning; - thd->abort_on_warning= abort_on_warning; - res= check_that_all_fields_are_given_values(thd, - table ? table : - context->table_list->table, - context->table_list); - thd->abort_on_warning= saved_abort_on_warning; - } - if (!res) res= setup_fields(thd, 0, update_values, MARK_COLUMNS_READ, 0, 0); @@ -1923,8 +1955,8 @@ before_trg_err: Check that all fields with arn't null_fields are used ******************************************************************************/ -int check_that_all_fields_are_given_values(THD *thd, TABLE *entry, - TABLE_LIST *table_list) + +int check_that_all_fields_are_given_values(THD *thd, TABLE *entry, TABLE_LIST *table_list) { int err= 0; MY_BITMAP *write_set= entry->write_set; @@ -1932,32 +1964,8 @@ int check_that_all_fields_are_given_values(THD *thd, TABLE *entry, for (Field **field=entry->field ; *field ; field++) { if (!bitmap_is_set(write_set, (*field)->field_index) && - ((*field)->flags & NO_DEFAULT_VALUE_FLAG) && - ((*field)->real_type() != MYSQL_TYPE_ENUM)) - { - bool view= FALSE; - if (table_list) - { - table_list= table_list->top_table(); - view= MY_TEST(table_list->view); - } - if (view) - { - push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, - ER_NO_DEFAULT_FOR_VIEW_FIELD, - ER_THD(thd, ER_NO_DEFAULT_FOR_VIEW_FIELD), - table_list->view_db.str, - table_list->view_name.str); - } - else - { - push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, - ER_NO_DEFAULT_FOR_FIELD, - ER_THD(thd, ER_NO_DEFAULT_FOR_FIELD), - (*field)->field_name); - } - err= 1; - } + has_no_default_value(thd, *field, table_list)) + err=1; } return thd->abort_on_warning ? err : 0; } @@ -3390,9 +3398,8 @@ bool mysql_insert_select_prepare(THD *thd) if (mysql_prepare_insert(thd, lex->query_tables, lex->query_tables->table, lex->field_list, 0, - lex->update_list, lex->value_list, - lex->duplicates, - &select_lex->where, TRUE, FALSE, FALSE)) + lex->update_list, lex->value_list, lex->duplicates, + &select_lex->where, TRUE)) DBUG_RETURN(TRUE); DBUG_ASSERT(select_lex->leaf_tables.elements != 0); @@ -3479,8 +3486,7 @@ select_insert::prepare(List &values, SELECT_LEX_UNIT *u) { bool saved_abort_on_warning= thd->abort_on_warning; thd->abort_on_warning= !info.ignore && thd->is_strict_mode(); - res= check_that_all_fields_are_given_values(thd, table_list->table, - table_list); + res= check_that_all_fields_are_given_values(thd, table_list->table, table_list); thd->abort_on_warning= saved_abort_on_warning; } diff --git a/sql/sql_insert.h b/sql/sql_insert.h index cbfc1ea9dcd..aea0dac6b0d 100644 --- a/sql/sql_insert.h +++ b/sql/sql_insert.h @@ -27,8 +27,7 @@ bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, TABLE *table, List &fields, List_item *values, List &update_fields, List &update_values, enum_duplicates duplic, - COND **where, bool select_insert, - bool check_fields, bool abort_on_warning); + COND **where, bool select_insert); bool mysql_insert(THD *thd,TABLE_LIST *table,List &fields, List &values, List &update_fields, List &update_values, enum_duplicates flag, diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index d381825851d..d3a5d0aeef6 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -1299,7 +1299,7 @@ static bool mysql_test_insert(Prepared_statement *stmt, if (mysql_prepare_insert(thd, table_list, table_list->table, fields, values, update_fields, update_values, - duplic, &unused_conds, FALSE, FALSE, FALSE)) + duplic, &unused_conds, FALSE)) goto error; value_count= values->elements; From f797ea7124e906fd3abf311d66101a21dce2d27d Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 16 Jan 2017 18:47:53 +0100 Subject: [PATCH 106/258] MDEV-11601 Out-of-bounds string access in create_schema_table() in Item_partition_func_safe_string(THD *thd, const char *name_arg, uint length, CHARSET_INFO *cs= NULL), the 'name_arg' is the value of the string constant and 'length' is the length of this constant, so length == strlen(name_arg). --- sql/item.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/item.h b/sql/item.h index 07b8a865652..b09e9297826 100644 --- a/sql/item.h +++ b/sql/item.h @@ -3206,7 +3206,7 @@ class Item_blob :public Item_partition_func_safe_string { public: Item_blob(THD *thd, const char *name_arg, uint length): - Item_partition_func_safe_string(thd, name_arg, length, &my_charset_bin) + Item_partition_func_safe_string(thd, name_arg, strlen(name_arg), &my_charset_bin) { max_length= length; } enum Type type() const { return TYPE_HOLDER; } enum_field_types field_type() const { return MYSQL_TYPE_BLOB; } From fbcdc3437c94314f69d255a303d791f704916653 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 17 Jan 2017 22:08:19 +0100 Subject: [PATCH 107/258] connect zip bug fix --- storage/connect/filamzip.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/connect/filamzip.cpp b/storage/connect/filamzip.cpp index 22fe95aebad..6aca4631f32 100644 --- a/storage/connect/filamzip.cpp +++ b/storage/connect/filamzip.cpp @@ -97,7 +97,7 @@ loopStart: if (!*++pat) return TRUE; goto loopStart; default: - if (mapCaseTable[(unsigned)*s] != mapCaseTable[(unsigned)*p]) + if (mapCaseTable[(uchar)*s] != mapCaseTable[(uchar)*p]) goto starCheck; break; } /* endswitch */ From a14638581b4c8ef175e68dccff07967d819b3b7e Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Wed, 18 Jan 2017 08:39:18 -0500 Subject: [PATCH 108/258] bump the VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index ad620531c9a..9f8b1071da3 100644 --- a/VERSION +++ b/VERSION @@ -1,3 +1,3 @@ MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MINOR=1 -MYSQL_VERSION_PATCH=21 +MYSQL_VERSION_PATCH=22 From dc557ca817f18e27ab46342865a510898f76822e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Thu, 19 Jan 2017 08:19:08 +0200 Subject: [PATCH 109/258] MDEV-11835: InnoDB: Failing assertion: free_slot != NULL on restarting server with encryption and read-only buf0buf.cc: Temporary slots used in encryption was calculated by read_threads * write_threads. However, in read-only mode write_threads is zero. Correct way is to calculate (read_threads + write_threads) * max pending IO requests. --- .../encryption/r/innodb-read-only.result | 3 ++ .../suite/encryption/t/innodb-read-only.opt | 3 ++ .../suite/encryption/t/innodb-read-only.test | 34 +++++++++++++++++++ storage/innobase/buf/buf0buf.cc | 2 +- storage/xtradb/buf/buf0buf.cc | 2 +- 5 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 mysql-test/suite/encryption/r/innodb-read-only.result create mode 100644 mysql-test/suite/encryption/t/innodb-read-only.opt create mode 100644 mysql-test/suite/encryption/t/innodb-read-only.test diff --git a/mysql-test/suite/encryption/r/innodb-read-only.result b/mysql-test/suite/encryption/r/innodb-read-only.result new file mode 100644 index 00000000000..5d063e129e2 --- /dev/null +++ b/mysql-test/suite/encryption/r/innodb-read-only.result @@ -0,0 +1,3 @@ +# Wait max 10 min for key encryption threads to encrypt all spaces +# Success! +# All done diff --git a/mysql-test/suite/encryption/t/innodb-read-only.opt b/mysql-test/suite/encryption/t/innodb-read-only.opt new file mode 100644 index 00000000000..acedb1a17bb --- /dev/null +++ b/mysql-test/suite/encryption/t/innodb-read-only.opt @@ -0,0 +1,3 @@ +--innodb-encrypt-tables=1 +--innodb-encryption-threads=4 +--innodb-tablespaces-encryption diff --git a/mysql-test/suite/encryption/t/innodb-read-only.test b/mysql-test/suite/encryption/t/innodb-read-only.test new file mode 100644 index 00000000000..10ec87467b6 --- /dev/null +++ b/mysql-test/suite/encryption/t/innodb-read-only.test @@ -0,0 +1,34 @@ +--source suite/encryption/include/have_file_key_management_plugin.inc +--source include/have_innodb.inc +--source include/not_embedded.inc + +--echo # Wait max 10 min for key encryption threads to encrypt all spaces +let $cnt=600; +while ($cnt) +{ + let $success=`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0`; + if ($success) + { + let $cnt=0; + } + if (!$success) + { + real_sleep 1; + dec $cnt; + } +} +if (!$success) +{ + SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION; + SHOW STATUS LIKE 'innodb_encryption%'; + -- die Timeout waiting for encryption threads +} +--echo # Success! + +# +# MDEV-11835: InnoDB: Failing assertion: free_slot != NULL on +# restarting server with encryption and read-only +# +--let $restart_parameters= --innodb-read-only=1 --innodb-encrypt-tables=1 +--source include/restart_mysqld.inc +--echo # All done diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc index c918522233f..7a8bcd1b9d0 100644 --- a/storage/innobase/buf/buf0buf.cc +++ b/storage/innobase/buf/buf0buf.cc @@ -1508,7 +1508,7 @@ buf_pool_init_instance( /* Initialize the temporal memory array and slots */ buf_pool->tmp_arr = (buf_tmp_array_t *)mem_zalloc(sizeof(buf_tmp_array_t)); - ulint n_slots = srv_n_read_io_threads * srv_n_write_io_threads * (8 * OS_AIO_N_PENDING_IOS_PER_THREAD); + ulint n_slots = (srv_n_read_io_threads + srv_n_write_io_threads) * (8 * OS_AIO_N_PENDING_IOS_PER_THREAD); buf_pool->tmp_arr->n_slots = n_slots; buf_pool->tmp_arr->slots = (buf_tmp_buffer_t*)mem_zalloc(sizeof(buf_tmp_buffer_t) * n_slots); diff --git a/storage/xtradb/buf/buf0buf.cc b/storage/xtradb/buf/buf0buf.cc index 31a3f4978b8..e859301a38f 100644 --- a/storage/xtradb/buf/buf0buf.cc +++ b/storage/xtradb/buf/buf0buf.cc @@ -1571,7 +1571,7 @@ buf_pool_init_instance( /* Initialize the temporal memory array and slots */ buf_pool->tmp_arr = (buf_tmp_array_t *)mem_zalloc(sizeof(buf_tmp_array_t)); - ulint n_slots = srv_n_read_io_threads * srv_n_write_io_threads * (8 * OS_AIO_N_PENDING_IOS_PER_THREAD); + ulint n_slots = (srv_n_read_io_threads + srv_n_write_io_threads) * (8 * OS_AIO_N_PENDING_IOS_PER_THREAD); buf_pool->tmp_arr->n_slots = n_slots; buf_pool->tmp_arr->slots = (buf_tmp_buffer_t*)mem_zalloc(sizeof(buf_tmp_buffer_t) * n_slots); From 8a4d605500ae487d3dc515305662769645bb092f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Thu, 19 Jan 2017 12:20:54 +0200 Subject: [PATCH 110/258] MDEV-11838: Innodb-encryption-algorithm default should be != none Change default to zlib, this has effect only if user has explicitly requested page compression and then user naturally expects that pages are really compressed if they can be compressed. --- .../r/innodb-page_compression_default.result | 20 ++++++++ .../t/innodb-page_compression_default.test | 51 +++++++++++++++++++ .../suite/sys_vars/r/sysvars_innodb.result | 4 +- storage/innobase/handler/ha_innodb.cc | 2 +- storage/xtradb/handler/ha_innodb.cc | 2 +- 5 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 mysql-test/suite/innodb/r/innodb-page_compression_default.result create mode 100644 mysql-test/suite/innodb/t/innodb-page_compression_default.test diff --git a/mysql-test/suite/innodb/r/innodb-page_compression_default.result b/mysql-test/suite/innodb/r/innodb-page_compression_default.result new file mode 100644 index 00000000000..10e1d6c766c --- /dev/null +++ b/mysql-test/suite/innodb/r/innodb-page_compression_default.result @@ -0,0 +1,20 @@ +SET GLOBAL innodb_file_format = `Barracuda`; +SET GLOBAL innodb_file_per_table = ON; +create table t1 (c1 int not null primary key auto_increment, b char(200)) engine=innodb page_compressed=1; +insert into t1 values(NULL,'compressed_text_aaaaaaaaabbbbbbbbbbbbbccccccccccccc'); +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +# t1 compressed expected NOT FOUND +NOT FOUND /compressed_text/ in t1.ibd +drop table t1; diff --git a/mysql-test/suite/innodb/t/innodb-page_compression_default.test b/mysql-test/suite/innodb/t/innodb-page_compression_default.test new file mode 100644 index 00000000000..28f184c278c --- /dev/null +++ b/mysql-test/suite/innodb/t/innodb-page_compression_default.test @@ -0,0 +1,51 @@ +--source include/have_innodb.inc + +--disable_query_log +let $innodb_compression_algorithm_orig=`SELECT @@innodb_compression_algorithm`; +let $innodb_file_format_orig = `SELECT @@innodb_file_format`; +let $innodb_file_per_table_orig = `SELECT @@innodb_file_per_table`; +--enable_query_log + +--disable_warnings +SET GLOBAL innodb_file_format = `Barracuda`; +SET GLOBAL innodb_file_per_table = ON; +--enable_warnings + +create table t1 (c1 int not null primary key auto_increment, b char(200)) engine=innodb page_compressed=1; +insert into t1 values(NULL,'compressed_text_aaaaaaaaabbbbbbbbbbbbbccccccccccccc'); +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; +insert into t1(b) select b from t1; + +let $wait_condition= select variable_value > 0 from information_schema.global_status where variable_name = 'INNODB_NUM_PAGES_PAGE_COMPRESSED'; +--source include/wait_condition.inc + +--let $MYSQLD_DATADIR=`select @@datadir` +--let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd +--let SEARCH_RANGE = 10000000 +--let SEARCH_PATTERN=compressed_text + +--echo # t1 compressed expected NOT FOUND +-- let SEARCH_FILE=$t1_IBD +-- source include/search_pattern_in_file.inc + +drop table t1; + +# reset system +--disable_query_log +--disable_warnings +EVAL SET GLOBAL innodb_compression_algorithm = $innodb_compression_algorithm_orig; +EVAL SET GLOBAL innodb_file_per_table = $innodb_file_per_table_orig; +EVAL SET GLOBAL innodb_file_format = $innodb_file_format_orig; +--enable_warnings +--enable_query_log diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result index 05b1a07c328..afa152b0c7b 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result @@ -497,9 +497,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_COMPRESSION_ALGORITHM SESSION_VALUE NULL -GLOBAL_VALUE none +GLOBAL_VALUE zlib GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE none +DEFAULT_VALUE zlib VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Compression algorithm used on page compression. One of: none, zlib, lz4, lzo, lzma, or bzip2 diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 297ca0d162d..33eb352c42f 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -19774,7 +19774,7 @@ static MYSQL_SYSVAR_ENUM(compression_algorithm, innodb_compression_algorithm, /* We use here the largest number of supported compression method to enable all those methods that are available. Availability of compression method is verified on innodb_compression_algorithm_validate function. */ - PAGE_UNCOMPRESSED, + PAGE_ZLIB_ALGORITHM, &page_compression_algorithms_typelib); static MYSQL_SYSVAR_LONG(mtflush_threads, srv_mtflush_threads, diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index a3f1d9c3c85..e9d42097fd0 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -21257,7 +21257,7 @@ static MYSQL_SYSVAR_ENUM(compression_algorithm, innodb_compression_algorithm, /* We use here the largest number of supported compression method to enable all those methods that are available. Availability of compression method is verified on innodb_compression_algorithm_validate function. */ - PAGE_UNCOMPRESSED, + PAGE_ZLIB_ALGORITHM, &page_compression_algorithms_typelib); static MYSQL_SYSVAR_LONG(mtflush_threads, srv_mtflush_threads, From 18ef02b04dfae21148c7397d088c7ffdfcd23c4e Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Tue, 10 Jan 2017 10:08:04 +0530 Subject: [PATCH 111/258] MDEV-4774 Strangeness with max_binlog_stmt_cache_size Settings Problem:- When setting max_binlog_stmt_cache_size=18446744073709547520 from either command line or .cnf file, server fails to start. Solution:- Added one more function eval_num_suffix_ull , which uses strtoull to get unsigned ulonglong from string. And getopt_ull calls this function instead of eval_num_suffix. Also changed previous eval_num_suffix to eval_num_suffix_ll to remain consistent. --- .../binlog_max_binlog_stmt_cache_size.result | 31 ++++++++ .../t/binlog_max_binlog_stmt_cache_size.opt | 1 + .../t/binlog_max_binlog_stmt_cache_size.test | 22 ++++++ mysys/my_getopt.c | 72 +++++++++++++++---- 4 files changed, 114 insertions(+), 12 deletions(-) create mode 100644 mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result create mode 100644 mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.opt create mode 100644 mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test diff --git a/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result b/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result new file mode 100644 index 00000000000..cf4d7004195 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result @@ -0,0 +1,31 @@ +select @@max_binlog_stmt_cache_size; +@@max_binlog_stmt_cache_size +18446744073709547520 +set global max_binlog_stmt_cache_size= 18446744073709547520; +select @@max_binlog_stmt_cache_size; +@@max_binlog_stmt_cache_size +18446744073709547520 +set global max_binlog_stmt_cache_size= 18446744073709547519; +Warnings: +Warning 1292 Truncated incorrect max_binlog_stmt_cache_size value: '18446744073709547519' +select @@max_binlog_stmt_cache_size; +@@max_binlog_stmt_cache_size +18446744073709543424 +set global max_binlog_stmt_cache_size= 18446744073709551615; +Warnings: +Warning 1292 Truncated incorrect max_binlog_stmt_cache_size value: '18446744073709551615' +select @@max_binlog_stmt_cache_size; +@@max_binlog_stmt_cache_size +18446744073709547520 +set global max_binlog_stmt_cache_size= 18446744073709551614; +Warnings: +Warning 1292 Truncated incorrect max_binlog_stmt_cache_size value: '18446744073709551614' +select @@max_binlog_stmt_cache_size; +@@max_binlog_stmt_cache_size +18446744073709547520 +set global max_binlog_stmt_cache_size= 18446744073709551616; +ERROR 42000: Incorrect argument type to variable 'max_binlog_stmt_cache_size' +select @@max_binlog_stmt_cache_size; +@@max_binlog_stmt_cache_size +18446744073709547520 +set global max_binlog_stmt_cache_size= 18446744073709547520; diff --git a/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.opt b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.opt new file mode 100644 index 00000000000..c52ef14d5d0 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.opt @@ -0,0 +1 @@ +--max_binlog_stmt_cache_size=18446744073709547520 diff --git a/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test new file mode 100644 index 00000000000..f85eed3cea8 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test @@ -0,0 +1,22 @@ +source include/have_log_bin.inc; +select @@max_binlog_stmt_cache_size; + +--let $cache_size=`select @@max_binlog_stmt_cache_size;` + +set global max_binlog_stmt_cache_size= 18446744073709547520; +select @@max_binlog_stmt_cache_size; + +set global max_binlog_stmt_cache_size= 18446744073709547519; +select @@max_binlog_stmt_cache_size; + +set global max_binlog_stmt_cache_size= 18446744073709551615; +select @@max_binlog_stmt_cache_size; + +set global max_binlog_stmt_cache_size= 18446744073709551614; +select @@max_binlog_stmt_cache_size; + +--error ER_WRONG_TYPE_FOR_VAR +set global max_binlog_stmt_cache_size= 18446744073709551616; +select @@max_binlog_stmt_cache_size; + +--eval set global max_binlog_stmt_cache_size= $cache_size diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c index 2a4557118b0..e68a08ee735 100644 --- a/mysys/my_getopt.c +++ b/mysys/my_getopt.c @@ -895,15 +895,39 @@ my_bool getopt_compare_strings(register const char *s, register const char *t, /* function: eval_num_suffix + Transforms suffix like k/m/g to their real value. +*/ + +static inline long eval_num_suffix(char *suffix, int *error) +{ + long num= 1; + if (*suffix == 'k' || *suffix == 'K') + num*= 1024L; + else if (*suffix == 'm' || *suffix == 'M') + num*= 1024L * 1024L; + else if (*suffix == 'g' || *suffix == 'G') + num*= 1024L * 1024L * 1024L; + else if (*suffix) + { + *error= 1; + return 0; + } + return num; +} + +/* + function: eval_num_suffix_ll + Transforms a number with a suffix to real number. Suffix can be k|K for kilo, m|M for mega or g|G for giga. */ -static longlong eval_num_suffix(char *argument, int *error, char *option_name) +static longlong eval_num_suffix_ll(char *argument, + int *error, char *option_name) { char *endchar; longlong num; - DBUG_ENTER("eval_num_suffix"); + DBUG_ENTER("eval_num_suffix_ll"); *error= 0; @@ -916,23 +940,47 @@ static longlong eval_num_suffix(char *argument, int *error, char *option_name) *error= 1; DBUG_RETURN(0); } - if (*endchar == 'k' || *endchar == 'K') - num*= 1024L; - else if (*endchar == 'm' || *endchar == 'M') - num*= 1024L * 1024L; - else if (*endchar == 'g' || *endchar == 'G') - num*= 1024L * 1024L * 1024L; - else if (*endchar) - { + num*= eval_num_suffix(endchar, error); + if (*error) fprintf(stderr, "Unknown suffix '%c' used for variable '%s' (value '%s')\n", *endchar, option_name, argument); + DBUG_RETURN(num); +} + +/* + function: eval_num_suffix_ull + + Transforms a number with a suffix to positive Integer. Suffix can + be k|K for kilo, m|M for mega or g|G for giga. +*/ + +static ulonglong eval_num_suffix_ull(char *argument, + int *error, char *option_name) +{ + char *endchar; + ulonglong num; + DBUG_ENTER("eval_num_suffix_ull"); + + *error= 0; + errno= 0; + num= strtoull(argument, &endchar, 10); + if (errno == ERANGE) + { + my_getopt_error_reporter(ERROR_LEVEL, + "Incorrect integer value: '%s'", argument); *error= 1; DBUG_RETURN(0); } + num*= eval_num_suffix(endchar, error); + if (*error) + fprintf(stderr, + "Unknown suffix '%c' used for variable '%s' (value '%s')\n", + *endchar, option_name, argument); DBUG_RETURN(num); } + /* function: getopt_ll @@ -946,7 +994,7 @@ static longlong eval_num_suffix(char *argument, int *error, char *option_name) static longlong getopt_ll(char *arg, const struct my_option *optp, int *err) { - longlong num=eval_num_suffix(arg, err, (char*) optp->name); + longlong num=eval_num_suffix_ll(arg, err, (char*) optp->name); return getopt_ll_limit_value(num, optp, NULL); } @@ -1023,7 +1071,7 @@ longlong getopt_ll_limit_value(longlong num, const struct my_option *optp, static ulonglong getopt_ull(char *arg, const struct my_option *optp, int *err) { - ulonglong num= eval_num_suffix(arg, err, (char*) optp->name); + ulonglong num= eval_num_suffix_ull(arg, err, (char*) optp->name); return getopt_ull_limit_value(num, optp, NULL); } From 213fc700b64a38d64efceef2a2ef8de9748a8ce5 Mon Sep 17 00:00:00 2001 From: Varun Gupta Date: Sat, 21 Jan 2017 00:56:33 +0530 Subject: [PATCH 112/258] MDEV-10232: Scalar result of subquery changes after adding an outer select stmt In a subquery, we don't have to maintain order Added a fix such that order is considered when there is a limit clause. --- mysql-test/r/subselect4.result | 12 ++++++++++++ mysql-test/t/subselect4.test | 10 ++++++++++ sql/sql_select.cc | 5 +++-- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/subselect4.result b/mysql-test/r/subselect4.result index 8b912e1bfe9..3783ba12db2 100644 --- a/mysql-test/r/subselect4.result +++ b/mysql-test/r/subselect4.result @@ -2442,3 +2442,15 @@ i drop table t1, t2, t3; SET optimizer_switch= @@global.optimizer_switch; set @@tmp_table_size= @@global.tmp_table_size; +# +# MDEV-10232 Scalar result of subquery changes after adding an outer select stmt +# +create table t1(c1 int, c2 int, primary key(c2)); +insert into t1 values(2,1),(1,2); +select (select c1 from t1 group by c1,c2 order by c1 limit 1) as x; +x +1 +(select c1 from t1 group by c1,c2 order by c1 limit 1); +c1 +1 +drop table t1; diff --git a/mysql-test/t/subselect4.test b/mysql-test/t/subselect4.test index cb102f8319e..253160c46ac 100644 --- a/mysql-test/t/subselect4.test +++ b/mysql-test/t/subselect4.test @@ -1999,3 +1999,13 @@ drop table t1, t2, t3; SET optimizer_switch= @@global.optimizer_switch; set @@tmp_table_size= @@global.tmp_table_size; + +--echo # +--echo # MDEV-10232 Scalar result of subquery changes after adding an outer select stmt +--echo # + +create table t1(c1 int, c2 int, primary key(c2)); +insert into t1 values(2,1),(1,2); +select (select c1 from t1 group by c1,c2 order by c1 limit 1) as x; +(select c1 from t1 group by c1,c2 order by c1 limit 1); +drop table t1; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 1bd101bbe6f..e37c1b8c280 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1619,7 +1619,8 @@ JOIN::optimize_inner() to ORDER BY . There are three exceptions: - if skip_sort_order is set (see above), then we can simply skip GROUP BY; - - if we are in a subquery, we don't have to maintain order + - if we are in a subquery, we don't have to maintain order unless there + is a limit clause in the subquery. - 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 @@ -1631,7 +1632,7 @@ JOIN::optimize_inner() if (!order || test_if_subpart(group_list, order)) { if (skip_sort_order || - select_lex->master_unit()->item) // This is a subquery + (select_lex->master_unit()->item && select_limit == HA_POS_ERROR)) // This is a subquery order= NULL; else order= group_list; From b7b4c332c0869676ef69276ddaef4ac4521cb04f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Sun, 22 Jan 2017 08:44:04 +0200 Subject: [PATCH 113/258] MDEV-11614: Syslog messages: "InnoDB: Log sequence number at the start 759654123 and the end 0 do not match." For page compressed and encrypted tables log sequence number at end is not stored, thus disable this message for them. --- storage/innobase/buf/buf0buf.cc | 21 +++++++++++++-------- storage/xtradb/buf/buf0buf.cc | 21 +++++++++++++-------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc index 7a8bcd1b9d0..ef120b8409f 100644 --- a/storage/innobase/buf/buf0buf.cc +++ b/storage/innobase/buf/buf0buf.cc @@ -2,7 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. -Copyright (c) 2013, 2016, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -642,8 +642,12 @@ buf_page_is_corrupted( ulint checksum_field2; ulint space_id = mach_read_from_4( read_buf + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID); + ulint page_type = mach_read_from_4( + read_buf + FIL_PAGE_TYPE); + bool no_checksum = (page_type == FIL_PAGE_PAGE_COMPRESSED || + page_type == FIL_PAGE_PAGE_COMPRESSED_ENCRYPTED); fil_space_crypt_t* crypt_data = fil_space_get_crypt_data(space_id); - bool page_encrypted = false; + /* Page is encrypted if encryption information is found from tablespace and page contains used key_version. This is true @@ -651,10 +655,15 @@ buf_page_is_corrupted( if (crypt_data && crypt_data->type != CRYPT_SCHEME_UNENCRYPTED && fil_page_is_encrypted(read_buf)) { - page_encrypted = true; + no_checksum = true; } - if (!page_encrypted && !zip_size + /* Return early if there is no checksum or END_LSN */ + if (no_checksum) { + return (FALSE); + } + + if (!no_checksum && !zip_size && memcmp(read_buf + FIL_PAGE_LSN + 4, read_buf + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN_OLD_CHKSUM + 4, 4)) { @@ -713,10 +722,6 @@ buf_page_is_corrupted( return(!page_zip_verify_checksum(read_buf, zip_size)); } - if (page_encrypted) { - return (FALSE); - } - checksum_field1 = mach_read_from_4( read_buf + FIL_PAGE_SPACE_OR_CHKSUM); diff --git a/storage/xtradb/buf/buf0buf.cc b/storage/xtradb/buf/buf0buf.cc index e859301a38f..65c4e734968 100644 --- a/storage/xtradb/buf/buf0buf.cc +++ b/storage/xtradb/buf/buf0buf.cc @@ -2,7 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. -Copyright (c) 2013, 2016, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -707,8 +707,12 @@ buf_page_is_corrupted( ulint checksum_field2; ulint space_id = mach_read_from_4( read_buf + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID); + ulint page_type = mach_read_from_4( + read_buf + FIL_PAGE_TYPE); + bool no_checksum = (page_type == FIL_PAGE_PAGE_COMPRESSED || + page_type == FIL_PAGE_PAGE_COMPRESSED_ENCRYPTED); fil_space_crypt_t* crypt_data = fil_space_get_crypt_data(space_id); - bool page_encrypted = false; + /* Page is encrypted if encryption information is found from tablespace and page contains used key_version. This is true @@ -716,10 +720,15 @@ buf_page_is_corrupted( if (crypt_data && crypt_data->type != CRYPT_SCHEME_UNENCRYPTED && fil_page_is_encrypted(read_buf)) { - page_encrypted = true; + no_checksum = true; } - if (!page_encrypted && !zip_size + /* Return early if there is no checksum or END_LSN */ + if (no_checksum) { + return (FALSE); + } + + if (!no_checksum && !zip_size && memcmp(read_buf + FIL_PAGE_LSN + 4, read_buf + UNIV_PAGE_SIZE - FIL_PAGE_END_LSN_OLD_CHKSUM + 4, 4)) { @@ -778,10 +787,6 @@ buf_page_is_corrupted( return(!page_zip_verify_checksum(read_buf, zip_size)); } - if (page_encrypted) { - return (FALSE); - } - checksum_field1 = mach_read_from_4( read_buf + FIL_PAGE_SPACE_OR_CHKSUM); From 10b1f4dd093cb2b21aa9ed09dc453bc52d028b3d Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Mon, 23 Jan 2017 13:32:57 +1100 Subject: [PATCH 114/258] MDEV-11866: ANALYZE FORMAT=JSON not predicatable for r_total_time_ms/r_buffer_size [0-9]*[.]?[0-9]* wasn't a sufficient regex to cover the %lg used in Json_writer::add_double. Exponent formats where missed. Here we normalize all the replace_regex expressions for ANALYZE FORMAT=JSON into one include file. Signed-off-by: Daniel Black --- mysql-test/include/analyze-format.inc | 3 ++ mysql-test/r/analyze_format_json.result | 50 +++++++++---------- mysql-test/t/analyze_format_json.test | 38 +++++++------- mysql-test/t/analyze_stmt_orderby.test | 18 +++---- mysql-test/t/explain_json.test | 10 ++-- .../t/explain_json_format_partitions.test | 6 +-- mysql-test/t/subselect_cache.test | 4 +- 7 files changed, 66 insertions(+), 63 deletions(-) create mode 100644 mysql-test/include/analyze-format.inc diff --git a/mysql-test/include/analyze-format.inc b/mysql-test/include/analyze-format.inc new file mode 100644 index 00000000000..65e61b81582 --- /dev/null +++ b/mysql-test/include/analyze-format.inc @@ -0,0 +1,3 @@ +# The time on ANALYSE FORMAT=JSON is rather variable + +--replace_regex /("(r_total_time_ms|r_buffer_size)": )[^, \n]*/\1"REPLACED"/ diff --git a/mysql-test/r/analyze_format_json.result b/mysql-test/r/analyze_format_json.result index 69930bc0215..78892711dc4 100644 --- a/mysql-test/r/analyze_format_json.result +++ b/mysql-test/r/analyze_format_json.result @@ -487,14 +487,14 @@ ANALYZE "query_block": { "select_id": 1, "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "having_condition": "(TOP > a)", "filesort": { "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "r_used_priority_queue": false, "r_output_rows": 0, - "volatile parameter": "REPLACED", + "r_buffer_size": "REPLACED", "temporary_table": { "table": { "table_name": "t2", @@ -502,7 +502,7 @@ ANALYZE "r_loops": 1, "rows": 256, "r_rows": 256, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filtered": 100, "r_filtered": 100 } @@ -517,13 +517,13 @@ ANALYZE "query_block": { "select_id": 1, "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filesort": { "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "r_used_priority_queue": false, "r_output_rows": 256, - "volatile parameter": "REPLACED", + "r_buffer_size": "REPLACED", "temporary_table": { "table": { "table_name": "t2", @@ -531,7 +531,7 @@ ANALYZE "r_loops": 1, "rows": 256, "r_rows": 256, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filtered": 100, "r_filtered": 100 } @@ -557,13 +557,13 @@ ANALYZE "query_block": { "select_id": 1, "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filesort": { "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "r_used_priority_queue": false, "r_output_rows": 256, - "volatile parameter": "REPLACED", + "r_buffer_size": "REPLACED", "temporary_table": { "table": { "table_name": "t2", @@ -571,7 +571,7 @@ ANALYZE "r_loops": 1, "rows": 256, "r_rows": 256, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filtered": 100, "r_filtered": 100 } @@ -593,14 +593,14 @@ ANALYZE "query_block": { "select_id": 1, "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "table": { "table_name": "t1", "access_type": "ALL", "r_loops": 1, "rows": 2, "r_rows": 2, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filtered": 100, "r_filtered": 100 }, @@ -612,7 +612,7 @@ ANALYZE "r_loops": 1, "rows": 2, "r_rows": 2, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filtered": 100, "r_filtered": 100 }, @@ -625,14 +625,14 @@ ANALYZE "query_block": { "select_id": 2, "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "table": { "table_name": "t1", "access_type": "ALL", "r_loops": 1, "rows": 2, "r_rows": 2, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filtered": 100, "r_filtered": 100 } @@ -646,7 +646,7 @@ ANALYZE "r_loops": 1, "rows": 2, "r_rows": 2, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filtered": 100, "r_filtered": 100 }, @@ -678,19 +678,19 @@ ANALYZE "query_block": { "select_id": 1, "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filesort": { "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "r_used_priority_queue": false, "r_output_rows": 0, - "volatile parameter": "REPLACED", + "r_buffer_size": "REPLACED", "filesort": { "r_loops": 1, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "r_used_priority_queue": false, "r_output_rows": 0, - "volatile parameter": "REPLACED", + "r_buffer_size": "REPLACED", "temporary_table": { "temporary_table": { "table": { @@ -699,7 +699,7 @@ ANALYZE "r_loops": 1, "rows": 2, "r_rows": 2, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filtered": 100, "r_filtered": 100 }, @@ -710,7 +710,7 @@ ANALYZE "r_loops": 1, "rows": 2, "r_rows": 2, - "volatile parameter": "REPLACED", + "r_total_time_ms": "REPLACED", "filtered": 100, "r_filtered": 0, "attached_condition": "(t3.f3 in (1,2))" diff --git a/mysql-test/t/analyze_format_json.test b/mysql-test/t/analyze_format_json.test index 807e02d2334..88a907718d9 100644 --- a/mysql-test/t/analyze_format_json.test +++ b/mysql-test/t/analyze_format_json.test @@ -9,34 +9,34 @@ create table t0 (a int); INSERT INTO t0 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); --echo # r_filtered=30%, because 3 rows match: 0,1,2 ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t0 where a<3; create table t1 (a int, b int, c int, key(a)); insert into t1 select A.a*10 + B.a, A.a*10 + B.a, A.a*10 + B.a from t0 A, t0 B; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze select * from t0, t1 where t1.a=t0.a and t0.a > 9; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t0, t1 where t1.a=t0.a and t0.a > 9; analyze select * from t0, t1 where t1.a=t0.a and t1.b<4; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t0, t1 where t1.a=t0.a and t1.b<4; analyze select * from t1 tbl1, t1 tbl2 where tbl1.b<2 and tbl2.b>5; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t1 tbl1, t1 tbl2 where tbl1.b<20 and tbl2.b<60; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t1 tbl1, t1 tbl2 where tbl1.b<20 and tbl2.b<60 and tbl1.c > tbl2.c; @@ -53,7 +53,7 @@ insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t2 (a int, key(a)); insert into t2 values (0),(1); ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t1 straight_join t2 force index(a) where t2.a=t1.a; drop table t1,t2; @@ -69,7 +69,7 @@ select database(); connect (con1,localhost,root,,*NO-ONE*); connection con1; select database(); ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from test.t1 where t1.a<5; disconnect con1; connection default; @@ -91,15 +91,15 @@ create table t1 (pk int primary key); insert into t1 select a from t3; alter table t1 add b int; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json update t1 set b=pk; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t1 where pk < 10 and b > 4; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json delete from t1 where pk < 10 and b > 4; @@ -127,7 +127,7 @@ create table t2 (key1 int, key2 int, key3 int, key4 int, col1 int, insert into t2 select a,a,a,a,a from t3; insert into t2 select 15,15,15,15,15 from t4; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t1, t2 where (t2.key1 between t1.lb1 and t1.rb1) and (t2.key2 between t1.lb2 and t1.rb2) and @@ -144,7 +144,7 @@ INSERT INTO t0 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1 (a int); INSERT INTO t1 select * from t0; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json (select * from t1 tbl1 where a<5) union (select * from t1 tbl2 where a in (2,3)); drop table t0, t1; @@ -164,16 +164,16 @@ create table t2 ( ); insert into t2 select A.a*1000 + B.a, A.a*1000 + B.a from t0 A, t1 B; --echo # normal HAVING ---replace_regex /"(r_total_time_ms|r_buffer_size)": .*?,/"volatile parameter": "REPLACED",/ +--source include/analyze-format.inc analyze format=json select a, max(b) as TOP from t2 group by a having TOP > a; --echo # HAVING is always TRUE (not printed) ---replace_regex /"(r_total_time_ms|r_buffer_size)": .*?,/"volatile parameter": "REPLACED",/ +--source include/analyze-format.inc analyze format=json select a, max(b) as TOP from t2 group by a having 1<>2; --echo # HAVING is always FALSE (intercepted by message) ---replace_regex /"(r_total_time_ms|r_buffer_size)": .*?,/"volatile parameter": "REPLACED",/ +--source include/analyze-format.inc analyze format=json select a, max(b) as TOP from t2 group by a having 1=2; --echo # HAVING is absent ---replace_regex /"(r_total_time_ms|r_buffer_size)": .*?,/"volatile parameter": "REPLACED",/ +--source include/analyze-format.inc analyze format=json select a, max(b) as TOP from t2 group by a; drop table t0, t1, t2; @@ -186,7 +186,7 @@ INSERT INTO t1 VALUES (1),(2); CREATE TABLE t2 (b INT); INSERT INTO t2 VALUES (3),(4); ---replace_regex /"(r_total_time_ms|r_buffer_size)": .*?,/"volatile parameter": "REPLACED",/ +--source include/analyze-format.inc ANALYZE FORMAT=JSON SELECT STRAIGHT_JOIN * FROM t1, t2 WHERE b IN ( SELECT a FROM t1 ); drop table t1,t2; @@ -203,7 +203,7 @@ INSERT INTO t2 VALUES (2),(3); CREATE TABLE t3 (f3 INT) ENGINE=MyISAM; INSERT INTO t3 VALUES (3),(4); ---replace_regex /"(r_total_time_ms|r_buffer_size)": .*?,/"volatile parameter": "REPLACED",/ +--source include/analyze-format.inc ANALYZE FORMAT=JSON SELECT GROUP_CONCAT(f3) AS gc, ( SELECT MAX(f1) FROM t1, t2 WHERE f2 = f3 ) sq FROM t2, t3 diff --git a/mysql-test/t/analyze_stmt_orderby.test b/mysql-test/t/analyze_stmt_orderby.test index a40f34805d1..a1cfb58f31a 100644 --- a/mysql-test/t/analyze_stmt_orderby.test +++ b/mysql-test/t/analyze_stmt_orderby.test @@ -22,7 +22,7 @@ explain update t2 set b=b+1 order by b limit 5; explain format=json update t2 set b=b+1 order by b limit 5; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json update t2 set b=b+1 order by b limit 5; @@ -33,7 +33,7 @@ explain update t2 set a=a+1 where a<10; explain format=json update t2 set a=a+1 where a<10; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json update t2 set a=a+1 where a<10; @@ -44,7 +44,7 @@ explain delete from t2 order by b limit 5; explain format=json delete from t2 order by b limit 5; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ /"r_buffer_size": "[^"]+"/"r_buffer_size": "REPLACED"/ +--source include/analyze-format.inc analyze format=json delete from t2 order by b limit 5; @@ -55,7 +55,7 @@ explain select * from t0,t2 where t2.a=t0.a order by t2.b limit 4; explain format=json select * from t0,t2 where t2.a=t0.a order by t2.b limit 4; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t0,t2 where t2.a=t0.a order by t2.b limit 4; @@ -67,7 +67,7 @@ explain select * from t0,t2 where t2.a=t0.a order by t0.a limit 4; explain format=json select * from t0,t2 where t2.a=t0.a order by t0.a limit 4; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ /"r_buffer_size": "[^"]+"/"r_buffer_size": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t0,t2 where t2.a=t0.a order by t0.a limit 4; @@ -86,7 +86,7 @@ select c.a from t0 a, t0 b, t0 c; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ /"r_buffer_size": "[^"]+"/"r_buffer_size": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select MAX(b) from t2 where mod(a,2)=0 group by c; @@ -115,7 +115,7 @@ drop table t3; create table t3 (a int, b int); insert into t3 select a, 123 from t0; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ /"r_buffer_size": "[^"]+"/"r_buffer_size": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select distinct max(t3.b) Q from t0, t3 where t0.a=t3.a group by t0.a order by null; @@ -136,7 +136,7 @@ insert into t6 values (0, 0), (1, 1), (2, 1), (3, 1), (4, 1); insert into t7 values (3, 3), (2, 2), (1, 1); --echo # TODO: This ANALYZE output doesn't make it clear what is used for what. ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ /"r_buffer_size": "[^"]+"/"r_buffer_size": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select count(distinct t5.b) as sum from t5, t6 where t5.a=t6.a and t6.b > 0 and t5.a <= 5 @@ -168,7 +168,7 @@ explain select col1 f1, col2 f2, col1 f3 from t2 group by f1; analyze select col1 f1, col2 f2, col1 f3 from t2 group by f1; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ /"r_buffer_size": "[^"]+"/"r_buffer_size": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select col1 f1, col2 f2, col1 f3 from t2 group by f1; drop table t2; diff --git a/mysql-test/t/explain_json.test b/mysql-test/t/explain_json.test index 153d85359c9..2ca91c1f200 100644 --- a/mysql-test/t/explain_json.test +++ b/mysql-test/t/explain_json.test @@ -219,7 +219,7 @@ create table t1 (a int, b int, c int, d int, key(a,b,c)); insert into t1 select A.a, B.a, C.a, D.a from t2 A, t2 B, t2 C, t2 D; explain select count(distinct b) from t1 group by a; explain format=json select count(distinct b) from t1 group by a; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select count(distinct b) from t1 group by a; drop table t1,t2; @@ -342,7 +342,7 @@ explain select * from t1 left join t2 on t2.pk > 10 and t2.pk < 0; explain format=json select * from t1 left join t2 on t2.pk > 10 and t2.pk < 0; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t1 left join t2 on t2.pk > 10 and t2.pk < 0; @@ -351,7 +351,7 @@ explain select * from t1 left join t2 on t2.pk=t1.a where t2.pk is null; explain format=json select * from t1 left join t2 on t2.pk=t1.a where t2.pk is null; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t1 left join t2 on t2.pk=t1.a where t2.pk is null; @@ -360,7 +360,7 @@ explain select distinct t1.a from t1 join t2 on t2.pk=t1.a; explain format=json select distinct t1.a from t1 join t2 on t2.pk=t1.a; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select distinct t1.a from t1 join t2 on t2.pk=t1.a; drop table t1,t2; @@ -386,7 +386,7 @@ explain select * from t3,t4 where t3.a=t4.a and (t4.b+1 <= t3.b+1); explain format=json select * from t3,t4 where t3.a=t4.a and (t4.b+1 <= t3.b+1); ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t3,t4 where t3.a=t4.a and (t4.b+1 <= t3.b+1); set optimizer_switch=@tmp_optimizer_switch; diff --git a/mysql-test/t/explain_json_format_partitions.test b/mysql-test/t/explain_json_format_partitions.test index f3567797019..4c7d3f165d1 100644 --- a/mysql-test/t/explain_json_format_partitions.test +++ b/mysql-test/t/explain_json_format_partitions.test @@ -8,10 +8,10 @@ create table t1 ( insert into t1 select a from t2; explain partitions select * from t1 where a in (2,3,4); explain format=json select * from t1 where a in (2,3,4); ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select * from t1 where a in (2,3,4); ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json update t1 set a=a+10 where a in (2,3,4); ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json delete from t1 where a in (20,30,40); drop table t1,t2; diff --git a/mysql-test/t/subselect_cache.test b/mysql-test/t/subselect_cache.test index 21247541fb6..55da0000f13 100644 --- a/mysql-test/t/subselect_cache.test +++ b/mysql-test/t/subselect_cache.test @@ -24,10 +24,10 @@ select a, (select d from t2 where b=c) from t1; show status like "subquery_cache%"; show status like '%Handler_read%'; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select a, (select d from t2 where b=c) from t1; ---replace_regex /"r_total_time_ms": [0-9]*[.]?[0-9]*/"r_total_time_ms": "REPLACED"/ +--source include/analyze-format.inc analyze format=json select a, (select d from t2 where b=c), (select d from t2 where b=c union select 1 order by 1 limit 1) from t1; explain format=json From 15f46d517435f3570e2c788349637a06d818a619 Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Mon, 23 Jan 2017 22:27:42 +0530 Subject: [PATCH 115/258] MDEV-7409 On RBR, extend the PROCESSLIST info to include at least the name of the recently used table When RBR is used, add the db name to db Field and table name to Status Field of the "SHOW FULL PROCESSLIST" command for SQL thread. --- mysql-test/suite/rpl/r/rpl_rbr_monitor.result | 62 ++++++++++++++ mysql-test/suite/rpl/t/rpl_rbr_monitor.test | 79 ++++++++++++++++++ sql/log_event.cc | 83 ++++++++++++++----- 3 files changed, 204 insertions(+), 20 deletions(-) create mode 100644 mysql-test/suite/rpl/r/rpl_rbr_monitor.result create mode 100644 mysql-test/suite/rpl/t/rpl_rbr_monitor.test diff --git a/mysql-test/suite/rpl/r/rpl_rbr_monitor.result b/mysql-test/suite/rpl/r/rpl_rbr_monitor.result new file mode 100644 index 00000000000..0aa9e7807c1 --- /dev/null +++ b/mysql-test/suite/rpl/r/rpl_rbr_monitor.result @@ -0,0 +1,62 @@ +include/master-slave.inc +[connection master] +connection master; +create table t1(a int primary key); +connection slave; +SET GLOBAL debug_dbug="+d,should_sleep_for_mdev7409"; +select * from t1; +a +connection master; +insert into t1(a) values(1); +#monitoring write rows +connection slave; +SELECT db , state FROM INFORMATION_SCHEMA.PROCESSLIST +WHERE DB = 'test' AND STATE LIKE "Write_rows_log_event::write_row(%) on table t1"; +db state +test Write_rows_log_event::write_row(-1) on table t1 +#monitoring update rows +connection master; +update t1 set a = a + 4194304 ; +connection slave; +SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST +WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::find_row(%) on table t1"; +db state +test Update_rows_log_event::find_row(-1) on table t1 +SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST +WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::unpack_current_row(%) on table t1"; +db state +test Update_rows_log_event::unpack_current_row(-1) on table t1 +SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST +WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::ha_update_row(%) on table t1"; +db state +test Update_rows_log_event::ha_update_row(-1) on table t1 +#monitoring delete rows +connection master; +delete from t1 where a>1; +connection slave; +SELECT db , state FROM INFORMATION_SCHEMA.PROCESSLIST +WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::find_row(%) on table t1"; +db state +test Delete_rows_log_event::find_row(-1) on table t1 +SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST +WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::ha_delete_row(%) on table t1"; +db state +test Delete_rows_log_event::ha_delete_row(-1) on table t1 +connection master; +drop table t1; +connection slave; +SET GLOBAL debug_dbug=""; +include/rpl_end.inc +connection server_2; +connection server_2; +connection server_2; +connection server_2; +connection server_1; +connection server_1; +connection server_1; +connection server_2; +connection server_1; +connection server_2; +connection server_2; +connection server_1; +connection server_1; diff --git a/mysql-test/suite/rpl/t/rpl_rbr_monitor.test b/mysql-test/suite/rpl/t/rpl_rbr_monitor.test new file mode 100644 index 00000000000..becd6599124 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_rbr_monitor.test @@ -0,0 +1,79 @@ +--source include/have_innodb.inc +--source include/have_binlog_format_row.inc +--source include/master-slave.inc +--enable_connect_log + +--connection master +create table t1(a int primary key); +--save_master_pos + +--connection slave +--sync_with_master +SET GLOBAL debug_dbug="+d,should_sleep_for_mdev7409"; +select * from t1; + +--connection master +insert into t1(a) values(1); +--save_master_pos + +--echo #monitoring write rows +--connection slave + +let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Write_rows_log_event::write_row(%) on table t1"; +--source include/wait_condition.inc +SELECT db , state FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Write_rows_log_event::write_row(%) on table t1"; +--sync_with_master + +--echo #monitoring update rows +--connection master +update t1 set a = a + 4194304 ; + +--connection slave +let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::find_row(%) on table t1"; +--source include/wait_condition.inc +SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::find_row(%) on table t1"; + +let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::unpack_current_row(%) on table t1"; +--source include/wait_condition.inc +SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::unpack_current_row(%) on table t1"; + +let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::ha_update_row(%) on table t1"; +--source include/wait_condition.inc +SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::ha_update_row(%) on table t1"; + +--source include/wait_condition.inc +--sync_with_master + +--echo #monitoring delete rows +--connection master +delete from t1 where a>1; + +--connection slave +let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::find_row(%) on table t1"; +--source include/wait_condition.inc +SELECT db , state FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::find_row(%) on table t1"; + +let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::ha_delete_row(%) on table t1"; +--source include/wait_condition.inc +SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::ha_delete_row(%) on table t1"; + +--sync_with_master + +#CleanUp +--connection master +drop table t1; +--connection slave +SET GLOBAL debug_dbug=""; +--source include/rpl_end.inc diff --git a/sql/log_event.cc b/sql/log_event.cc index 21b5de2725e..05112712322 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -11765,18 +11765,27 @@ Write_rows_log_event::do_exec_row(rpl_group_info *rgi) { DBUG_ASSERT(m_table != NULL); const char *tmp= thd->get_proc_info(); - const char *message= "Write_rows_log_event::write_row()"; + char *tmp_db= thd->db; + char *message, msg[128]; + my_snprintf(msg, sizeof(msg),"Write_rows_log_event::write_row() on table %s", + m_table->s->table_name.str); + thd->db= m_table->s->db.str; + message= msg; #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Write_rows_log_event::write_row(%lld)", - (long long) wsrep_thd_trx_seqno(thd)); + "Write_rows_log_event::write_row(%lld) on table %s", + (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str); message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ thd_proc_info(thd, message); + DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ + my_sleep(500000); + };); int error= write_row(rgi, slave_exec_mode == SLAVE_EXEC_MODE_IDEMPOTENT); thd_proc_info(thd, tmp); + thd->db= tmp_db; if (error && !thd->is_error()) { @@ -12372,32 +12381,45 @@ int Delete_rows_log_event::do_exec_row(rpl_group_info *rgi) { int error; const char *tmp= thd->get_proc_info(); - const char *message= "Delete_rows_log_event::find_row()"; + char *tmp_db= thd->db; + char *message, msg[128]; + my_snprintf(msg, sizeof(msg),"Delete_rows_log_event::find_row() on table %s", + m_table->s->table_name.str); + thd->db= m_table->s->db.str; + message= msg; const bool invoke_triggers= slave_run_triggers_for_rbr && !master_had_triggers && m_table->triggers; DBUG_ASSERT(m_table != NULL); #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Delete_rows_log_event::find_row(%lld)", - (long long) wsrep_thd_trx_seqno(thd)); + "Delete_rows_log_event::find_row(%lld) on table %s", + (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ thd_proc_info(thd, message); + DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ + my_sleep(500000); + };); if (!(error= find_row(rgi))) { /* Delete the record found, located in record[0] */ - message= "Delete_rows_log_event::ha_delete_row()"; + my_snprintf(msg, sizeof(msg),"Delete_rows_log_event::ha_delete_row() on table %s", + m_table->s->table_name.str); + message= msg; #ifdef WSREP_PROC_INFO snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Delete_rows_log_event::ha_delete_row(%lld)", - (long long) wsrep_thd_trx_seqno(thd)); + "Delete_rows_log_event::ha_delete_row(%lld) on table %s", + (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; message= thd->wsrep_info; #endif thd_proc_info(thd, message); + DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ + my_sleep(500000); + };); if (invoke_triggers && process_triggers(TRG_EVENT_DELETE, TRG_ACTION_BEFORE, FALSE)) @@ -12414,6 +12436,7 @@ int Delete_rows_log_event::do_exec_row(rpl_group_info *rgi) m_table->file->ha_index_or_rnd_end(); } thd_proc_info(thd, tmp); + thd->db= tmp_db; return error; } @@ -12532,17 +12555,26 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) const bool invoke_triggers= slave_run_triggers_for_rbr && !master_had_triggers && m_table->triggers; const char *tmp= thd->get_proc_info(); - const char *message= "Update_rows_log_event::find_row()"; + char *tmp_db= thd->db; + char *message, msg[128]; DBUG_ASSERT(m_table != NULL); + my_snprintf(msg, sizeof(msg),"Update_rows_log_event::find_row() on table %s", + m_table->s->table_name.str); + thd->db= m_table->s->db.str; + message= msg; #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Update_rows_log_event::find_row(%lld)", - (long long) wsrep_thd_trx_seqno(thd)); + "Update_rows_log_event::find_row(%lld) on table %s", + (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ thd_proc_info(thd, message); + DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ + my_sleep(500000); + };); + int error= find_row(rgi); if (error) { @@ -12553,6 +12585,7 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) if ((m_curr_row= m_curr_row_end)) unpack_current_row(rgi, &m_cols_ai); thd_proc_info(thd, tmp); + thd->db= tmp_db; return error; } @@ -12570,16 +12603,21 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) store_record(m_table,record[1]); m_curr_row= m_curr_row_end; - message= "Update_rows_log_event::unpack_current_row()"; + my_snprintf(msg, sizeof(msg),"Update_rows_log_event::unpack_current_row() on table %s", + m_table->s->table_name.str); + message= msg; #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Update_rows_log_event::unpack_current_row(%lld)", - (long long) wsrep_thd_trx_seqno(thd)); + "Update_rows_log_event::unpack_current_row(%lld) on table %s", + (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ /* this also updates m_curr_row_end */ thd_proc_info(thd, message); + DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ + my_sleep(500000); + };); if ((error= unpack_current_row(rgi, &m_cols_ai))) goto err; @@ -12597,15 +12635,20 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) DBUG_DUMP("new values", m_table->record[0], m_table->s->reclength); #endif - message= "Update_rows_log_event::ha_update_row()"; + my_snprintf(msg, sizeof(msg),"Update_rows_log_event::ha_update_row() on table %s", + m_table->s->table_name.str); + message= msg; #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Update_rows_log_event::ha_update_row(%lld)", - (long long) wsrep_thd_trx_seqno(thd)); + "Update_rows_log_event::ha_update_row(%lld) on table %s", + (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ thd_proc_info(thd, message); + DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ + my_sleep(500000); + };); if (invoke_triggers && process_triggers(TRG_EVENT_UPDATE, TRG_ACTION_BEFORE, TRUE)) { @@ -12627,9 +12670,9 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) process_triggers(TRG_EVENT_UPDATE, TRG_ACTION_AFTER, TRUE)) error= HA_ERR_GENERIC; // in case if error is not set yet - thd_proc_info(thd, tmp); - err: + thd_proc_info(thd, tmp); + thd->db= tmp_db; m_table->file->ha_index_or_rnd_end(); return error; } From 8725b35d897cfad6e55217ae80e7c387e8dfe8da Mon Sep 17 00:00:00 2001 From: Varun Gupta Date: Tue, 24 Jan 2017 01:25:50 +0530 Subject: [PATCH 116/258] MDEV-11108: Assertion `uniq_tuple_length_arg <= table->file->max_key_length()' failed in SJ_TMP_TABLE::create_sj_weedout_tmp_table Removed the assert from the if clause to the else clause. --- sql/opt_subselect.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/opt_subselect.cc b/sql/opt_subselect.cc index a81b091461f..564a108c766 100644 --- a/sql/opt_subselect.cc +++ b/sql/opt_subselect.cc @@ -4044,13 +4044,13 @@ SJ_TMP_TABLE::create_sj_weedout_tmp_table(THD *thd) share->db_plugin= ha_lock_engine(0, TMP_ENGINE_HTON); table->file= get_new_handler(share, &table->mem_root, share->db_type()); - DBUG_ASSERT(uniq_tuple_length_arg <= table->file->max_key_length()); } else { share->db_plugin= ha_lock_engine(0, heap_hton); table->file= get_new_handler(share, &table->mem_root, share->db_type()); + DBUG_ASSERT(uniq_tuple_length_arg <= table->file->max_key_length()); } if (!table->file) goto err; From 86ca1357b0637f76be4184b76cbe4b32080c10de Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Tue, 24 Jan 2017 19:26:16 +0530 Subject: [PATCH 117/258] Revert "MDEV-7409 On RBR, extend the PROCESSLIST info to include at least the name of the recently used table" This reverts commit 15f46d517435f3570e2c788349637a06d818a619. --- mysql-test/suite/rpl/r/rpl_rbr_monitor.result | 62 -------------- mysql-test/suite/rpl/t/rpl_rbr_monitor.test | 79 ------------------ sql/log_event.cc | 83 +++++-------------- 3 files changed, 20 insertions(+), 204 deletions(-) delete mode 100644 mysql-test/suite/rpl/r/rpl_rbr_monitor.result delete mode 100644 mysql-test/suite/rpl/t/rpl_rbr_monitor.test diff --git a/mysql-test/suite/rpl/r/rpl_rbr_monitor.result b/mysql-test/suite/rpl/r/rpl_rbr_monitor.result deleted file mode 100644 index 0aa9e7807c1..00000000000 --- a/mysql-test/suite/rpl/r/rpl_rbr_monitor.result +++ /dev/null @@ -1,62 +0,0 @@ -include/master-slave.inc -[connection master] -connection master; -create table t1(a int primary key); -connection slave; -SET GLOBAL debug_dbug="+d,should_sleep_for_mdev7409"; -select * from t1; -a -connection master; -insert into t1(a) values(1); -#monitoring write rows -connection slave; -SELECT db , state FROM INFORMATION_SCHEMA.PROCESSLIST -WHERE DB = 'test' AND STATE LIKE "Write_rows_log_event::write_row(%) on table t1"; -db state -test Write_rows_log_event::write_row(-1) on table t1 -#monitoring update rows -connection master; -update t1 set a = a + 4194304 ; -connection slave; -SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST -WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::find_row(%) on table t1"; -db state -test Update_rows_log_event::find_row(-1) on table t1 -SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST -WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::unpack_current_row(%) on table t1"; -db state -test Update_rows_log_event::unpack_current_row(-1) on table t1 -SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST -WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::ha_update_row(%) on table t1"; -db state -test Update_rows_log_event::ha_update_row(-1) on table t1 -#monitoring delete rows -connection master; -delete from t1 where a>1; -connection slave; -SELECT db , state FROM INFORMATION_SCHEMA.PROCESSLIST -WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::find_row(%) on table t1"; -db state -test Delete_rows_log_event::find_row(-1) on table t1 -SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST -WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::ha_delete_row(%) on table t1"; -db state -test Delete_rows_log_event::ha_delete_row(-1) on table t1 -connection master; -drop table t1; -connection slave; -SET GLOBAL debug_dbug=""; -include/rpl_end.inc -connection server_2; -connection server_2; -connection server_2; -connection server_2; -connection server_1; -connection server_1; -connection server_1; -connection server_2; -connection server_1; -connection server_2; -connection server_2; -connection server_1; -connection server_1; diff --git a/mysql-test/suite/rpl/t/rpl_rbr_monitor.test b/mysql-test/suite/rpl/t/rpl_rbr_monitor.test deleted file mode 100644 index becd6599124..00000000000 --- a/mysql-test/suite/rpl/t/rpl_rbr_monitor.test +++ /dev/null @@ -1,79 +0,0 @@ ---source include/have_innodb.inc ---source include/have_binlog_format_row.inc ---source include/master-slave.inc ---enable_connect_log - ---connection master -create table t1(a int primary key); ---save_master_pos - ---connection slave ---sync_with_master -SET GLOBAL debug_dbug="+d,should_sleep_for_mdev7409"; -select * from t1; - ---connection master -insert into t1(a) values(1); ---save_master_pos - ---echo #monitoring write rows ---connection slave - -let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Write_rows_log_event::write_row(%) on table t1"; ---source include/wait_condition.inc -SELECT db , state FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Write_rows_log_event::write_row(%) on table t1"; ---sync_with_master - ---echo #monitoring update rows ---connection master -update t1 set a = a + 4194304 ; - ---connection slave -let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::find_row(%) on table t1"; ---source include/wait_condition.inc -SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::find_row(%) on table t1"; - -let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::unpack_current_row(%) on table t1"; ---source include/wait_condition.inc -SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::unpack_current_row(%) on table t1"; - -let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::ha_update_row(%) on table t1"; ---source include/wait_condition.inc -SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Update_rows_log_event::ha_update_row(%) on table t1"; - ---source include/wait_condition.inc ---sync_with_master - ---echo #monitoring delete rows ---connection master -delete from t1 where a>1; - ---connection slave -let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::find_row(%) on table t1"; ---source include/wait_condition.inc -SELECT db , state FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::find_row(%) on table t1"; - -let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::ha_delete_row(%) on table t1"; ---source include/wait_condition.inc -SELECT db, state FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE DB = 'test' AND STATE LIKE "Delete_rows_log_event::ha_delete_row(%) on table t1"; - ---sync_with_master - -#CleanUp ---connection master -drop table t1; ---connection slave -SET GLOBAL debug_dbug=""; ---source include/rpl_end.inc diff --git a/sql/log_event.cc b/sql/log_event.cc index 05112712322..21b5de2725e 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -11765,27 +11765,18 @@ Write_rows_log_event::do_exec_row(rpl_group_info *rgi) { DBUG_ASSERT(m_table != NULL); const char *tmp= thd->get_proc_info(); - char *tmp_db= thd->db; - char *message, msg[128]; - my_snprintf(msg, sizeof(msg),"Write_rows_log_event::write_row() on table %s", - m_table->s->table_name.str); - thd->db= m_table->s->db.str; - message= msg; + const char *message= "Write_rows_log_event::write_row()"; #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Write_rows_log_event::write_row(%lld) on table %s", - (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str); + "Write_rows_log_event::write_row(%lld)", + (long long) wsrep_thd_trx_seqno(thd)); message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ thd_proc_info(thd, message); - DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ - my_sleep(500000); - };); int error= write_row(rgi, slave_exec_mode == SLAVE_EXEC_MODE_IDEMPOTENT); thd_proc_info(thd, tmp); - thd->db= tmp_db; if (error && !thd->is_error()) { @@ -12381,45 +12372,32 @@ int Delete_rows_log_event::do_exec_row(rpl_group_info *rgi) { int error; const char *tmp= thd->get_proc_info(); - char *tmp_db= thd->db; - char *message, msg[128]; - my_snprintf(msg, sizeof(msg),"Delete_rows_log_event::find_row() on table %s", - m_table->s->table_name.str); - thd->db= m_table->s->db.str; - message= msg; + const char *message= "Delete_rows_log_event::find_row()"; const bool invoke_triggers= slave_run_triggers_for_rbr && !master_had_triggers && m_table->triggers; DBUG_ASSERT(m_table != NULL); #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Delete_rows_log_event::find_row(%lld) on table %s", - (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; + "Delete_rows_log_event::find_row(%lld)", + (long long) wsrep_thd_trx_seqno(thd)); message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ thd_proc_info(thd, message); - DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ - my_sleep(500000); - };); if (!(error= find_row(rgi))) { /* Delete the record found, located in record[0] */ - my_snprintf(msg, sizeof(msg),"Delete_rows_log_event::ha_delete_row() on table %s", - m_table->s->table_name.str); - message= msg; + message= "Delete_rows_log_event::ha_delete_row()"; #ifdef WSREP_PROC_INFO snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Delete_rows_log_event::ha_delete_row(%lld) on table %s", - (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; + "Delete_rows_log_event::ha_delete_row(%lld)", + (long long) wsrep_thd_trx_seqno(thd)); message= thd->wsrep_info; #endif thd_proc_info(thd, message); - DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ - my_sleep(500000); - };); if (invoke_triggers && process_triggers(TRG_EVENT_DELETE, TRG_ACTION_BEFORE, FALSE)) @@ -12436,7 +12414,6 @@ int Delete_rows_log_event::do_exec_row(rpl_group_info *rgi) m_table->file->ha_index_or_rnd_end(); } thd_proc_info(thd, tmp); - thd->db= tmp_db; return error; } @@ -12555,26 +12532,17 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) const bool invoke_triggers= slave_run_triggers_for_rbr && !master_had_triggers && m_table->triggers; const char *tmp= thd->get_proc_info(); - char *tmp_db= thd->db; - char *message, msg[128]; + const char *message= "Update_rows_log_event::find_row()"; DBUG_ASSERT(m_table != NULL); - my_snprintf(msg, sizeof(msg),"Update_rows_log_event::find_row() on table %s", - m_table->s->table_name.str); - thd->db= m_table->s->db.str; - message= msg; #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Update_rows_log_event::find_row(%lld) on table %s", - (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; + "Update_rows_log_event::find_row(%lld)", + (long long) wsrep_thd_trx_seqno(thd)); message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ thd_proc_info(thd, message); - DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ - my_sleep(500000); - };); - int error= find_row(rgi); if (error) { @@ -12585,7 +12553,6 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) if ((m_curr_row= m_curr_row_end)) unpack_current_row(rgi, &m_cols_ai); thd_proc_info(thd, tmp); - thd->db= tmp_db; return error; } @@ -12603,21 +12570,16 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) store_record(m_table,record[1]); m_curr_row= m_curr_row_end; - my_snprintf(msg, sizeof(msg),"Update_rows_log_event::unpack_current_row() on table %s", - m_table->s->table_name.str); - message= msg; + message= "Update_rows_log_event::unpack_current_row()"; #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Update_rows_log_event::unpack_current_row(%lld) on table %s", - (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; + "Update_rows_log_event::unpack_current_row(%lld)", + (long long) wsrep_thd_trx_seqno(thd)); message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ /* this also updates m_curr_row_end */ thd_proc_info(thd, message); - DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ - my_sleep(500000); - };); if ((error= unpack_current_row(rgi, &m_cols_ai))) goto err; @@ -12635,20 +12597,15 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) DBUG_DUMP("new values", m_table->record[0], m_table->s->reclength); #endif - my_snprintf(msg, sizeof(msg),"Update_rows_log_event::ha_update_row() on table %s", - m_table->s->table_name.str); - message= msg; + message= "Update_rows_log_event::ha_update_row()"; #ifdef WSREP_PROC_INFO my_snprintf(thd->wsrep_info, sizeof(thd->wsrep_info) - 1, - "Update_rows_log_event::ha_update_row(%lld) on table %s", - (long long) wsrep_thd_trx_seqno(thd), m_table->s->table_name.str) ; + "Update_rows_log_event::ha_update_row(%lld)", + (long long) wsrep_thd_trx_seqno(thd)); message= thd->wsrep_info; #endif /* WSREP_PROC_INFO */ thd_proc_info(thd, message); - DBUG_EXECUTE_IF("should_sleep_for_mdev7409",{ - my_sleep(500000); - };); if (invoke_triggers && process_triggers(TRG_EVENT_UPDATE, TRG_ACTION_BEFORE, TRUE)) { @@ -12670,9 +12627,9 @@ Update_rows_log_event::do_exec_row(rpl_group_info *rgi) process_triggers(TRG_EVENT_UPDATE, TRG_ACTION_AFTER, TRUE)) error= HA_ERR_GENERIC; // in case if error is not set yet -err: thd_proc_info(thd, tmp); - thd->db= tmp_db; + +err: m_table->file->ha_index_or_rnd_end(); return error; } From ee3febae044e8258c1a33d5ef08ff4eb55c3d0f5 Mon Sep 17 00:00:00 2001 From: iangilfillan Date: Thu, 26 Jan 2017 13:51:03 +0200 Subject: [PATCH 118/258] Minor typo --- scripts/mariadb-service-convert | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mariadb-service-convert b/scripts/mariadb-service-convert index 42654f68420..83c92659144 100755 --- a/scripts/mariadb-service-convert +++ b/scripts/mariadb-service-convert @@ -16,7 +16,7 @@ # # PURPOSE: # -# Used to generate a mariadb.service file based on the curent mysql/maridb settings +# Used to generate a mariadb.service file based on the current mysql/mariadb settings # # This is to assist distro maintainers in migrating to systemd service definations from # a user mysqld_safe settings in the my.cnf files. From 49fe9bad01cbd7f66efd52171c4234636ba61276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 25 Jan 2017 15:11:46 +0200 Subject: [PATCH 119/258] MDEV-11814 Refuse innodb_read_only startup if crash recovery is needed recv_scan_log_recs(): Remember if redo log apply is needed, even if starting up in innodb_read_only mode. recv_recovery_from_checkpoint_start_func(): Refuse innodb_read_only startup if redo log apply is needed. --- .../include/kill_and_restart_mysqld.inc | 19 ++ mysql-test/include/kill_mysqld.inc | 7 + mysql-test/include/search_pattern_in_file.inc | 41 ++-- mysql-test/include/start_mysqld.inc | 9 +- .../suite/innodb/r/log_file_size.result | 35 ++++ mysql-test/suite/innodb/t/log_file_size.test | 185 ++++++++++++++++++ storage/innobase/log/log0recv.cc | 14 +- storage/xtradb/log/log0recv.cc | 15 +- 8 files changed, 299 insertions(+), 26 deletions(-) create mode 100644 mysql-test/include/kill_and_restart_mysqld.inc create mode 100644 mysql-test/include/kill_mysqld.inc create mode 100644 mysql-test/suite/innodb/r/log_file_size.result create mode 100644 mysql-test/suite/innodb/t/log_file_size.test diff --git a/mysql-test/include/kill_and_restart_mysqld.inc b/mysql-test/include/kill_and_restart_mysqld.inc new file mode 100644 index 00000000000..f2ac9b504d2 --- /dev/null +++ b/mysql-test/include/kill_and_restart_mysqld.inc @@ -0,0 +1,19 @@ +--let $_server_id= `SELECT @@server_id` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect + +if ($restart_parameters) +{ + --echo # Kill and restart: $restart_parameters + --exec echo "restart: $restart_parameters" > $_expect_file_name +} +if (!$restart_parameters) +{ + --echo # Kill and restart + --exec echo "restart" > $_expect_file_name +} + +--shutdown_server 0 +--source include/wait_until_disconnected.inc +--enable_reconnect +--source include/wait_until_connected_again.inc +--disable_reconnect diff --git a/mysql-test/include/kill_mysqld.inc b/mysql-test/include/kill_mysqld.inc new file mode 100644 index 00000000000..86ee048a0f1 --- /dev/null +++ b/mysql-test/include/kill_mysqld.inc @@ -0,0 +1,7 @@ +--let $_server_id= `SELECT @@server_id` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect + +--echo # Kill the server +--exec echo "wait" > $_expect_file_name +--shutdown_server 0 +--source include/wait_until_disconnected.inc diff --git a/mysql-test/include/search_pattern_in_file.inc b/mysql-test/include/search_pattern_in_file.inc index 84237026ed0..f77a7c60916 100644 --- a/mysql-test/include/search_pattern_in_file.inc +++ b/mysql-test/include/search_pattern_in_file.inc @@ -60,25 +60,36 @@ perl; use strict; - my $search_file= $ENV{'SEARCH_FILE'} or die "SEARCH_FILE not set"; + die "SEARCH_FILE not set" unless $ENV{'SEARCH_FILE'}; + my @search_files= glob($ENV{'SEARCH_FILE'}); my $search_pattern= $ENV{'SEARCH_PATTERN'} or die "SEARCH_PATTERN not set"; my $search_range= $ENV{'SEARCH_RANGE'}; - my $file_content; + my $content; $search_range= 50000 unless $search_range =~ /-?[0-9]+/; - open(FILE, '<', $search_file) or die("Unable to open '$search_file': $!\n"); - if ($search_range >= 0) { - read(FILE, $file_content, $search_range, 0); - } else { - my $size= -s $search_file; - $search_range = -$size if $size > -$search_range; - seek(FILE, $search_range, 2); - read(FILE, $file_content, -$search_range, 0); + foreach my $search_file (@search_files) { + open(FILE, '<', $search_file) or die("Unable to open '$search_file': $!\n"); + my $file_content; + if ($search_range >= 0) { + read(FILE, $file_content, $search_range, 0); + } else { + my $size= -s $search_file; + $search_range = -$size if $size > -$search_range; + seek(FILE, $search_range, 2); + read(FILE, $file_content, -$search_range, 0); + } + close(FILE); + $content.= $file_content; } - close(FILE); - $search_file =~ s{^.*?([^/\\]+)$}{$1}; - if ($file_content =~ m{$search_pattern}) { - print "FOUND /$search_pattern/ in $search_file\n" + $ENV{'SEARCH_FILE'} =~ s{^.*?([^/\\]+)$}{$1}; + if ($content =~ m{$search_pattern}) { + die "FOUND /$search_pattern/ in $ENV{'SEARCH_FILE'}\n" + if $ENV{SEARCH_ABORT} eq 'FOUND'; + print "FOUND /$search_pattern/ in $ENV{'SEARCH_FILE'}\n" + unless defined $ENV{SEARCH_ABORT}; } else { - print "NOT FOUND /$search_pattern/ in $search_file\n" + die "NOT FOUND /$search_pattern/ in $ENV{'SEARCH_FILE'}\n" + if $ENV{SEARCH_ABORT} eq 'NOT FOUND'; + print "NOT FOUND /$search_pattern/ in $ENV{'SEARCH_FILE'}\n" + unless defined $ENV{SEARCH_ABORT}; } EOF diff --git a/mysql-test/include/start_mysqld.inc b/mysql-test/include/start_mysqld.inc index 983c566821e..e31f26aad8c 100644 --- a/mysql-test/include/start_mysqld.inc +++ b/mysql-test/include/start_mysqld.inc @@ -1,7 +1,14 @@ # Include this script only after using shutdown_mysqld.inc # where $_expect_file_name was initialized. # Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $_expect_file_name +if ($restart_parameters) +{ + --exec echo "restart: $restart_parameters" > $_expect_file_name +} +if (!$restart_parameters) +{ + --exec echo "restart" > $_expect_file_name +} # Turn on reconnect --enable_reconnect diff --git a/mysql-test/suite/innodb/r/log_file_size.result b/mysql-test/suite/innodb/r/log_file_size.result new file mode 100644 index 00000000000..1519f02a8c8 --- /dev/null +++ b/mysql-test/suite/innodb/r/log_file_size.result @@ -0,0 +1,35 @@ +call mtr.add_suppression("InnoDB: Resizing redo log"); +call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); +call mtr.add_suppression("InnoDB: New log files created"); +call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles"); +CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; +BEGIN; +INSERT INTO t1 VALUES (42); +# Kill and restart: --innodb-log-file-size=6M +SELECT * FROM t1; +a +INSERT INTO t1 VALUES (42); +BEGIN; +DELETE FROM t1; +# Kill and restart: --innodb-log-files-in-group=3 --innodb-log-file-size=5M +SELECT * FROM t1; +a +42 +INSERT INTO t1 VALUES (123); +BEGIN; +DELETE FROM t1; +# Kill the server +--innodb-force-recovery-crash=1 +--innodb-force-recovery-crash=3 +--innodb-force-recovery-crash=4 +--innodb-force-recovery-crash=5 +--innodb-force-recovery-crash=6 +--innodb-force-recovery-crash=7 +--innodb-force-recovery-crash=8 +--innodb-force-recovery-crash=9 +--innodb-force-recovery-crash=10 +SELECT * FROM t1; +a +42 +123 +DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/log_file_size.test b/mysql-test/suite/innodb/t/log_file_size.test new file mode 100644 index 00000000000..95a7bcc143a --- /dev/null +++ b/mysql-test/suite/innodb/t/log_file_size.test @@ -0,0 +1,185 @@ +# Test resizing the InnoDB redo log. + +--source include/have_innodb.inc + +# Embedded server does not support crashing +--source include/not_embedded.inc +# Avoid CrashReporter popup on Mac +--source include/not_crashrep.inc +# innodb-force-recovery-crash needs debug +--source include/have_debug.inc + +if (`SELECT @@innodb_log_file_size = 1048576`) { + --skip Test requires innodb_log_file_size>1M. +} + +call mtr.add_suppression("InnoDB: Resizing redo log"); +call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); +call mtr.add_suppression("InnoDB: New log files created"); +call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles"); + +CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; +BEGIN; +INSERT INTO t1 VALUES (42); + +let $restart_parameters = --innodb-log-file-size=6M; +--source include/kill_and_restart_mysqld.inc + +SELECT * FROM t1; + +INSERT INTO t1 VALUES (42); +BEGIN; +DELETE FROM t1; + +let $restart_parameters = --innodb-log-files-in-group=3 --innodb-log-file-size=5M; +--source include/kill_and_restart_mysqld.inc + +SELECT * FROM t1; + +INSERT INTO t1 VALUES (123); + +let MYSQLD_DATADIR= `select @@datadir`; +let SEARCH_ABORT = NOT FOUND; +let SEARCH_FILE= $MYSQLTEST_VARDIR/log/my_restart.err; +let $args=--innodb --unknown-option --loose-console --core-file > $SEARCH_FILE 2>&1; +let $crash=--innodb --unknown-option --loose-console > $SEARCH_FILE 2>&1 --innodb-force-recovery-crash; + +BEGIN; +DELETE FROM t1; + +--source include/kill_mysqld.inc + +--error 2 +--exec $MYSQLD_CMD $args --innodb-log-group-home-dir=foo\;bar +let SEARCH_PATTERN= syntax error in innodb_log_group_home_dir; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE + +--echo --innodb-force-recovery-crash=1 +--error 3 +--exec $MYSQLD_CMD $crash=1 +let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE +--echo --innodb-force-recovery-crash=3 +--error 3 +--exec $MYSQLD_CMD $crash=3 +let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE + +--error 2 +--exec $MYSQLD_CMD $args --innodb-read-only +let SEARCH_PATTERN= InnoDB: innodb_read_only prevents crash recovery; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE + +--echo --innodb-force-recovery-crash=4 +--error 3 +--exec $MYSQLD_CMD $crash=4 +let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records; +--source include/search_pattern_in_file.inc +let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE +--echo --innodb-force-recovery-crash=5 +--error 3 +--exec $MYSQLD_CMD $crash=5 +let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records; +--source include/search_pattern_in_file.inc +let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE + +--error 2 +--exec $MYSQLD_CMD $args --innodb-read-only +let SEARCH_PATTERN= InnoDB: innodb_read_only prevents crash recovery; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE + +--echo --innodb-force-recovery-crash=6 +--error 3 +--exec $MYSQLD_CMD $crash=6 +let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records; +--source include/search_pattern_in_file.inc +let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE +--echo --innodb-force-recovery-crash=7 +--error 3 +--exec $MYSQLD_CMD $crash=7 +# this crashes right after deleting all log files +--remove_file $SEARCH_FILE + +--error 2 +--exec $MYSQLD_CMD $args --innodb-read-only +let SEARCH_PATTERN= InnoDB: Cannot create log files in read-only mode; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE + +--echo --innodb-force-recovery-crash=8 +--error 3 +--exec $MYSQLD_CMD $crash=8 +let SEARCH_PATTERN= InnoDB: Setting log file .*ib_logfile[0-9]+ size to; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE +--echo --innodb-force-recovery-crash=9 +--error 3 +--exec $MYSQLD_CMD $crash=9 +let SEARCH_PATTERN= InnoDB: Setting log file .*ib_logfile[0-9]+ size to; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE + +# We should have perfectly synced files here. +# Rename the log files, and trigger an error in recovery. +--move_file $MYSQLD_DATADIR/ib_logfile101 $MYSQLD_DATADIR/ib_logfile0 +--move_file $MYSQLD_DATADIR/ib_logfile1 $MYSQLD_DATADIR/ib_logfile1_hidden +--error 2 +--exec $MYSQLD_CMD $args +let SEARCH_PATTERN= InnoDB: Only one log file found; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE +--move_file $MYSQLD_DATADIR/ib_logfile0 $MYSQLD_DATADIR/ib_logfile101 + +perl; +die unless open(FILE, ">$ENV{MYSQLD_DATADIR}/ib_logfile0"); +print FILE "garbage"; +close(FILE); +EOF +--error 2 +--exec $MYSQLD_CMD $args +let SEARCH_PATTERN= InnoDB: Log file .*ib_logfile0 size 7 is not a multiple of innodb_page_size; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE +--remove_file $MYSQLD_DATADIR/ib_logfile0 +--move_file $MYSQLD_DATADIR/ib_logfile101 $MYSQLD_DATADIR/ib_logfile0 + +perl; +die unless open(FILE, ">$ENV{MYSQLD_DATADIR}/ib_logfile1"); +print FILE "junkfill" x 131072; +close(FILE); +EOF + +--error 2 +--exec $MYSQLD_CMD $args +let SEARCH_PATTERN= InnoDB: Log file .*ib_logfile1 is of different size 1048576 bytes than other log files; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE +--remove_file $MYSQLD_DATADIR/ib_logfile1 +--move_file $MYSQLD_DATADIR/ib_logfile0 $MYSQLD_DATADIR/ib_logfile101 +--move_file $MYSQLD_DATADIR/ib_logfile1_hidden $MYSQLD_DATADIR/ib_logfile1 + +--echo --innodb-force-recovery-crash=10 +--error 3 +--exec $MYSQLD_CMD $crash=10 +let SEARCH_PATTERN= InnoDB: Setting log file .*ib_logfile[0-9]+ size to; +--source include/search_pattern_in_file.inc +let SEARCH_PATTERN= InnoDB: Renaming log file .*ib_logfile101 to .*ib_logfile0; +--source include/search_pattern_in_file.inc +--remove_file $SEARCH_FILE + +--let $restart_parameters= +--source include/start_mysqld.inc + +SELECT * FROM t1; +DROP TABLE t1; diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index aed94d00834..e52448c87f6 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -2806,11 +2806,10 @@ recv_scan_log_recs( recv_init_crash_recovery(); } else { - - ib_logf(IB_LOG_LEVEL_WARN, - "Recovery skipped, " - "--innodb-read-only set!"); - + ib_logf(IB_LOG_LEVEL_ERROR, + "innodb_read_only prevents" + " crash recovery"); + recv_needed_recovery = TRUE; return(TRUE); } } @@ -3227,6 +3226,11 @@ recv_recovery_from_checkpoint_start_func( /* Done with startup scan. Clear the flag. */ recv_log_scan_is_startup_type = FALSE; + + if (srv_read_only_mode && recv_needed_recovery) { + return(DB_READ_ONLY); + } + if (TYPE_CHECKPOINT) { /* NOTE: we always do a 'recovery' at startup, but only if there is something wrong we will print a message to the diff --git a/storage/xtradb/log/log0recv.cc b/storage/xtradb/log/log0recv.cc index 9e42fb5cc1c..a66172ac861 100644 --- a/storage/xtradb/log/log0recv.cc +++ b/storage/xtradb/log/log0recv.cc @@ -2,6 +2,7 @@ Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -2895,11 +2896,10 @@ recv_scan_log_recs( recv_init_crash_recovery(); } else { - - ib_logf(IB_LOG_LEVEL_WARN, - "Recovery skipped, " - "--innodb-read-only set!"); - + ib_logf(IB_LOG_LEVEL_ERROR, + "innodb_read_only prevents" + " crash recovery"); + recv_needed_recovery = TRUE; return(TRUE); } } @@ -3323,6 +3323,11 @@ recv_recovery_from_checkpoint_start_func( /* Done with startup scan. Clear the flag. */ recv_log_scan_is_startup_type = FALSE; + + if (srv_read_only_mode && recv_needed_recovery) { + return(DB_READ_ONLY); + } + if (TYPE_CHECKPOINT) { /* NOTE: we always do a 'recovery' at startup, but only if there is something wrong we will print a message to the From afb461587c0b7dea2e5e70a165e8d4d437c3f964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 26 Jan 2017 14:05:00 +0200 Subject: [PATCH 120/258] MDEV-11915 Detect InnoDB system tablespace size mismatch early InnoDB would refuse to start up if there is a mismatch on the size of the system tablespace files. However, before this check is conducted, the system tablespace may already have been heavily modified. InnoDB should perform the size check as early as possible. recv_recovery_from_checkpoint_finish(): Move the recv_apply_hashed_log_recs() call to innobase_start_or_create_for_mysql(). innobase_start_or_create_for_mysql(): Test the mutex functionality before doing anything else. Use a compile_time_assert() for a sizeof() constraint. Check the size of the system tablespace as early as possible. --- storage/innobase/log/log0recv.cc | 9 -- storage/innobase/srv/srv0start.cc | 256 +++++++++++------------------- storage/xtradb/log/log0recv.cc | 9 -- storage/xtradb/srv/srv0start.cc | 251 +++++++++++------------------ 4 files changed, 184 insertions(+), 341 deletions(-) diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index e52448c87f6..70913bd49ce 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -3381,15 +3381,6 @@ void recv_recovery_from_checkpoint_finish(void) /*======================================*/ { - /* Apply the hashed log records to the respective file pages */ - - if (srv_force_recovery < SRV_FORCE_NO_LOG_REDO) { - - recv_apply_hashed_log_recs(TRUE); - } - - DBUG_PRINT("ib_log", ("apply completed")); - if (recv_needed_recovery) { trx_sys_print_mysql_master_log_pos(); trx_sys_print_mysql_binlog_offset(); diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 5c3bee5e0b7..0e7d4b6c511 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -3,6 +3,7 @@ Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved. Copyright (c) 2008, Google Inc. Copyright (c) 2009, Percona Inc. +Copyright (c) 2013, 2017, MariaDB Corporation Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -1550,8 +1551,6 @@ innobase_start_or_create_for_mysql(void) ulint max_arch_log_no; #endif /* UNIV_LOG_ARCHIVE */ ulint sum_of_new_sizes; - ulint sum_of_data_file_sizes; - ulint tablespace_size_in_header; dberr_t err; unsigned i; ulint srv_n_log_files_found = srv_n_log_files; @@ -1564,6 +1563,19 @@ innobase_start_or_create_for_mysql(void) size_t dirnamelen; bool sys_datafiles_created = false; + /* Check that os_fast_mutexes work as expected */ + os_fast_mutex_init(PFS_NOT_INSTRUMENTED, &srv_os_test_mutex); + + ut_a(0 == os_fast_mutex_trylock(&srv_os_test_mutex)); + + os_fast_mutex_unlock(&srv_os_test_mutex); + + os_fast_mutex_lock(&srv_os_test_mutex); + + os_fast_mutex_unlock(&srv_os_test_mutex); + + os_fast_mutex_free(&srv_os_test_mutex); + high_level_read_only = srv_read_only_mode || srv_force_recovery > SRV_FORCE_NO_TRX_UNDO; @@ -1606,22 +1618,7 @@ innobase_start_or_create_for_mysql(void) #endif /* PAGE_ATOMIC_REF_COUNT */ ); - - if (sizeof(ulint) != sizeof(void*)) { - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Error: size of InnoDB's ulint is %lu, " - "but size of void*\n", (ulong) sizeof(ulint)); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: is %lu. The sizes should be the same " - "so that on a 64-bit\n", - (ulong) sizeof(void*)); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: platforms you can allocate more than 4 GB " - "of memory.\n"); - } + compile_time_assert(sizeof(ulint) == sizeof(void*)); #ifdef UNIV_DEBUG ut_print_timestamp(stderr); @@ -2332,7 +2329,6 @@ files_checked: trx_sys_create(); if (create_new_db) { - ut_a(!srv_read_only_mode); mtr_start(&mtr); @@ -2446,24 +2442,89 @@ files_checked: LOG_CHECKPOINT, LSN_MAX, min_flushed_lsn, max_flushed_lsn); - if (err != DB_SUCCESS) { - - return(DB_ERROR); + if (err == DB_SUCCESS) { + /* Initialize the change buffer. */ + err = dict_boot(); } - /* Since the insert buffer init is in dict_boot, and the - insert buffer is needed in any disk i/o, first we call - dict_boot(). Note that trx_sys_init_at_db_start() only needs - to access space 0, and the insert buffer at this stage already - works for space 0. */ - - err = dict_boot(); - if (err != DB_SUCCESS) { return(err); } + if (!srv_read_only_mode) { + if (sum_of_new_sizes > 0) { + /* New data file(s) were added */ + mtr_start(&mtr); + fsp_header_inc_size(0, sum_of_new_sizes, &mtr); + mtr_commit(&mtr); + /* Immediately write the log record about + increased tablespace size to disk, so that it + is durable even if mysqld would crash + quickly */ + log_buffer_flush_to_disk(); + } + } + + const ulint tablespace_size_in_header + = fsp_header_get_tablespace_size(); + +#ifdef UNIV_DEBUG + /* buf_debug_prints = TRUE; */ +#endif /* UNIV_DEBUG */ + ulint sum_of_data_file_sizes = 0; + + for (ulint d = 0; d < srv_n_data_files; d++) { + sum_of_data_file_sizes += srv_data_file_sizes[d]; + } + + /* Compare the system tablespace file size to what is + stored in FSP_SIZE. In open_or_create_data_files() + we already checked that the file sizes match the + innodb_data_file_path specification. */ + if (srv_read_only_mode + || sum_of_data_file_sizes == tablespace_size_in_header) { + /* Do not complain about the size. */ + } else if (!srv_auto_extend_last_data_file + || sum_of_data_file_sizes + < tablespace_size_in_header) { + ib_logf(IB_LOG_LEVEL_ERROR, + "Tablespace size stored in header is " ULINTPF + " pages, but the sum of data file sizes is " + ULINTPF " pages", + tablespace_size_in_header, + sum_of_data_file_sizes); + + if (srv_force_recovery == 0 + && sum_of_data_file_sizes + < tablespace_size_in_header) { + ib_logf(IB_LOG_LEVEL_ERROR, + "Cannot start InnoDB. The tail of" + " the system tablespace is" + " missing. Have you edited" + " innodb_data_file_path in my.cnf" + " in an inappropriate way, removing" + " data files from there?" + " You can set innodb_force_recovery=1" + " in my.cnf to force" + " a startup if you are trying to" + " recover a badly corrupt database."); + + return(DB_ERROR); + } + } + + /* This must precede recv_apply_hashed_log_recs(TRUE). */ ib_bh = trx_sys_init_at_db_start(); + + if (srv_force_recovery < SRV_FORCE_NO_LOG_REDO) { + /* Apply the hashed log records to the + respective file pages, for the last batch of + recv_group_scan_log_recs(). */ + + recv_apply_hashed_log_recs(TRUE); + DBUG_PRINT("ib_log", ("apply completed")); + } + n_recovered_trx = UT_LIST_GET_LEN(trx_sys->rw_trx_list); /* The purge system needs to create the purge view and @@ -2610,20 +2671,8 @@ files_checked: trx_sys_file_format_tag_init(); } - if (!create_new_db && sum_of_new_sizes > 0) { - /* New data file(s) were added */ - mtr_start(&mtr); - - fsp_header_inc_size(0, sum_of_new_sizes, &mtr); - - mtr_commit(&mtr); - - /* Immediately write the log record about increased tablespace - size to disk, so that it is durable even if mysqld would crash - quickly */ - - log_buffer_flush_to_disk(); - } + ut_ad(err == DB_SUCCESS); + ut_a(sum_of_new_sizes != ULINT_UNDEFINED); #ifdef UNIV_LOG_ARCHIVE /* Archiving is always off under MySQL */ @@ -2766,125 +2815,6 @@ files_checked: buf_flush_page_cleaner_thread_started = true; } -#ifdef UNIV_DEBUG - /* buf_debug_prints = TRUE; */ -#endif /* UNIV_DEBUG */ - sum_of_data_file_sizes = 0; - - for (i = 0; i < srv_n_data_files; i++) { - sum_of_data_file_sizes += srv_data_file_sizes[i]; - } - - tablespace_size_in_header = fsp_header_get_tablespace_size(); - - if (!srv_read_only_mode - && !srv_auto_extend_last_data_file - && sum_of_data_file_sizes != tablespace_size_in_header) { - - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Error: tablespace size" - " stored in header is %lu pages, but\n", - (ulong) tablespace_size_in_header); - ut_print_timestamp(stderr); - fprintf(stderr, - "InnoDB: the sum of data file sizes is %lu pages\n", - (ulong) sum_of_data_file_sizes); - - if (srv_force_recovery == 0 - && sum_of_data_file_sizes < tablespace_size_in_header) { - /* This is a fatal error, the tail of a tablespace is - missing */ - - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Cannot start InnoDB." - " The tail of the system tablespace is\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: missing. Have you edited" - " innodb_data_file_path in my.cnf in an\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: inappropriate way, removing" - " ibdata files from there?\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: You can set innodb_force_recovery=1" - " in my.cnf to force\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: a startup if you are trying" - " to recover a badly corrupt database.\n"); - - return(DB_ERROR); - } - } - - if (!srv_read_only_mode - && srv_auto_extend_last_data_file - && sum_of_data_file_sizes < tablespace_size_in_header) { - - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Error: tablespace size stored in header" - " is %lu pages, but\n", - (ulong) tablespace_size_in_header); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: the sum of data file sizes" - " is only %lu pages\n", - (ulong) sum_of_data_file_sizes); - - if (srv_force_recovery == 0) { - - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Cannot start InnoDB. The tail of" - " the system tablespace is\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: missing. Have you edited" - " innodb_data_file_path in my.cnf in an\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: inappropriate way, removing" - " ibdata files from there?\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: You can set innodb_force_recovery=1" - " in my.cnf to force\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: a startup if you are trying to" - " recover a badly corrupt database.\n"); - - return(DB_ERROR); - } - } - - /* Check that os_fast_mutexes work as expected */ - os_fast_mutex_init(PFS_NOT_INSTRUMENTED, &srv_os_test_mutex); - - if (0 != os_fast_mutex_trylock(&srv_os_test_mutex)) { - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Error: pthread_mutex_trylock returns" - " an unexpected value on\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: success! Cannot continue.\n"); - exit(1); - } - - os_fast_mutex_unlock(&srv_os_test_mutex); - - os_fast_mutex_lock(&srv_os_test_mutex); - - os_fast_mutex_unlock(&srv_os_test_mutex); - - os_fast_mutex_free(&srv_os_test_mutex); - if (srv_print_verbose_log) { ib_logf(IB_LOG_LEVEL_INFO, "%s started; log sequence number " LSN_PF "", diff --git a/storage/xtradb/log/log0recv.cc b/storage/xtradb/log/log0recv.cc index a66172ac861..e355c25318c 100644 --- a/storage/xtradb/log/log0recv.cc +++ b/storage/xtradb/log/log0recv.cc @@ -3478,15 +3478,6 @@ void recv_recovery_from_checkpoint_finish(void) /*======================================*/ { - /* Apply the hashed log records to the respective file pages */ - - if (srv_force_recovery < SRV_FORCE_NO_LOG_REDO) { - - recv_apply_hashed_log_recs(TRUE); - } - - DBUG_PRINT("ib_log", ("apply completed")); - if (recv_needed_recovery) { trx_sys_print_mysql_master_log_pos(); trx_sys_print_mysql_binlog_offset(); diff --git a/storage/xtradb/srv/srv0start.cc b/storage/xtradb/srv/srv0start.cc index 9f426a8b513..a19f120a7d8 100644 --- a/storage/xtradb/srv/srv0start.cc +++ b/storage/xtradb/srv/srv0start.cc @@ -1609,8 +1609,6 @@ innobase_start_or_create_for_mysql(void) lsn_t max_arch_log_no = LSN_MAX; #endif /* UNIV_LOG_ARCHIVE */ ulint sum_of_new_sizes; - ulint sum_of_data_file_sizes; - ulint tablespace_size_in_header; dberr_t err; unsigned i; ulint srv_n_log_files_found = srv_n_log_files; @@ -1623,6 +1621,19 @@ innobase_start_or_create_for_mysql(void) size_t dirnamelen; bool sys_datafiles_created = false; + /* Check that os_fast_mutexes work as expected */ + os_fast_mutex_init(PFS_NOT_INSTRUMENTED, &srv_os_test_mutex); + + ut_a(0 == os_fast_mutex_trylock(&srv_os_test_mutex)); + + os_fast_mutex_unlock(&srv_os_test_mutex); + + os_fast_mutex_lock(&srv_os_test_mutex); + + os_fast_mutex_unlock(&srv_os_test_mutex); + + os_fast_mutex_free(&srv_os_test_mutex); + high_level_read_only = srv_read_only_mode || srv_force_recovery > SRV_FORCE_NO_TRX_UNDO; @@ -1665,22 +1676,7 @@ innobase_start_or_create_for_mysql(void) #endif /* PAGE_ATOMIC_REF_COUNT */ ); - - if (sizeof(ulint) != sizeof(void*)) { - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Error: size of InnoDB's ulint is %lu, " - "but size of void*\n", (ulong) sizeof(ulint)); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: is %lu. The sizes should be the same " - "so that on a 64-bit\n", - (ulong) sizeof(void*)); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: platforms you can allocate more than 4 GB " - "of memory.\n"); - } + compile_time_assert(sizeof(ulint) == sizeof(void*)); /* If stacktrace is used we set up signal handler for SIGUSR2 signal here. If signal handler set fails we report that and disable @@ -2411,7 +2407,6 @@ files_checked: trx_sys_create(); if (create_new_db) { - ut_a(!srv_read_only_mode); init_log_online(); @@ -2493,25 +2488,92 @@ files_checked: min_flushed_lsn, max_flushed_lsn); if (err != DB_SUCCESS) { - - return(DB_ERROR); + return(err); } init_log_online(); - /* Since the insert buffer init is in dict_boot, and the - insert buffer is needed in any disk i/o, first we call - dict_boot(). Note that trx_sys_init_at_db_start() only needs - to access space 0, and the insert buffer at this stage already - works for space 0. */ - + /* Initialize the change buffer. */ err = dict_boot(); if (err != DB_SUCCESS) { return(err); } + if (!srv_read_only_mode) { + if (sum_of_new_sizes > 0) { + /* New data file(s) were added */ + mtr_start(&mtr); + fsp_header_inc_size(0, sum_of_new_sizes, &mtr); + mtr_commit(&mtr); + /* Immediately write the log record about + increased tablespace size to disk, so that it + is durable even if mysqld would crash + quickly */ + log_buffer_flush_to_disk(); + } + } + + const ulint tablespace_size_in_header + = fsp_header_get_tablespace_size(); + +#ifdef UNIV_DEBUG + /* buf_debug_prints = TRUE; */ +#endif /* UNIV_DEBUG */ + ulint sum_of_data_file_sizes = 0; + + for (ulint d = 0; d < srv_n_data_files; d++) { + sum_of_data_file_sizes += srv_data_file_sizes[d]; + } + + /* Compare the system tablespace file size to what is + stored in FSP_SIZE. In open_or_create_data_files() + we already checked that the file sizes match the + innodb_data_file_path specification. */ + if (srv_read_only_mode + || sum_of_data_file_sizes == tablespace_size_in_header) { + /* Do not complain about the size. */ + } else if (!srv_auto_extend_last_data_file + || sum_of_data_file_sizes + < tablespace_size_in_header) { + ib_logf(IB_LOG_LEVEL_ERROR, + "Tablespace size stored in header is " ULINTPF + " pages, but the sum of data file sizes is " + ULINTPF " pages", + tablespace_size_in_header, + sum_of_data_file_sizes); + + if (srv_force_recovery == 0 + && sum_of_data_file_sizes + < tablespace_size_in_header) { + ib_logf(IB_LOG_LEVEL_ERROR, + "Cannot start InnoDB. The tail of" + " the system tablespace is" + " missing. Have you edited" + " innodb_data_file_path in my.cnf" + " in an inappropriate way, removing" + " data files from there?" + " You can set innodb_force_recovery=1" + " in my.cnf to force" + " a startup if you are trying to" + " recover a badly corrupt database."); + + return(DB_ERROR); + } + } + + /* This must precede recv_apply_hashed_log_recs(TRUE). */ ib_bh = trx_sys_init_at_db_start(); + + if (srv_force_recovery < SRV_FORCE_NO_LOG_REDO) { + /* Apply the hashed log records to the + respective file pages, for the last batch of + recv_group_scan_log_recs(). */ + + recv_apply_hashed_log_recs(TRUE); + DBUG_PRINT("ib_log", ("apply completed")); + } + n_recovered_trx = UT_LIST_GET_LEN(trx_sys->rw_trx_list); /* The purge system needs to create the purge view and @@ -2664,20 +2726,8 @@ files_checked: trx_sys_file_format_tag_init(); } - if (!create_new_db && sum_of_new_sizes > 0) { - /* New data file(s) were added */ - mtr_start(&mtr); - - fsp_header_inc_size(0, sum_of_new_sizes, &mtr); - - mtr_commit(&mtr); - - /* Immediately write the log record about increased tablespace - size to disk, so that it is durable even if mysqld would crash - quickly */ - - log_buffer_flush_to_disk(); - } + ut_ad(err == DB_SUCCESS); + ut_a(sum_of_new_sizes != ULINT_UNDEFINED); #ifdef UNIV_LOG_ARCHIVE if (!srv_read_only_mode) { @@ -2826,125 +2876,6 @@ files_checked: buf_flush_lru_manager_thread_handle = os_thread_create(buf_flush_lru_manager_thread, NULL, NULL); buf_flush_lru_manager_thread_started = true; -#ifdef UNIV_DEBUG - /* buf_debug_prints = TRUE; */ -#endif /* UNIV_DEBUG */ - sum_of_data_file_sizes = 0; - - for (i = 0; i < srv_n_data_files; i++) { - sum_of_data_file_sizes += srv_data_file_sizes[i]; - } - - tablespace_size_in_header = fsp_header_get_tablespace_size(); - - if (!srv_read_only_mode - && !srv_auto_extend_last_data_file - && sum_of_data_file_sizes != tablespace_size_in_header) { - - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Error: tablespace size" - " stored in header is %lu pages, but\n", - (ulong) tablespace_size_in_header); - ut_print_timestamp(stderr); - fprintf(stderr, - "InnoDB: the sum of data file sizes is %lu pages\n", - (ulong) sum_of_data_file_sizes); - - if (srv_force_recovery == 0 - && sum_of_data_file_sizes < tablespace_size_in_header) { - /* This is a fatal error, the tail of a tablespace is - missing */ - - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Cannot start InnoDB." - " The tail of the system tablespace is\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: missing. Have you edited" - " innodb_data_file_path in my.cnf in an\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: inappropriate way, removing" - " ibdata files from there?\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: You can set innodb_force_recovery=1" - " in my.cnf to force\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: a startup if you are trying" - " to recover a badly corrupt database.\n"); - - return(DB_ERROR); - } - } - - if (!srv_read_only_mode - && srv_auto_extend_last_data_file - && sum_of_data_file_sizes < tablespace_size_in_header) { - - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Error: tablespace size stored in header" - " is %lu pages, but\n", - (ulong) tablespace_size_in_header); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: the sum of data file sizes" - " is only %lu pages\n", - (ulong) sum_of_data_file_sizes); - - if (srv_force_recovery == 0) { - - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Cannot start InnoDB. The tail of" - " the system tablespace is\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: missing. Have you edited" - " innodb_data_file_path in my.cnf in an\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: inappropriate way, removing" - " ibdata files from there?\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: You can set innodb_force_recovery=1" - " in my.cnf to force\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: a startup if you are trying to" - " recover a badly corrupt database.\n"); - - return(DB_ERROR); - } - } - - /* Check that os_fast_mutexes work as expected */ - os_fast_mutex_init(PFS_NOT_INSTRUMENTED, &srv_os_test_mutex); - - if (0 != os_fast_mutex_trylock(&srv_os_test_mutex)) { - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: Error: pthread_mutex_trylock returns" - " an unexpected value on\n"); - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: success! Cannot continue.\n"); - exit(1); - } - - os_fast_mutex_unlock(&srv_os_test_mutex); - - os_fast_mutex_lock(&srv_os_test_mutex); - - os_fast_mutex_unlock(&srv_os_test_mutex); - - os_fast_mutex_free(&srv_os_test_mutex); - if (!srv_file_per_table && srv_pass_corrupt_table) { fprintf(stderr, "InnoDB: Warning:" " The option innodb_file_per_table is disabled," From 732672c3044e60fb0d1dfdb466bd3c3d13ea2f8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 5 Dec 2016 15:25:59 +0200 Subject: [PATCH 121/258] MDEV-11233 CREATE FULLTEXT INDEX with a token longer than 127 bytes crashes server This bug is the result of merging the Oracle MySQL follow-up fix BUG#22963169 MYSQL CRASHES ON CREATE FULLTEXT INDEX without merging the base bug fix: Bug#79475 Insert a token of 84 4-bytes chars into fts index causes server crash. Unlike the above mentioned fixes in MySQL, our fix will not change the storage format of fulltext indexes in InnoDB or XtraDB when a character encoding with mbmaxlen=2 or mbmaxlen=3 and the length of a word is between 128 and 84*mbmaxlen bytes. The Oracle fix would allocate 2 length bytes for these cases. Compatibility with other MySQL and MariaDB releases is ensured by persisting the used maximum length in the SYS_COLUMNS table in the InnoDB data dictionary. This fix also removes some unnecessary strcmp() calls when checking for the legacy default collation my_charset_latin1 (my_charset_latin1.name=="latin1_swedish_ci"). fts_create_one_index_table(): Store the actual length in bytes. This metadata will be written to the SYS_COLUMNS table. fts_zip_initialize(): Initialize only the first byte of the buffer. Actually the code should not even care about this first byte, because the length is set as 0. FTX_MAX_WORD_LEN: Define as HA_FT_MAXCHARLEN * 4 aka 336 bytes, not as 254 bytes. row_merge_create_fts_sort_index(): Set the actual maximum length of the column in bytes, similar to fts_create_one_index_table(). row_merge_fts_doc_tokenize(): Remove the redundant parameter word_dtype. Use the actual maximum length of the column. Calculate the extra_size in the same way as row_merge_buf_encode() does. --- mysql-test/suite/innodb_fts/r/create.result | 168 ++++++++++++++++++++ mysql-test/suite/innodb_fts/t/create.opt | 1 + mysql-test/suite/innodb_fts/t/create.test | 92 +++++++++++ storage/innobase/fts/fts0fts.cc | 16 +- storage/innobase/fts/fts0opt.cc | 3 +- storage/innobase/handler/ha_innodb.cc | 11 +- storage/innobase/include/fts0fts.h | 5 +- storage/innobase/row/row0ftsort.cc | 71 ++++----- storage/xtradb/fts/fts0fts.cc | 16 +- storage/xtradb/fts/fts0opt.cc | 3 +- storage/xtradb/handler/ha_innodb.cc | 11 +- storage/xtradb/include/fts0fts.h | 5 +- storage/xtradb/row/row0ftsort.cc | 71 ++++----- 13 files changed, 365 insertions(+), 108 deletions(-) create mode 100644 mysql-test/suite/innodb_fts/r/create.result create mode 100644 mysql-test/suite/innodb_fts/t/create.opt create mode 100644 mysql-test/suite/innodb_fts/t/create.test diff --git a/mysql-test/suite/innodb_fts/r/create.result b/mysql-test/suite/innodb_fts/r/create.result new file mode 100644 index 00000000000..c537aa81efd --- /dev/null +++ b/mysql-test/suite/innodb_fts/r/create.result @@ -0,0 +1,168 @@ +SET NAMES utf8mb4; +# +# MDEV-11233 CREATE FULLTEXT INDEX with a token +# longer than 127 bytes crashes server +# +CREATE TABLE t(t TEXT CHARACTER SET utf8mb3) ENGINE=InnoDB; +INSERT INTO t SET t=REPEAT(CONCAT(REPEAT(_utf8mb3 0xE0B987, 4), REPEAT(_utf8mb3 0xE0B989, 5)), 5); +INSERT INTO t SET t=REPEAT(_utf8 0xefbc90,84); +INSERT INTO t SET t=REPEAT('befor',17); +INSERT INTO t SET t='BeforeTheIndexCreation'; +CREATE FULLTEXT INDEX ft ON t(t); +Warnings: +Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID +INSERT INTO t SET t='this was inserted after creating the index'; +INSERT INTO t SET t=REPEAT(_utf8 0xefbc91,84); +INSERT INTO t SET t=REPEAT('after',17); +INSERT INTO t SET t=REPEAT(_utf8mb3 0xe794b2e9aaa8e69687, 15); +# The data below is not 3-byte UTF-8, but 4-byte chars. +INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9695, 84); +Warnings: +Warning 1366 Incorrect string value: '\xF0\x9F\x96\x95\xF0\x9F...' for column 't' at row 1 +INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9696, 85); +Warnings: +Warning 1366 Incorrect string value: '\xF0\x9F\x96\x96\xF0\x9F...' for column 't' at row 1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST +(REPEAT(CONCAT(REPEAT(_utf8mb3 0xE0B987, 4), REPEAT(_utf8mb3 0xE0B989, 5)), 5)); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST ('BeforeTheIndexCreation'); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT('befor',17)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST ('after'); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT('after',17)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 83)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 84)); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 85)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 83)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 84)); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 85)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9695, 83)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9695, 84)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9696, 84)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9696, 85)); +COUNT(*) +0 +SELECT * FROM t; +t +็็็็้้้้้็็็็้้้้้็็็็้้้้้็็็็้้้้้็็็็้้้้้ +ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ +beforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbefor +BeforeTheIndexCreation +this was inserted after creating the index +111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +afterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafter +甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文 +???????????????????????????????????????????????????????????????????????????????????? +????????????????????????????????????????????????????????????????????????????????????? +SELECT len,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS where name='word' GROUP BY len; +len COUNT(*) +252 6 +DROP TABLE t; +CREATE TABLE t(t TEXT CHARACTER SET utf8mb4) ENGINE=InnoDB; +INSERT INTO t SET t=REPEAT(_utf8mb3 0xe794b2e9aaa8e69687, 15); +INSERT INTO t SET t=REPEAT(_utf8 0xefbc90,84); +INSERT INTO t SET t=REPEAT('befor',17); +INSERT INTO t SET t='BeforeTheIndexCreation'; +CREATE FULLTEXT INDEX ft ON t(t); +Warnings: +Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID +INSERT INTO t SET t='this was inserted after creating the index'; +INSERT INTO t SET t=REPEAT(_utf8 0xefbc91,84); +INSERT INTO t SET t=REPEAT('after',17); +INSERT INTO t SET t=REPEAT(concat(repeat(_utf8mb3 0xE0B987, 4), repeat(_utf8mb3 0xE0B989, 5)), 5); +INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9695, 84); +# The token below exceeds the 84-character limit. +INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9696, 85); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb3 0xe794b2e9aaa8e69687, 15)); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST ('BeforeTheIndexCreation'); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT('befor',17)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST ('after'); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT('after',17)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 83)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 84)); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 85)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 83)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 84)); +COUNT(*) +1 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 85)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9695, 83)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9695, 84)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9696, 84)); +COUNT(*) +0 +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9696, 85)); +COUNT(*) +0 +SELECT * FROM t; +t +甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文甲骨文 +ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ +beforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbeforbefor +BeforeTheIndexCreation +this was inserted after creating the index +111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +afterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafter +็็็็้้้้้็็็็้้้้้็็็็้้้้้็็็็้้้้้็็็็้้้้้ +🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕 +🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖🖖 +SELECT len,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS where name='word' GROUP BY len; +len COUNT(*) +336 6 +DROP TABLE t; +CREATE TABLE t(t TEXT CHARACTER SET latin1, FULLTEXT INDEX(t)) +ENGINE=InnoDB; +SELECT len,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS where name='word' GROUP BY len; +len COUNT(*) +84 6 +DROP TABLE t; diff --git a/mysql-test/suite/innodb_fts/t/create.opt b/mysql-test/suite/innodb_fts/t/create.opt new file mode 100644 index 00000000000..3ad568c816e --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/create.opt @@ -0,0 +1 @@ +--loose-innodb-sys-columns diff --git a/mysql-test/suite/innodb_fts/t/create.test b/mysql-test/suite/innodb_fts/t/create.test new file mode 100644 index 00000000000..f0329602ed1 --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/create.test @@ -0,0 +1,92 @@ +--source include/have_innodb.inc +SET NAMES utf8mb4; + +--echo # +--echo # MDEV-11233 CREATE FULLTEXT INDEX with a token +--echo # longer than 127 bytes crashes server +--echo # + +# This bug is the result of merging the Oracle MySQL follow-up fix +# BUG#22963169 MYSQL CRASHES ON CREATE FULLTEXT INDEX +# without merging a fix of Bug#79475 Insert a token of 84 4-bytes +# chars into fts index causes server crash. + +# Oracle did not publish tests for either of the above MySQL bugs. +# The tests below were developed for MariaDB Server. +# The maximum length of a fulltext-indexed word is 84 characters. + +CREATE TABLE t(t TEXT CHARACTER SET utf8mb3) ENGINE=InnoDB; +INSERT INTO t SET t=REPEAT(CONCAT(REPEAT(_utf8mb3 0xE0B987, 4), REPEAT(_utf8mb3 0xE0B989, 5)), 5); +INSERT INTO t SET t=REPEAT(_utf8 0xefbc90,84); +INSERT INTO t SET t=REPEAT('befor',17); # too long, will not be indexed +INSERT INTO t SET t='BeforeTheIndexCreation'; +CREATE FULLTEXT INDEX ft ON t(t); +INSERT INTO t SET t='this was inserted after creating the index'; +INSERT INTO t SET t=REPEAT(_utf8 0xefbc91,84); +INSERT INTO t SET t=REPEAT('after',17); # too long, will not be indexed +INSERT INTO t SET t=REPEAT(_utf8mb3 0xe794b2e9aaa8e69687, 15); +--echo # The data below is not 3-byte UTF-8, but 4-byte chars. +INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9695, 84); +INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9696, 85); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST +(REPEAT(CONCAT(REPEAT(_utf8mb3 0xE0B987, 4), REPEAT(_utf8mb3 0xE0B989, 5)), 5)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST ('BeforeTheIndexCreation'); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT('befor',17)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST ('after'); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT('after',17)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 83)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 84)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 85)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 83)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 84)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 85)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9695, 83)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9695, 84)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9696, 84)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9696, 85)); +SELECT * FROM t; + +# The column length should be 252 bytes (84 characters * 3 bytes/character). +SELECT len,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS where name='word' GROUP BY len; +DROP TABLE t; + +CREATE TABLE t(t TEXT CHARACTER SET utf8mb4) ENGINE=InnoDB; +INSERT INTO t SET t=REPEAT(_utf8mb3 0xe794b2e9aaa8e69687, 15); +INSERT INTO t SET t=REPEAT(_utf8 0xefbc90,84); +INSERT INTO t SET t=REPEAT('befor',17); # too long, will not be indexed +INSERT INTO t SET t='BeforeTheIndexCreation'; +CREATE FULLTEXT INDEX ft ON t(t); +INSERT INTO t SET t='this was inserted after creating the index'; +INSERT INTO t SET t=REPEAT(_utf8 0xefbc91,84); +INSERT INTO t SET t=REPEAT('after',17); # too long, will not be indexed +INSERT INTO t SET t=REPEAT(concat(repeat(_utf8mb3 0xE0B987, 4), repeat(_utf8mb3 0xE0B989, 5)), 5); +INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9695, 84); +--echo # The token below exceeds the 84-character limit. +INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9696, 85); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb3 0xe794b2e9aaa8e69687, 15)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST ('BeforeTheIndexCreation'); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT('befor',17)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST ('after'); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT('after',17)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 83)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 84)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc90, 85)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 83)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 84)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8 0xefbc91, 85)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9695, 83)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9695, 84)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9696, 84)); +SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(_utf8mb4 0xf09f9696, 85)); +SELECT * FROM t; + +# The column length should be 336 bytes (84 characters * 4 bytes/character). +SELECT len,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS where name='word' GROUP BY len; +DROP TABLE t; + +CREATE TABLE t(t TEXT CHARACTER SET latin1, FULLTEXT INDEX(t)) +ENGINE=InnoDB; + +# The column length should be 84 bytes (84 characters * 1 byte/character). +SELECT len,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS where name='word' GROUP BY len; +DROP TABLE t; diff --git a/storage/innobase/fts/fts0fts.cc b/storage/innobase/fts/fts0fts.cc index 6059c28eabc..18d09c8138f 100644 --- a/storage/innobase/fts/fts0fts.cc +++ b/storage/innobase/fts/fts0fts.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2016, MariaDB Corporation. All Rights reserved. 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 @@ -1934,6 +1935,8 @@ func_exit: /*************************************************************//** Wrapper function of fts_create_index_tables_low(), create auxiliary tables for an FTS index + +@see row_merge_create_fts_sort_index() @return: DB_SUCCESS or error code */ static dict_table_t* @@ -1965,13 +1968,12 @@ fts_create_one_index_table( (int)(field->col->prtype & DATA_MYSQL_TYPE_MASK), (uint) dtype_get_charset_coll(field->col->prtype)); - if (strcmp(charset->name, "latin1_swedish_ci") == 0) { - dict_mem_table_add_col(new_table, heap, "word", DATA_VARCHAR, - field->col->prtype, FTS_MAX_WORD_LEN); - } else { - dict_mem_table_add_col(new_table, heap, "word", DATA_VARMYSQL, - field->col->prtype, FTS_MAX_WORD_LEN); - } + dict_mem_table_add_col(new_table, heap, "word", + charset == &my_charset_latin1 + ? DATA_VARCHAR : DATA_VARMYSQL, + field->col->prtype, + FTS_MAX_WORD_LEN_IN_CHAR + * DATA_MBMAXLEN(field->col->mbminmaxlen)); dict_mem_table_add_col(new_table, heap, "first_doc_id", DATA_INT, DATA_NOT_NULL | DATA_UNSIGNED, diff --git a/storage/innobase/fts/fts0opt.cc b/storage/innobase/fts/fts0opt.cc index 455e2669c0d..cb30122adcb 100644 --- a/storage/innobase/fts/fts0opt.cc +++ b/storage/innobase/fts/fts0opt.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2016, MariaDB Corporation. All Rights reserved. 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 @@ -281,7 +282,7 @@ fts_zip_initialize( zip->last_big_block = 0; zip->word.f_len = 0; - memset(zip->word.f_str, 0, FTS_MAX_WORD_LEN); + *zip->word.f_str = 0; ib_vector_reset(zip->blocks); diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index f94c564c8b3..2c84530e6ac 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -3539,7 +3539,6 @@ innobase_change_buffering_inited_ok: and consequently we do not need to know the ordering internally in InnoDB. */ - ut_a(0 == strcmp(my_charset_latin1.name, "latin1_swedish_ci")); srv_latin1_ordering = my_charset_latin1.sort_order; innobase_commit_concurrency_init_default(); @@ -6149,18 +6148,16 @@ get_innobase_type_from_mysql_type( case MYSQL_TYPE_VARCHAR: /* new >= 5.0.3 true VARCHAR */ if (field->binary()) { return(DATA_BINARY); - } else if (strcmp(field->charset()->name, - "latin1_swedish_ci") == 0) { + } else if (field->charset() == &my_charset_latin1) { return(DATA_VARCHAR); } else { return(DATA_VARMYSQL); } case MYSQL_TYPE_BIT: - case MYSQL_TYPE_STRING: if (field->binary()) { - + case MYSQL_TYPE_STRING: + if (field->binary()) { return(DATA_FIXBINARY); - } else if (strcmp(field->charset()->name, - "latin1_swedish_ci") == 0) { + } else if (field->charset() == &my_charset_latin1) { return(DATA_CHAR); } else { return(DATA_MYSQL); diff --git a/storage/innobase/include/fts0fts.h b/storage/innobase/include/fts0fts.h index 3e2f359bbeb..7aa7055640c 100644 --- a/storage/innobase/include/fts0fts.h +++ b/storage/innobase/include/fts0fts.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2016, MariaDB Corporation. All Rights reserved. 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 @@ -366,8 +367,8 @@ extern ulong fts_min_token_size; need a sync to free some memory */ extern bool fts_need_sync; -/** Maximum possible Fulltext word length */ -#define FTS_MAX_WORD_LEN HA_FT_MAXBYTELEN +/** Maximum possible Fulltext word length in bytes (assuming mbmaxlen=4) */ +#define FTS_MAX_WORD_LEN (HA_FT_MAXCHARLEN * 4) /** Maximum possible Fulltext word length (in characters) */ #define FTS_MAX_WORD_LEN_IN_CHAR HA_FT_MAXCHARLEN diff --git a/storage/innobase/row/row0ftsort.cc b/storage/innobase/row/row0ftsort.cc index e4a88047955..f662ef6b461 100644 --- a/storage/innobase/row/row0ftsort.cc +++ b/storage/innobase/row/row0ftsort.cc @@ -57,6 +57,8 @@ tokenized doc string. The index has three "fields": integer value) 3) Word's position in original doc. +@see fts_create_one_index_table() + @return dict_index_t structure for the fts sort index */ UNIV_INTERN dict_index_t* @@ -96,16 +98,12 @@ row_merge_create_fts_sort_index( field->prefix_len = 0; field->col = static_cast( mem_heap_alloc(new_index->heap, sizeof(dict_col_t))); - field->col->len = FTS_MAX_WORD_LEN; - - if (strcmp(charset->name, "latin1_swedish_ci") == 0) { - field->col->mtype = DATA_VARCHAR; - } else { - field->col->mtype = DATA_VARMYSQL; - } - field->col->prtype = idx_field->col->prtype | DATA_NOT_NULL; + field->col->mtype = charset == &my_charset_latin1 + ? DATA_VARCHAR : DATA_VARMYSQL; field->col->mbminmaxlen = idx_field->col->mbminmaxlen; + field->col->len = HA_FT_MAXCHARLEN * DATA_MBMAXLEN(field->col->mbminmaxlen); + field->fixed_len = 0; /* Doc ID */ @@ -359,6 +357,7 @@ row_fts_free_pll_merge_buf( /*********************************************************************//** Tokenize incoming text data and add to the sort buffer. +@see row_merge_buf_encode() @return TRUE if the record passed, FALSE if out of space */ static ibool @@ -367,8 +366,6 @@ row_merge_fts_doc_tokenize( row_merge_buf_t** sort_buf, /*!< in/out: sort buffer */ doc_id_t doc_id, /*!< in: Doc ID */ fts_doc_t* doc, /*!< in: Doc to be tokenized */ - dtype_t* word_dtype, /*!< in: data structure for - word col */ merge_file_t** merge_file, /*!< in/out: merge file */ ibool opt_doc_id_size,/*!< in: whether to use 4 bytes instead of 8 bytes integer to @@ -400,7 +397,7 @@ row_merge_fts_doc_tokenize( ulint idx = 0; ib_uint32_t position; ulint offset = 0; - ulint cur_len = 0; + ulint cur_len; doc_id_t write_doc_id; inc = innobase_mysql_fts_get_token( @@ -454,14 +451,34 @@ row_merge_fts_doc_tokenize( dfield_set_data(field, t_str.f_str, t_str.f_len); len = dfield_get_len(field); - field->type.mtype = word_dtype->mtype; - field->type.prtype = word_dtype->prtype | DATA_NOT_NULL; + dict_col_copy_type(dict_index_get_nth_col(buf->index, 0), &field->type); + field->type.prtype |= DATA_NOT_NULL; + ut_ad(len <= field->type.len); - /* Variable length field, set to max size. */ - field->type.len = FTS_MAX_WORD_LEN; - field->type.mbminmaxlen = word_dtype->mbminmaxlen; + /* For the temporary file, row_merge_buf_encode() uses + 1 byte for representing the number of extra_size bytes. + This number will always be 1, because for this 3-field index + consisting of one variable-size column, extra_size will always + be 1 or 2, which can be encoded in one byte. + + The extra_size is 1 byte if the length of the + variable-length column is less than 128 bytes or the + maximum length is less than 256 bytes. */ + + /* One variable length column, word with its lenght less than + fts_max_token_size, add one extra size and one extra byte. + + Since the max length for FTS token now is larger than 255, + so we will need to signify length byte itself, so only 1 to 128 + bytes can be used for 1 bytes, larger than that 2 bytes. */ + if (len < 128 || field->type.len < 256) { + /* Extra size is one byte. */ + cur_len = 2 + len; + } else { + /* Extra size is two bytes. */ + cur_len = 3 + len; + } - cur_len += len; dfield_dup(field, buf->heap); field++; @@ -511,20 +528,6 @@ row_merge_fts_doc_tokenize( cur_len += len; dfield_dup(field, buf->heap); - /* One variable length column, word with its lenght less than - fts_max_token_size, add one extra size and one extra byte. - - Since the max length for FTS token now is larger than 255, - so we will need to signify length byte itself, so only 1 to 128 - bytes can be used for 1 bytes, larger than that 2 bytes. */ - if (t_str.f_len < 128) { - /* Extra size is one byte. */ - cur_len += 2; - } else { - /* Extra size is two bytes. */ - cur_len += 3; - } - /* Reserve one byte for the end marker of row_merge_block_t. */ if (buf->total_size + data_size[idx] + cur_len >= srv_sort_buf_size - 1) { @@ -617,7 +620,6 @@ fts_parallel_tokenization( mem_heap_t* blob_heap = NULL; fts_doc_t doc; dict_table_t* table = psort_info->psort_common->new_table; - dtype_t word_dtype; dict_field_t* idx_field; fts_tokenize_ctx_t t_ctx; ulint retried = 0; @@ -642,10 +644,6 @@ fts_parallel_tokenization( idx_field = dict_index_get_nth_field( psort_info->psort_common->dup->index, 0); - word_dtype.prtype = idx_field->col->prtype; - word_dtype.mbminmaxlen = idx_field->col->mbminmaxlen; - word_dtype.mtype = (strcmp(doc.charset->name, "latin1_swedish_ci") == 0) - ? DATA_VARCHAR : DATA_VARMYSQL; block = psort_info->merge_block; zip_size = dict_table_zip_size(table); @@ -696,7 +694,6 @@ loop: processed = row_merge_fts_doc_tokenize( buf, doc_item->doc_id, &doc, - &word_dtype, merge_file, psort_info->psort_common->opt_doc_id_size, &t_ctx); diff --git a/storage/xtradb/fts/fts0fts.cc b/storage/xtradb/fts/fts0fts.cc index 4c54afae8cd..c1f0b0bd5fe 100644 --- a/storage/xtradb/fts/fts0fts.cc +++ b/storage/xtradb/fts/fts0fts.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2016, MariaDB Corporation. All Rights reserved. 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 @@ -1934,6 +1935,8 @@ func_exit: /*************************************************************//** Wrapper function of fts_create_index_tables_low(), create auxiliary tables for an FTS index + +@see row_merge_create_fts_sort_index() @return: DB_SUCCESS or error code */ static dict_table_t* @@ -1965,13 +1968,12 @@ fts_create_one_index_table( (int)(field->col->prtype & DATA_MYSQL_TYPE_MASK), (uint) dtype_get_charset_coll(field->col->prtype)); - if (strcmp(charset->name, "latin1_swedish_ci") == 0) { - dict_mem_table_add_col(new_table, heap, "word", DATA_VARCHAR, - field->col->prtype, FTS_MAX_WORD_LEN); - } else { - dict_mem_table_add_col(new_table, heap, "word", DATA_VARMYSQL, - field->col->prtype, FTS_MAX_WORD_LEN); - } + dict_mem_table_add_col(new_table, heap, "word", + charset == &my_charset_latin1 + ? DATA_VARCHAR : DATA_VARMYSQL, + field->col->prtype, + FTS_MAX_WORD_LEN_IN_CHAR + * DATA_MBMAXLEN(field->col->mbminmaxlen)); dict_mem_table_add_col(new_table, heap, "first_doc_id", DATA_INT, DATA_NOT_NULL | DATA_UNSIGNED, diff --git a/storage/xtradb/fts/fts0opt.cc b/storage/xtradb/fts/fts0opt.cc index ea937c20752..ed882d33548 100644 --- a/storage/xtradb/fts/fts0opt.cc +++ b/storage/xtradb/fts/fts0opt.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2016, MariaDB Corporation. All Rights reserved. 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 @@ -281,7 +282,7 @@ fts_zip_initialize( zip->last_big_block = 0; zip->word.f_len = 0; - memset(zip->word.f_str, 0, FTS_MAX_WORD_LEN); + *zip->word.f_str = 0; ib_vector_reset(zip->blocks); diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index ff4f218b557..1709d4e59a9 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -4003,7 +4003,6 @@ innobase_change_buffering_inited_ok: and consequently we do not need to know the ordering internally in InnoDB. */ - ut_a(0 == strcmp(my_charset_latin1.name, "latin1_swedish_ci")); srv_latin1_ordering = my_charset_latin1.sort_order; innobase_commit_concurrency_init_default(); @@ -6839,18 +6838,16 @@ get_innobase_type_from_mysql_type( case MYSQL_TYPE_VARCHAR: /* new >= 5.0.3 true VARCHAR */ if (field->binary()) { return(DATA_BINARY); - } else if (strcmp(field->charset()->name, - "latin1_swedish_ci") == 0) { + } else if (field->charset() == &my_charset_latin1) { return(DATA_VARCHAR); } else { return(DATA_VARMYSQL); } case MYSQL_TYPE_BIT: - case MYSQL_TYPE_STRING: if (field->binary()) { - + case MYSQL_TYPE_STRING: + if (field->binary()) { return(DATA_FIXBINARY); - } else if (strcmp(field->charset()->name, - "latin1_swedish_ci") == 0) { + } else if (field->charset() == &my_charset_latin1) { return(DATA_CHAR); } else { return(DATA_MYSQL); diff --git a/storage/xtradb/include/fts0fts.h b/storage/xtradb/include/fts0fts.h index 3e2f359bbeb..7aa7055640c 100644 --- a/storage/xtradb/include/fts0fts.h +++ b/storage/xtradb/include/fts0fts.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2016, MariaDB Corporation. All Rights reserved. 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 @@ -366,8 +367,8 @@ extern ulong fts_min_token_size; need a sync to free some memory */ extern bool fts_need_sync; -/** Maximum possible Fulltext word length */ -#define FTS_MAX_WORD_LEN HA_FT_MAXBYTELEN +/** Maximum possible Fulltext word length in bytes (assuming mbmaxlen=4) */ +#define FTS_MAX_WORD_LEN (HA_FT_MAXCHARLEN * 4) /** Maximum possible Fulltext word length (in characters) */ #define FTS_MAX_WORD_LEN_IN_CHAR HA_FT_MAXCHARLEN diff --git a/storage/xtradb/row/row0ftsort.cc b/storage/xtradb/row/row0ftsort.cc index cb47d605623..ce138252a19 100644 --- a/storage/xtradb/row/row0ftsort.cc +++ b/storage/xtradb/row/row0ftsort.cc @@ -58,6 +58,8 @@ tokenized doc string. The index has three "fields": integer value) 3) Word's position in original doc. +@see fts_create_one_index_table() + @return dict_index_t structure for the fts sort index */ UNIV_INTERN dict_index_t* @@ -99,16 +101,12 @@ row_merge_create_fts_sort_index( field->prefix_len = 0; field->col = static_cast( mem_heap_alloc(new_index->heap, sizeof(dict_col_t))); - field->col->len = FTS_MAX_WORD_LEN; - - if (strcmp(charset->name, "latin1_swedish_ci") == 0) { - field->col->mtype = DATA_VARCHAR; - } else { - field->col->mtype = DATA_VARMYSQL; - } - field->col->prtype = idx_field->col->prtype | DATA_NOT_NULL; + field->col->mtype = charset == &my_charset_latin1 + ? DATA_VARCHAR : DATA_VARMYSQL; field->col->mbminmaxlen = idx_field->col->mbminmaxlen; + field->col->len = HA_FT_MAXCHARLEN * DATA_MBMAXLEN(field->col->mbminmaxlen); + field->fixed_len = 0; /* Doc ID */ @@ -362,6 +360,7 @@ row_fts_free_pll_merge_buf( /*********************************************************************//** Tokenize incoming text data and add to the sort buffer. +@see row_merge_buf_encode() @return TRUE if the record passed, FALSE if out of space */ static ibool @@ -370,8 +369,6 @@ row_merge_fts_doc_tokenize( row_merge_buf_t** sort_buf, /*!< in/out: sort buffer */ doc_id_t doc_id, /*!< in: Doc ID */ fts_doc_t* doc, /*!< in: Doc to be tokenized */ - dtype_t* word_dtype, /*!< in: data structure for - word col */ merge_file_t** merge_file, /*!< in/out: merge file */ ibool opt_doc_id_size,/*!< in: whether to use 4 bytes instead of 8 bytes integer to @@ -403,7 +400,7 @@ row_merge_fts_doc_tokenize( ulint idx = 0; ib_uint32_t position; ulint offset = 0; - ulint cur_len = 0; + ulint cur_len; doc_id_t write_doc_id; inc = innobase_mysql_fts_get_token( @@ -457,14 +454,34 @@ row_merge_fts_doc_tokenize( dfield_set_data(field, t_str.f_str, t_str.f_len); len = dfield_get_len(field); - field->type.mtype = word_dtype->mtype; - field->type.prtype = word_dtype->prtype | DATA_NOT_NULL; + dict_col_copy_type(dict_index_get_nth_col(buf->index, 0), &field->type); + field->type.prtype |= DATA_NOT_NULL; + ut_ad(len <= field->type.len); - /* Variable length field, set to max size. */ - field->type.len = FTS_MAX_WORD_LEN; - field->type.mbminmaxlen = word_dtype->mbminmaxlen; + /* For the temporary file, row_merge_buf_encode() uses + 1 byte for representing the number of extra_size bytes. + This number will always be 1, because for this 3-field index + consisting of one variable-size column, extra_size will always + be 1 or 2, which can be encoded in one byte. + + The extra_size is 1 byte if the length of the + variable-length column is less than 128 bytes or the + maximum length is less than 256 bytes. */ + + /* One variable length column, word with its lenght less than + fts_max_token_size, add one extra size and one extra byte. + + Since the max length for FTS token now is larger than 255, + so we will need to signify length byte itself, so only 1 to 128 + bytes can be used for 1 bytes, larger than that 2 bytes. */ + if (len < 128 || field->type.len < 256) { + /* Extra size is one byte. */ + cur_len = 2 + len; + } else { + /* Extra size is two bytes. */ + cur_len = 3 + len; + } - cur_len += len; dfield_dup(field, buf->heap); field++; @@ -514,20 +531,6 @@ row_merge_fts_doc_tokenize( cur_len += len; dfield_dup(field, buf->heap); - /* One variable length column, word with its lenght less than - fts_max_token_size, add one extra size and one extra byte. - - Since the max length for FTS token now is larger than 255, - so we will need to signify length byte itself, so only 1 to 128 - bytes can be used for 1 bytes, larger than that 2 bytes. */ - if (t_str.f_len < 128) { - /* Extra size is one byte. */ - cur_len += 2; - } else { - /* Extra size is two bytes. */ - cur_len += 3; - } - /* Reserve one byte for the end marker of row_merge_block_t. */ if (buf->total_size + data_size[idx] + cur_len >= srv_sort_buf_size - 1) { @@ -620,7 +623,6 @@ fts_parallel_tokenization( mem_heap_t* blob_heap = NULL; fts_doc_t doc; dict_table_t* table = psort_info->psort_common->new_table; - dtype_t word_dtype; dict_field_t* idx_field; fts_tokenize_ctx_t t_ctx; ulint retried = 0; @@ -645,10 +647,6 @@ fts_parallel_tokenization( idx_field = dict_index_get_nth_field( psort_info->psort_common->dup->index, 0); - word_dtype.prtype = idx_field->col->prtype; - word_dtype.mbminmaxlen = idx_field->col->mbminmaxlen; - word_dtype.mtype = (strcmp(doc.charset->name, "latin1_swedish_ci") == 0) - ? DATA_VARCHAR : DATA_VARMYSQL; block = psort_info->merge_block; zip_size = dict_table_zip_size(table); @@ -699,7 +697,6 @@ loop: processed = row_merge_fts_doc_tokenize( buf, doc_item->doc_id, &doc, - &word_dtype, merge_file, psort_info->psort_common->opt_doc_id_size, &t_ctx); From ea9caea87ed873479591113ad7cc1858bf3aa7e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 27 Jan 2017 12:17:03 +0200 Subject: [PATCH 122/258] MDEV-11814 test fix Do not kill the server after call mtr.add_suppression(), because the procedure modifies a crash-unsafe table, and we do not want to corrupt that table. --- mysql-test/suite/innodb/r/log_file_size.result | 4 ---- mysql-test/suite/innodb/t/log_file_size.test | 12 +++++++----- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/mysql-test/suite/innodb/r/log_file_size.result b/mysql-test/suite/innodb/r/log_file_size.result index 1519f02a8c8..d83af099979 100644 --- a/mysql-test/suite/innodb/r/log_file_size.result +++ b/mysql-test/suite/innodb/r/log_file_size.result @@ -1,7 +1,3 @@ -call mtr.add_suppression("InnoDB: Resizing redo log"); -call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); -call mtr.add_suppression("InnoDB: New log files created"); -call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles"); CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; BEGIN; INSERT INTO t1 VALUES (42); diff --git a/mysql-test/suite/innodb/t/log_file_size.test b/mysql-test/suite/innodb/t/log_file_size.test index 95a7bcc143a..9668e3ba056 100644 --- a/mysql-test/suite/innodb/t/log_file_size.test +++ b/mysql-test/suite/innodb/t/log_file_size.test @@ -13,11 +13,6 @@ if (`SELECT @@innodb_log_file_size = 1048576`) { --skip Test requires innodb_log_file_size>1M. } -call mtr.add_suppression("InnoDB: Resizing redo log"); -call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); -call mtr.add_suppression("InnoDB: New log files created"); -call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles"); - CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; BEGIN; INSERT INTO t1 VALUES (42); @@ -181,5 +176,12 @@ let SEARCH_PATTERN= InnoDB: Renaming log file .*ib_logfile101 to .*ib_logfile0; --let $restart_parameters= --source include/start_mysqld.inc +--disable_query_log +call mtr.add_suppression("InnoDB: Resizing redo log"); +call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); +call mtr.add_suppression("InnoDB: New log files created"); +call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles"); +--enable_query_log + SELECT * FROM t1; DROP TABLE t1; From 4e82aaab2f65268e3f206db38c3f10de555f0496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 27 Jan 2017 16:03:56 +0200 Subject: [PATCH 123/258] Clean up a few tests that kill the server. As noted in MDEV-8841, any test that kills the server must issue FLUSH TABLES, so that tables of crash-unsafe storage engines will not be corrupted. Consistently issue this statement after any call mtr.add_suppression() calls. Also, do not invoke shutdown_server directly, but use helpers instead. --- .../r/innodb_blob_unrecoverable_crash.result | 5 +-- .../suite/innodb/r/innodb_bug59641.result | 3 +- mysql-test/suite/innodb/r/xa_recovery.result | 2 +- .../t/innodb_blob_unrecoverable_crash.test | 28 +++++------------ .../suite/innodb/t/innodb_bug59641.test | 31 ++++--------------- mysql-test/suite/innodb/t/log_file_size.test | 15 ++++----- mysql-test/suite/innodb/t/xa_recovery.test | 17 ++-------- 7 files changed, 26 insertions(+), 75 deletions(-) diff --git a/mysql-test/suite/innodb/r/innodb_blob_unrecoverable_crash.result b/mysql-test/suite/innodb/r/innodb_blob_unrecoverable_crash.result index 9f6b7ca6a23..d69359e8978 100644 --- a/mysql-test/suite/innodb/r/innodb_blob_unrecoverable_crash.result +++ b/mysql-test/suite/innodb/r/innodb_blob_unrecoverable_crash.result @@ -1,4 +1,3 @@ -call mtr.add_suppression("InnoDB: The total blob data length"); SET GLOBAL max_allowed_packet = 100*1024*1024; # Connection big_packets: CREATE TABLE t1 (a BIGINT PRIMARY KEY, b LONGBLOB) ENGINE=InnoDB; @@ -10,9 +9,7 @@ INSERT INTO t1 (a, b) VALUES (5, '5'); start transaction; INSERT INTO t1 (a, b) VALUES (6, REPEAT('a', 20*1024*1024)); ERROR 42000: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size. -# Connection default: -# Quick shutdown and restart server -# Connection default: +# Kill and restart SELECT a FROM t1; a 1 diff --git a/mysql-test/suite/innodb/r/innodb_bug59641.result b/mysql-test/suite/innodb/r/innodb_bug59641.result index 5062c69558b..f4c2199ae88 100644 --- a/mysql-test/suite/innodb/r/innodb_bug59641.result +++ b/mysql-test/suite/innodb/r/innodb_bug59641.result @@ -1,5 +1,3 @@ -call mtr.add_suppression("Found 3 prepared XA transactions"); -flush tables; CREATE TABLE t(a INT PRIMARY KEY, b INT)ENGINE=InnoDB; INSERT INTO t VALUES(2,2),(4,4),(8,8),(16,16),(32,32); COMMIT; @@ -16,6 +14,7 @@ XA START '789'; UPDATE t SET b=4*a WHERE a=32; XA END '789'; XA PREPARE '789'; +# Kill and restart SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM t; a b diff --git a/mysql-test/suite/innodb/r/xa_recovery.result b/mysql-test/suite/innodb/r/xa_recovery.result index 84cb37ef7c9..4441701f961 100644 --- a/mysql-test/suite/innodb/r/xa_recovery.result +++ b/mysql-test/suite/innodb/r/xa_recovery.result @@ -4,7 +4,7 @@ XA START 'x'; UPDATE t1 set a=2; XA END 'x'; XA PREPARE 'x'; -call mtr.add_suppression("Found 1 prepared XA transactions"); +# Kill and restart SELECT * FROM t1 LOCK IN SHARE MODE; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM t1; diff --git a/mysql-test/suite/innodb/t/innodb_blob_unrecoverable_crash.test b/mysql-test/suite/innodb/t/innodb_blob_unrecoverable_crash.test index 16fb570737d..dc6d2f6f65c 100644 --- a/mysql-test/suite/innodb/t/innodb_blob_unrecoverable_crash.test +++ b/mysql-test/suite/innodb/t/innodb_blob_unrecoverable_crash.test @@ -2,11 +2,13 @@ --source include/not_crashrep.inc --source include/have_innodb.inc -call mtr.add_suppression("InnoDB: The total blob data length"); - -let $old_max_allowed_packet = `select @@max_allowed_packet`; SET GLOBAL max_allowed_packet = 100*1024*1024; +--disable_query_log +call mtr.add_suppression("InnoDB: The total blob data length"); +FLUSH TABLES; +--enable_query_log + --echo # Connection big_packets: connect(big_packets,localhost,root,,); connection big_packets; @@ -28,28 +30,12 @@ start transaction; --error ER_TOO_BIG_ROWSIZE INSERT INTO t1 (a, b) VALUES (6, REPEAT('a', 20*1024*1024)); ---echo # Connection default: -connection default; - -# We expect a restart. ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect - ---echo # Quick shutdown and restart server ---shutdown_server 0 - -# Wait for the server to come back up, and reconnect. ---enable_reconnect ---source include/wait_until_connected_again.inc - ---echo # Connection default: connection default; +--source include/kill_and_restart_mysqld.inc +disconnect big_packets; # We should see (1,2,3,4,5) here. SELECT a FROM t1; # Clean up. DROP TABLE t1; - ---disable_query_log -eval set global max_allowed_packet = $old_max_allowed_packet; ---enable_query_log diff --git a/mysql-test/suite/innodb/t/innodb_bug59641.test b/mysql-test/suite/innodb/t/innodb_bug59641.test index a8d35cd1029..7fa32d2ec35 100644 --- a/mysql-test/suite/innodb/t/innodb_bug59641.test +++ b/mysql-test/suite/innodb/t/innodb_bug59641.test @@ -2,11 +2,11 @@ # Bug #59641 Prepared XA transaction causes shutdown hang after a crash -- source include/not_embedded.inc -# The server would issue this warning on restart. -call mtr.add_suppression("Found 3 prepared XA transactions"); -# Close tables used by other tests (to not get crashed myisam tables) -flush tables; +--disable_query_log +call mtr.add_suppression("Found 3 prepared XA transactions"); +FLUSH TABLES; +--enable_query_log CREATE TABLE t(a INT PRIMARY KEY, b INT)ENGINE=InnoDB; INSERT INTO t VALUES(2,2),(4,4),(8,8),(16,16),(32,32); @@ -17,7 +17,6 @@ XA END '123'; XA PREPARE '123'; CONNECT (con1,localhost,root,,); -CONNECTION con1; XA START '456'; INSERT INTO t VALUES(3,47),(5,67); @@ -26,7 +25,6 @@ XA END '456'; XA PREPARE '456'; CONNECT (con2,localhost,root,,); -CONNECTION con2; XA START '789'; UPDATE t SET b=4*a WHERE a=32; @@ -34,30 +32,13 @@ XA END '789'; XA PREPARE '789'; CONNECT (con3,localhost,root,,); -CONNECTION con3; -# Kill the server without sending a shutdown command --- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --- shutdown_server 0 --- source include/wait_until_disconnected.inc - -# Restart the server. --- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --- enable_reconnect --- source include/wait_until_connected_again.inc +--source include/kill_and_restart_mysqld.inc SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM t; COMMIT; -# Shut down the server. This would hang because of the bug. --- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --- shutdown_server --- source include/wait_until_disconnected.inc - -# Restart the server. --- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --- enable_reconnect --- source include/wait_until_connected_again.inc +--source include/restart_mysqld.inc SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM t; diff --git a/mysql-test/suite/innodb/t/log_file_size.test b/mysql-test/suite/innodb/t/log_file_size.test index 9668e3ba056..e1a312df59a 100644 --- a/mysql-test/suite/innodb/t/log_file_size.test +++ b/mysql-test/suite/innodb/t/log_file_size.test @@ -13,6 +13,14 @@ if (`SELECT @@innodb_log_file_size = 1048576`) { --skip Test requires innodb_log_file_size>1M. } +--disable_query_log +call mtr.add_suppression("InnoDB: Resizing redo log"); +call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); +call mtr.add_suppression("InnoDB: New log files created"); +call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles"); +FLUSH TABLES; +--enable_query_log + CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; BEGIN; INSERT INTO t1 VALUES (42); @@ -176,12 +184,5 @@ let SEARCH_PATTERN= InnoDB: Renaming log file .*ib_logfile101 to .*ib_logfile0; --let $restart_parameters= --source include/start_mysqld.inc ---disable_query_log -call mtr.add_suppression("InnoDB: Resizing redo log"); -call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); -call mtr.add_suppression("InnoDB: New log files created"); -call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles"); ---enable_query_log - SELECT * FROM t1; DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/xa_recovery.test b/mysql-test/suite/innodb/t/xa_recovery.test index 2c1034f3c4d..f5c2b655545 100644 --- a/mysql-test/suite/innodb/t/xa_recovery.test +++ b/mysql-test/suite/innodb/t/xa_recovery.test @@ -1,7 +1,3 @@ -if (`select plugin_auth_version <= "5.6.24" from information_schema.plugins where plugin_name='innodb'`) -{ - --skip Not fixed in InnoDB as of 5.6.24 or earlier -} --source include/have_innodb.inc # Embedded server does not support restarting. --source include/not_embedded.inc @@ -9,6 +5,7 @@ if (`select plugin_auth_version <= "5.6.24" from information_schema.plugins wher # MDEV-8841 - close tables opened by previous tests, # so they don't get marked crashed when the server gets crashed --disable_query_log +call mtr.add_suppression("Found 1 prepared XA transactions"); FLUSH TABLES; --enable_query_log @@ -18,17 +15,7 @@ connect (con1,localhost,root); XA START 'x'; UPDATE t1 set a=2; XA END 'x'; XA PREPARE 'x'; connection default; -call mtr.add_suppression("Found 1 prepared XA transactions"); - -# Kill and restart the server. --- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --- shutdown_server 0 --- source include/wait_until_disconnected.inc - --- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --- enable_reconnect --- source include/wait_until_connected_again.inc --- disable_reconnect +--source include/kill_and_restart_mysqld.inc disconnect con1; connect (con1,localhost,root); From bb1e8e43672ecf47e99970b5b96f65d101bae752 Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Tue, 31 Jan 2017 10:02:37 +0530 Subject: [PATCH 124/258] Mdev-4774- Fix tests cases --- .../binlog_max_binlog_stmt_cache_size.result | 53 ++++++++----------- .../t/binlog_max_binlog_stmt_cache_size.test | 44 +++++++++------ 2 files changed, 51 insertions(+), 46 deletions(-) diff --git a/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result b/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result index cf4d7004195..00f01b59732 100644 --- a/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result +++ b/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result @@ -1,31 +1,22 @@ -select @@max_binlog_stmt_cache_size; -@@max_binlog_stmt_cache_size -18446744073709547520 -set global max_binlog_stmt_cache_size= 18446744073709547520; -select @@max_binlog_stmt_cache_size; -@@max_binlog_stmt_cache_size -18446744073709547520 -set global max_binlog_stmt_cache_size= 18446744073709547519; -Warnings: -Warning 1292 Truncated incorrect max_binlog_stmt_cache_size value: '18446744073709547519' -select @@max_binlog_stmt_cache_size; -@@max_binlog_stmt_cache_size -18446744073709543424 -set global max_binlog_stmt_cache_size= 18446744073709551615; -Warnings: -Warning 1292 Truncated incorrect max_binlog_stmt_cache_size value: '18446744073709551615' -select @@max_binlog_stmt_cache_size; -@@max_binlog_stmt_cache_size -18446744073709547520 -set global max_binlog_stmt_cache_size= 18446744073709551614; -Warnings: -Warning 1292 Truncated incorrect max_binlog_stmt_cache_size value: '18446744073709551614' -select @@max_binlog_stmt_cache_size; -@@max_binlog_stmt_cache_size -18446744073709547520 -set global max_binlog_stmt_cache_size= 18446744073709551616; -ERROR 42000: Incorrect argument type to variable 'max_binlog_stmt_cache_size' -select @@max_binlog_stmt_cache_size; -@@max_binlog_stmt_cache_size -18446744073709547520 -set global max_binlog_stmt_cache_size= 18446744073709547520; +# +# MDEV-4774: Strangeness with max_binlog_stmt_cache_size Settings +# +CALL mtr.add_suppression("unsigned value 18446744073709547520 adjusted to 4294963200"); +SELECT @@global.max_binlog_stmt_cache_size; +@@global.max_binlog_stmt_cache_size +MAX_BINLOG_STMT_CACHE_SIZE +SET @cache_size= @@max_binlog_stmt_cache_size; +SET @@global.max_binlog_stmt_cache_size= @cache_size+1; +SELECT @@global.max_binlog_stmt_cache_size; +@@global.max_binlog_stmt_cache_size +MAX_BINLOG_STMT_CACHE_SIZE +SET @@global.max_binlog_stmt_cache_size = @cache_size+4095; +SELECT @@global.max_binlog_stmt_cache_size; +@@global.max_binlog_stmt_cache_size +MAX_BINLOG_STMT_CACHE_SIZE +SET @@global.max_binlog_stmt_cache_size= @cache_size-1; +SELECT @@global.max_binlog_stmt_cache_size = @cache_size-4096; +@@global.max_binlog_stmt_cache_size = @cache_size-4096 +1 +SET @@global.max_binlog_stmt_cache_size= @cache_size; +# End of test diff --git a/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test index f85eed3cea8..ca3f45c154c 100644 --- a/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test +++ b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test @@ -1,22 +1,36 @@ -source include/have_log_bin.inc; -select @@max_binlog_stmt_cache_size; ---let $cache_size=`select @@max_binlog_stmt_cache_size;` +--echo # +--echo # MDEV-4774: Strangeness with max_binlog_stmt_cache_size Settings +--echo # -set global max_binlog_stmt_cache_size= 18446744073709547520; -select @@max_binlog_stmt_cache_size; +CALL mtr.add_suppression("unsigned value 18446744073709547520 adjusted to 4294963200"); -set global max_binlog_stmt_cache_size= 18446744073709547519; -select @@max_binlog_stmt_cache_size; +--replace_result 18446744073709547520 MAX_BINLOG_STMT_CACHE_SIZE 4294963200 MAX_BINLOG_STMT_CACHE_SIZE +SELECT @@global.max_binlog_stmt_cache_size; -set global max_binlog_stmt_cache_size= 18446744073709551615; -select @@max_binlog_stmt_cache_size; +# Save the initial value of @@global.max_binlog_stmt_cache_size. +--replace_result 18446744073709547520 MAX_BINLOG_STMT_CACHE_SIZE 4294963200 MAX_BINLOG_STMT_CACHE_SIZE +SET @cache_size= @@max_binlog_stmt_cache_size; -set global max_binlog_stmt_cache_size= 18446744073709551614; -select @@max_binlog_stmt_cache_size; +--disable_warnings +SET @@global.max_binlog_stmt_cache_size= @cache_size+1; +--enable_warnings +--replace_result 18446744073709547520 MAX_BINLOG_STMT_CACHE_SIZE 4294963200 MAX_BINLOG_STMT_CACHE_SIZE +SELECT @@global.max_binlog_stmt_cache_size; ---error ER_WRONG_TYPE_FOR_VAR -set global max_binlog_stmt_cache_size= 18446744073709551616; -select @@max_binlog_stmt_cache_size; +--disable_warnings +SET @@global.max_binlog_stmt_cache_size = @cache_size+4095; +--enable_warnings +--replace_result 4294963200 MAX_BINLOG_STMT_CACHE_SIZE 18446744073709547520 MAX_BINLOG_STMT_CACHE_SIZE +SELECT @@global.max_binlog_stmt_cache_size; + +--disable_warnings +SET @@global.max_binlog_stmt_cache_size= @cache_size-1; +--enable_warnings +SELECT @@global.max_binlog_stmt_cache_size = @cache_size-4096; + +# Restore @@global.max_binlog_stmt_cache_size to its initial value. +SET @@global.max_binlog_stmt_cache_size= @cache_size; + +--echo # End of test ---eval set global max_binlog_stmt_cache_size= $cache_size From 41997d148dc1999c202f14e82e172c1ff57c7ead Mon Sep 17 00:00:00 2001 From: Sachin Setiya Date: Fri, 27 Jan 2017 11:15:45 +0530 Subject: [PATCH 125/258] MDEV-10812 WSREP causes responses being sent to protocol commands that must not send a response MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem:- When using wsrep (w/ galera) and issuing commands that can cause deadlocks, deadlock exception errors are sent in responses to commands such as close prepared statement and close connection which, by spec, must not send a response. Solution:- In dispatch_command, we will handle COM_QUIT and COM_STMT_CLOSE commands even in case of error. Patch Credit:- Jaka MoÄnik --- .../suite/galera/r/galera_mdev_10812.result | 11 ++++++++ .../suite/galera/t/galera_mdev_10812.test | 27 +++++++++++++++++++ sql/sql_parse.cc | 10 ++++++- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 mysql-test/suite/galera/r/galera_mdev_10812.result create mode 100644 mysql-test/suite/galera/t/galera_mdev_10812.test diff --git a/mysql-test/suite/galera/r/galera_mdev_10812.result b/mysql-test/suite/galera/r/galera_mdev_10812.result new file mode 100644 index 00000000000..fba10004761 --- /dev/null +++ b/mysql-test/suite/galera/r/galera_mdev_10812.result @@ -0,0 +1,11 @@ +# +# MDEV-10812: On COM_STMT_CLOSE/COM_QUIT, when wsrep_conflict_state +# is ABORTED, it causes wrong response to be sent to the client +# +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +CREATE TABLE t1(a INT PRIMARY KEY); +INSERT INTO t1 VALUES(1),(2),(3); +START TRANSACTION ; +UPDATE t1 SET a=a+100; +UPDATE t1 SET a=a+100; +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_mdev_10812.test b/mysql-test/suite/galera/t/galera_mdev_10812.test new file mode 100644 index 00000000000..4539ab6c84d --- /dev/null +++ b/mysql-test/suite/galera/t/galera_mdev_10812.test @@ -0,0 +1,27 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--echo # +--echo # MDEV-10812: On COM_STMT_CLOSE/COM_QUIT, when wsrep_conflict_state +--echo # is ABORTED, it causes wrong response to be sent to the client +--echo # + +# First create a deadlock +--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1 +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +CREATE TABLE t1(a INT PRIMARY KEY); +INSERT INTO t1 VALUES(1),(2),(3); +START TRANSACTION ; +UPDATE t1 SET a=a+100; + +--sleep 2 +--connection node_2 +UPDATE t1 SET a=a+100; + +--sleep 2 +--connection node_1a +# here we get deadlock error +--disconnect node_1a + +--connection node_2 +DROP TABLE t1; diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 033e88aa6e1..dadb03abfff 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1265,7 +1265,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd, { wsrep_client_rollback(thd); } - if (thd->wsrep_conflict_state== ABORTED) + /* We let COM_QUIT and COM_STMT_CLOSE to execute even if wsrep aborted. */ + if (thd->wsrep_conflict_state == ABORTED && + command != COM_STMT_CLOSE && command != COM_QUIT) { my_error(ER_LOCK_DEADLOCK, MYF(0), "wsrep aborted transaction"); WSREP_DEBUG("Deadlock error for: %s", thd->query()); @@ -1918,6 +1920,12 @@ bool dispatch_command(enum enum_server_command command, THD *thd, if (WSREP(thd)) { + /* + MDEV-10812 + In the case of COM_QUIT/COM_STMT_CLOSE thread status should be disabled. + */ + DBUG_ASSERT((command != COM_QUIT && command != COM_STMT_CLOSE) + || thd->get_stmt_da()->is_disabled()); /* wsrep BF abort in query exec phase */ mysql_mutex_lock(&thd->LOCK_wsrep_thd); do_end_of_statement= thd->wsrep_conflict_state != REPLAYING && From 17cc6198479d83bd4f88e9fff197b0b342dca5d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Tue, 31 Jan 2017 15:42:52 +0200 Subject: [PATCH 126/258] MDEV-11671: Duplicated [NOTE] output for changed innodb_page_size Remove duplicated output and change output level to info. --- storage/innobase/handler/ha_innodb.cc | 32 +++++++++++--------------- storage/xtradb/handler/ha_innodb.cc | 33 +++++++++++---------------- 2 files changed, 26 insertions(+), 39 deletions(-) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 33eb352c42f..350438e0495 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -3448,22 +3448,16 @@ innobase_init( } } - if (UNIV_PAGE_SIZE != UNIV_PAGE_SIZE_DEF) { + /* The buffer pool needs to be able to accommodate enough many + pages, even for larger pages */ + if (UNIV_PAGE_SIZE > UNIV_PAGE_SIZE_DEF + && innobase_buffer_pool_size < (24 * 1024 * 1024)) { ib_logf(IB_LOG_LEVEL_INFO, - "innodb_page_size has been " - "changed from default value %d to %ld.", - UNIV_PAGE_SIZE_DEF, UNIV_PAGE_SIZE); - - /* There is hang on buffer pool when trying to get a new - page if buffer pool size is too small for large page sizes */ - if (UNIV_PAGE_SIZE > UNIV_PAGE_SIZE_DEF - && innobase_buffer_pool_size < (24 * 1024 * 1024)) { - ib_logf(IB_LOG_LEVEL_ERROR, - "innodb_page_size=%lu requires " - "innodb_buffer_pool_size > 24M current %lld", - UNIV_PAGE_SIZE, innobase_buffer_pool_size); - goto error; - } + "innodb_page_size= " ULINTPF " requires " + "innodb_buffer_pool_size > 24M current %lld. ", + UNIV_PAGE_SIZE, + innobase_buffer_pool_size); + goto error; } #ifndef HAVE_LZ4 @@ -3764,11 +3758,11 @@ innobase_change_buffering_inited_ok: srv_page_size); goto mem_free_and_error; } + if (UNIV_PAGE_SIZE_DEF != srv_page_size) { - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: innodb-page-size has been changed" - " from the default value %d to %lu.\n", + ib_logf(IB_LOG_LEVEL_INFO, + " innodb-page-size has been changed" + " from the default value %d to " ULINTPF ".", UNIV_PAGE_SIZE_DEF, srv_page_size); } diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index e9d42097fd0..bef54a910e6 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -3865,23 +3865,16 @@ innobase_init( srv_log_block_size = 512; } - if (UNIV_PAGE_SIZE != UNIV_PAGE_SIZE_DEF) { + /* The buffer pool needs to be able to accommodate enough many + pages, even for larger pages */ + if (UNIV_PAGE_SIZE > UNIV_PAGE_SIZE_DEF + && innobase_buffer_pool_size < (24 * 1024 * 1024)) { ib_logf(IB_LOG_LEVEL_INFO, - "innodb_page_size has been " - "changed from default value %d to %ld.", - UNIV_PAGE_SIZE_DEF, UNIV_PAGE_SIZE); - - /* There is hang on buffer pool when trying to get a new - page if buffer pool size is too small for large page sizes */ - if (UNIV_PAGE_SIZE > UNIV_PAGE_SIZE_DEF - && innobase_buffer_pool_size < (24 * 1024 * 1024)) { - ib_logf(IB_LOG_LEVEL_ERROR, - "innodb_page_size=%lu requires " - "innodb_buffer_pool_size > 24M current %lld", - UNIV_PAGE_SIZE, innobase_buffer_pool_size); - - goto error; - } + "innodb_page_size= " ULINTPF " requires " + "innodb_buffer_pool_size > 24M current %lld. ", + UNIV_PAGE_SIZE, + innobase_buffer_pool_size); + goto error; } ut_ad (srv_log_block_size >= OS_MIN_LOG_BLOCK_SIZE); @@ -4204,11 +4197,11 @@ innobase_change_buffering_inited_ok: srv_page_size); goto mem_free_and_error; } + if (UNIV_PAGE_SIZE_DEF != srv_page_size) { - ut_print_timestamp(stderr); - fprintf(stderr, - " InnoDB: innodb-page-size has been changed" - " from the default value %d to %lu.\n", + ib_logf(IB_LOG_LEVEL_INFO, + " innodb-page-size has been changed" + " from the default value %d to " ULINTPF " .", UNIV_PAGE_SIZE_DEF, srv_page_size); } From aa9db4c162e9fa7560abb1bf8012233f30980e04 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Sun, 29 Jan 2017 13:21:38 -0500 Subject: [PATCH 127/258] MDEV-11817: Altering a table with more rows than .. .. wsrep_max_ws_rows causes cluster to break when running Galera cluster in TOI mode Problem: While copying records to temporary table during ALTER TABLE, if there are more than wsrep_max_wsrep_rows records, the command fails. Fix: Since, the temporary table records are not placed into the binary log, wsrep_affected_rows must not be incremented. Added a test. --- .../galera/r/galera_var_max_ws_rows.result | 20 +++++++++++++++ .../galera/t/galera_var_max_ws_rows.test | 25 +++++++++++++++++-- sql/handler.cc | 15 ++++++++--- 3 files changed, 55 insertions(+), 5 deletions(-) diff --git a/mysql-test/suite/galera/r/galera_var_max_ws_rows.result b/mysql-test/suite/galera/r/galera_var_max_ws_rows.result index 6e239c70a3e..a1deb16c5a6 100644 --- a/mysql-test/suite/galera/r/galera_var_max_ws_rows.result +++ b/mysql-test/suite/galera/r/galera_var_max_ws_rows.result @@ -113,3 +113,23 @@ INSERT INTO t1 (f2) VALUES (2); ERROR HY000: wsrep_max_ws_rows exceeded DROP TABLE t1; DROP TABLE ten; +# +# MDEV-11817: Altering a table with more rows than +# wsrep_max_ws_rows causes cluster to break when running +# Galera cluster in TOI mode +# +CREATE TABLE t1(c1 INT)ENGINE = INNODB; +SET GLOBAL wsrep_max_ws_rows= DEFAULT; +INSERT INTO t1 VALUES(1); +INSERT INTO t1 SELECT * FROM t1; +SET GLOBAL wsrep_max_ws_rows= 1; +ALTER TABLE t1 CHANGE COLUMN c1 c1 BIGINT; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c1` bigint(20) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SELECT COUNT(*) FROM t1; +COUNT(*) +2 +DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_var_max_ws_rows.test b/mysql-test/suite/galera/t/galera_var_max_ws_rows.test index 944238bf1aa..ab6a3390c06 100644 --- a/mysql-test/suite/galera/t/galera_var_max_ws_rows.test +++ b/mysql-test/suite/galera/t/galera_var_max_ws_rows.test @@ -146,10 +146,31 @@ INSERT INTO t1 (f2) VALUES (1); --error ER_ERROR_DURING_COMMIT INSERT INTO t1 (f2) VALUES (2); +DROP TABLE t1; +DROP TABLE ten; + +--echo # +--echo # MDEV-11817: Altering a table with more rows than +--echo # wsrep_max_ws_rows causes cluster to break when running +--echo # Galera cluster in TOI mode +--echo # +--connection node_1 +CREATE TABLE t1(c1 INT)ENGINE = INNODB; +SET GLOBAL wsrep_max_ws_rows= DEFAULT; +INSERT INTO t1 VALUES(1); +INSERT INTO t1 SELECT * FROM t1; +SET GLOBAL wsrep_max_ws_rows= 1; +ALTER TABLE t1 CHANGE COLUMN c1 c1 BIGINT; + +--connection node_2 +SHOW CREATE TABLE t1; +SELECT COUNT(*) FROM t1; +DROP TABLE t1; + +--connection node_1 --disable_query_log --eval SET GLOBAL wsrep_max_ws_rows = $wsrep_max_ws_rows_orig --enable_query_log -DROP TABLE t1; -DROP TABLE ten; +--source include/galera_end.inc diff --git a/sql/handler.cc b/sql/handler.cc index af06427ff19..cca77eece48 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -5726,6 +5726,8 @@ static int write_locked_table_maps(THD *thd) typedef bool Log_func(THD*, TABLE*, bool, const uchar*, const uchar*); +static int check_wsrep_max_ws_rows(); + static int binlog_log_row(TABLE* table, const uchar *before_record, const uchar *after_record, @@ -5765,6 +5767,13 @@ static int binlog_log_row(TABLE* table, bool const has_trans= thd->lex->sql_command == SQLCOM_CREATE_TABLE || table->file->has_transactions(); error= (*log_func)(thd, table, has_trans, before_record, after_record); + + /* + Now that the record has been logged, increment wsrep_affected_rows and + also check whether its within the allowable limits (wsrep_max_ws_rows). + */ + if (error == 0) + error= check_wsrep_max_ws_rows(); } } return error ? HA_ERR_RBR_LOGGING_FAILED : 0; @@ -5923,7 +5932,7 @@ int handler::ha_write_row(uchar *buf) DBUG_RETURN(error); /* purecov: inspected */ DEBUG_SYNC_C("ha_write_row_end"); - DBUG_RETURN(check_wsrep_max_ws_rows()); + DBUG_RETURN(0); } @@ -5954,7 +5963,7 @@ int handler::ha_update_row(const uchar *old_data, uchar *new_data) rows_changed++; if (unlikely(error= binlog_log_row(table, old_data, new_data, log_func))) return error; - return check_wsrep_max_ws_rows(); + return 0; } int handler::ha_delete_row(const uchar *buf) @@ -5981,7 +5990,7 @@ int handler::ha_delete_row(const uchar *buf) rows_changed++; if (unlikely(error= binlog_log_row(table, buf, 0, log_func))) return error; - return check_wsrep_max_ws_rows(); + return 0; } From cd8482c19e325355006adc8fc5591998be46e288 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Mon, 30 Jan 2017 14:49:44 -0500 Subject: [PATCH 128/258] MDEV-11945: Fix description for "max_statement_time" in --help max_statement_time also applies to non-SELECT queries. --- mysql-test/r/mysqld--help.result | 8 ++++---- .../suite/sys_vars/r/sysvars_server_embedded.result | 2 +- .../suite/sys_vars/r/sysvars_server_notembedded.result | 2 +- sql/sys_vars.cc | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mysql-test/r/mysqld--help.result b/mysql-test/r/mysqld--help.result index 340fa21f0df..4b9370f2cd4 100644 --- a/mysql-test/r/mysqld--help.result +++ b/mysql-test/r/mysqld--help.result @@ -467,10 +467,10 @@ The following options may be given as the first argument: --max-sp-recursion-depth[=#] Maximum stored procedure recursion depth --max-statement-time=# - A SELECT query that have taken more than - max_statement_time seconds will be aborted. The argument - will be treated as a decimal value with microsecond - precision. A value of 0 (default) means no timeout + A query that has taken more than max_statement_time + seconds will be aborted. The argument will be treated as + a decimal value with microsecond precision. A value of 0 + (default) means no timeout --max-tmp-tables=# Unused, will be removed. --max-user-connections=# The maximum number of active connections for a single diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result index 7d728bc89dc..1d9a956b337 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result @@ -2046,7 +2046,7 @@ GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0.000000 VARIABLE_SCOPE SESSION VARIABLE_TYPE DOUBLE -VARIABLE_COMMENT A SELECT query that have taken more than max_statement_time seconds will be aborted. The argument will be treated as a decimal value with microsecond precision. A value of 0 (default) means no timeout +VARIABLE_COMMENT A query that has taken more than max_statement_time seconds will be aborted. The argument will be treated as a decimal value with microsecond precision. A value of 0 (default) means no timeout NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 31536000 NUMERIC_BLOCK_SIZE NULL diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result index d6c4050545d..7fe968fd496 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result @@ -2242,7 +2242,7 @@ GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0.000000 VARIABLE_SCOPE SESSION VARIABLE_TYPE DOUBLE -VARIABLE_COMMENT A SELECT query that have taken more than max_statement_time seconds will be aborted. The argument will be treated as a decimal value with microsecond precision. A value of 0 (default) means no timeout +VARIABLE_COMMENT A query that has taken more than max_statement_time seconds will be aborted. The argument will be treated as a decimal value with microsecond precision. A value of 0 (default) means no timeout NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 31536000 NUMERIC_BLOCK_SIZE NULL diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 30bc045f7a1..02dad1d1ca7 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -1242,9 +1242,9 @@ static bool update_cached_max_statement_time(sys_var *self, THD *thd, static Sys_var_double Sys_max_statement_time( "max_statement_time", - "A SELECT query that have taken more than max_statement_time seconds " + "A query that has taken more than max_statement_time seconds " "will be aborted. The argument will be treated as a decimal value " - "with microsecond precision. A value of 0 (default) means no timeout", + "with microsecond precision. A value of 0 (default) means no timeout", SESSION_VAR(max_statement_time_double), CMD_LINE(REQUIRED_ARG), VALID_RANGE(0, LONG_TIMEOUT), DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0), From bc4686f0f4d17dc57dd727c9f5390caa3022bdca Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Mon, 30 Jan 2017 14:50:58 -0500 Subject: [PATCH 129/258] Minor test improvement --- mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result | 1 + mysql-test/suite/galera/suite.pm | 1 - mysql-test/suite/galera/t/galera_var_certify_nonPK_off.test | 4 ++++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result index e6f37792569..0a3516e043f 100644 --- a/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result +++ b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result @@ -19,3 +19,4 @@ SET GLOBAL wsrep_certify_nonPK = 1; SET GLOBAL wsrep_certify_nonPK = 1; DROP TABLE t1; DROP TABLE t2; +call mtr.add_suppression("SQL statement was ineffective"); diff --git a/mysql-test/suite/galera/suite.pm b/mysql-test/suite/galera/suite.pm index 151e7b7cbe9..a161301d8ff 100644 --- a/mysql-test/suite/galera/suite.pm +++ b/mysql-test/suite/galera/suite.pm @@ -32,7 +32,6 @@ push @::global_suppressions, qr(WSREP:.*down context.*), qr(WSREP: Failed to send state UUID:), qr(WSREP: last inactive check more than .* skipping check), - qr(WSREP: SQL statement was ineffective), qr(WSREP: Releasing seqno [0-9]* before [0-9]* was assigned.), qr|WSREP: access file\(.*gvwstate.dat\) failed\(No such file or directory\)|, qr(WSREP: Quorum: No node with complete state), diff --git a/mysql-test/suite/galera/t/galera_var_certify_nonPK_off.test b/mysql-test/suite/galera/t/galera_var_certify_nonPK_off.test index 3e8f3d18859..d2d16176e41 100644 --- a/mysql-test/suite/galera/t/galera_var_certify_nonPK_off.test +++ b/mysql-test/suite/galera/t/galera_var_certify_nonPK_off.test @@ -37,3 +37,7 @@ SELECT COUNT(*) = 1 FROM t2 WHERE f1 = 3; DROP TABLE t1; DROP TABLE t2; +--connection node_1 +call mtr.add_suppression("SQL statement was ineffective"); + +--source include/galera_end.inc From 650ffcd3a081f0bf4e3b7de93fac72c1b67284e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 1 Feb 2017 15:47:33 +0200 Subject: [PATCH 130/258] Extend the innodb.log_corruption test. Remove the dependency on unzip. Instead, generate the InnoDB files with perl. log_block_checksum_is_ok(): Correct the error message. recv_scan_log_recs(): Remove the duplicated error message for log block checksum mismatch. innobase_start_or_create_for_mysql(): If the server is in read-only mode or if innodb_force_recovery>=3, do not try to modify the system tablespace. (If the doublewrite buffer or the non-core system tables do not exist, do not try to create them.) innodb_shutdown(): Relax a debug assertion. If the system tablespace did not contain a doublewrite buffer and if we started up in innodb_read_only mode or with innodb_force_recovery>=3, it will not be created. dict_create_or_check_sys_tablespace(): Set the flag srv_sys_tablespaces_open when the tables exist. --- mysql-test/include/have_unzip.inc | 3 - mysql-test/suite.pm | 2 - .../suite/innodb/r/log_corruption.result | 4 +- .../suite/innodb/std_data/log_corruption.zip | Bin 94694 -> 0 bytes .../suite/innodb/std_data/log_corruption0.zip | Bin 1211 -> 0 bytes .../suite/innodb/std_data/log_corruption1.zip | Bin 1257 -> 0 bytes .../suite/innodb/std_data/log_corruption2.zip | Bin 1304 -> 0 bytes .../suite/innodb/std_data/log_corruption3.zip | Bin 1304 -> 0 bytes .../suite/innodb/std_data/log_corruption4.zip | Bin 1308 -> 0 bytes .../innodb/std_data/log_corruption4a.zip | Bin 1310 -> 0 bytes .../suite/innodb/std_data/log_corruption5.zip | Bin 1308 -> 0 bytes .../suite/innodb/std_data/log_corruption6.zip | Bin 1311 -> 0 bytes mysql-test/suite/innodb/t/log_corruption.test | 234 +++++++++++++++--- storage/innobase/dict/dict0crea.cc | 20 +- storage/innobase/log/log0recv.cc | 29 +-- storage/innobase/srv/srv0start.cc | 35 +-- 16 files changed, 244 insertions(+), 83 deletions(-) delete mode 100644 mysql-test/include/have_unzip.inc delete mode 100644 mysql-test/suite/innodb/std_data/log_corruption.zip delete mode 100644 mysql-test/suite/innodb/std_data/log_corruption0.zip delete mode 100644 mysql-test/suite/innodb/std_data/log_corruption1.zip delete mode 100644 mysql-test/suite/innodb/std_data/log_corruption2.zip delete mode 100644 mysql-test/suite/innodb/std_data/log_corruption3.zip delete mode 100644 mysql-test/suite/innodb/std_data/log_corruption4.zip delete mode 100644 mysql-test/suite/innodb/std_data/log_corruption4a.zip delete mode 100644 mysql-test/suite/innodb/std_data/log_corruption5.zip delete mode 100644 mysql-test/suite/innodb/std_data/log_corruption6.zip diff --git a/mysql-test/include/have_unzip.inc b/mysql-test/include/have_unzip.inc deleted file mode 100644 index a3308524679..00000000000 --- a/mysql-test/include/have_unzip.inc +++ /dev/null @@ -1,3 +0,0 @@ -# -# empty. the real check happens in suite.pm -# diff --git a/mysql-test/suite.pm b/mysql-test/suite.pm index 134a0d6d438..f501e610e53 100644 --- a/mysql-test/suite.pm +++ b/mysql-test/suite.pm @@ -68,8 +68,6 @@ sub skip_combinations { unless $::mysqld_variables{'version-ssl-library'} =~ /OpenSSL (\S+)/ and $1 ge "1.0.1d"; - $skip{'include/have_unzip.inc'} = 'no unzip executable' unless `unzip`; - %skip; } diff --git a/mysql-test/suite/innodb/r/log_corruption.result b/mysql-test/suite/innodb/r/log_corruption.result index 64a8824189f..18029f58d36 100644 --- a/mysql-test/suite/innodb/r/log_corruption.result +++ b/mysql-test/suite/innodb/r/log_corruption.result @@ -11,7 +11,9 @@ # Test a corrupted MLOG_FILE_NAME record. # valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2 # Test a corrupted MLOG_FILE_NAME record. -# valid header, invalid checkpoint 1, valid checkpoint 2 +# valid header, invalid checkpoint 1, valid checkpoint 2, invalid block +# valid header, invalid checkpoint 1, valid checkpoint 2, invalid log record +ib_buffer_pool ib_logfile0 ib_logfile1 ibdata1 diff --git a/mysql-test/suite/innodb/std_data/log_corruption.zip b/mysql-test/suite/innodb/std_data/log_corruption.zip deleted file mode 100644 index 6f126c2edf0e70634b468b6bad53633e1a127d22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94694 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 PKthZ_XbGfqz(o`QQjt1H diff --git a/mysql-test/suite/innodb/std_data/log_corruption1.zip b/mysql-test/suite/innodb/std_data/log_corruption1.zip deleted file mode 100644 index 35a02adaa6db6c1805ea49cd1fbf974796af5f58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1257 zcmWIWW@Zs#U|`^2@K=;`*YZ4gw~z(MWe{NC29lXc@j3bFX_+~x25+x!@~ diff --git a/mysql-test/suite/innodb/std_data/log_corruption2.zip b/mysql-test/suite/innodb/std_data/log_corruption2.zip deleted file mode 100644 index 4e4180ac4a31d7dd963241584c3becde4627b5fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmWIWW@Zs#U|`^2Xi$}NU*Hg)wtxl5We{NC29lXc@j3bFX_+~x25+w#dNBtIG(6lm zQDdWL_GXSUxdY5kgr)^H>Al!D;qKe;ZjotbW^xCE1Z=w0H+*5K>^yiZE|T;9bsnFu z;l`HFW#Zks&+eERGhIA2>-C~FvofzvS-Hx;%S1oz^3SU&Vd9}#O=}D4e_Z+((Ia-a z+`Rqy)59NQ@5?gmU)#O6Q0C~bcgN4YOxs+?wEphnx9)G|EkC{O zoq4~#NyV-D_q!QEjvoc1Aut*OBPRqJ-fm$E@MdI^W5!*S!9rt0BZ!4mumyOtvVnvc MfzT32p9GhG04y7C1^@s6 diff --git a/mysql-test/suite/innodb/std_data/log_corruption3.zip b/mysql-test/suite/innodb/std_data/log_corruption3.zip deleted file mode 100644 index 2337c81a80be9d91138f115b0996e0d55b3f1849..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmWIWW@Zs#U|`^2*rqJ!t~X=a*99y| z!;B3NS)_%n-r6>pZ`kDGR3Ln3{s!-UF`0(8W2bJ-Ybg#WWb*b`P}sQf`WnUerjvcX zh8hcA?9hLEGts83y;9$QveD`8Rq-K}TBlCy^llEU|8qfhYUIRK4>Z=S&x^0uxwSdW zWwWTf;O%_VrGKT%pReA2zVi9bcYF=^&3Z4--qG>*ZvU~biJR-0PQQHg($??Y<%FPX zvyaPX?VFSPDi7rLQ7{?;qaiSYLg0bLTZRB{MkYCC+(j8II5sqbSV#q1fHx}}NQe;# LErIk&aQO!Sz;kUU diff --git a/mysql-test/suite/innodb/std_data/log_corruption4.zip b/mysql-test/suite/innodb/std_data/log_corruption4.zip deleted file mode 100644 index 86002d7d42a9bc013d7881798e051dfe28e734ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1308 zcmWIWW@Zs#U|`^2IHw}#-e0V3w1fr7We{NC29lXc@j3bFX_+~x25+w#`Y{CxG(22r zn6cp@i?p!SOIrqB)2XUbO0!?s9n!N6DqxV7*3PaL&KA~Bc*<$h8o1#T!xPC*wP*ME zd=3Asv`AF??$@$AJ?l@OHqw2yXw59ot5a64^6xg$Pn-O+#AbE3mg&K`iue6;|8;h~ zKKFj{-IEhO>(7ev98-ey23Z1EXLx1V%$(1cks2|N8;nj7)OOxQjDbXl!T%v5*S40B=?{ PkPssfS_0{_;4%;Z+WTw1 diff --git a/mysql-test/suite/innodb/std_data/log_corruption4a.zip b/mysql-test/suite/innodb/std_data/log_corruption4a.zip deleted file mode 100644 index 6d072f3029fece328f659bfa7b1d2fe22d00a6a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1310 zcmWIWW@Zs#U|`^2IF+m6K3i|!mt`zKE`tCAH;~LsiqFYUPs_|nHF$e{vTv_r?4dbMPZ-OmYh4~NgCGU^_ zd2Zhq|NESZR}O_$ZHEMm`JUzMKa+yQ!%fHXt#pv<;ZFa5fxx?S?UEj6)?0xkQRsa8d zkbQNy!dU6_1A;RShN6pV(zXb6m;5SX(pKERuiNsbwJfd&hW4UHfcQt=kx S&B_K6Vgy1h?+ diff --git a/mysql-test/suite/innodb/std_data/log_corruption5.zip b/mysql-test/suite/innodb/std_data/log_corruption5.zip deleted file mode 100644 index bbf0238efc993e3eae7d692c12013d3c8978b9ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1308 zcmWIWW@Zs#U|`^2c(GRA-Ti$5+Y%NamqCDm8%Sm*#pmRwr)B1(8oa$~=*JW&(C~1f z;jDzioMviem#P`0v$VZLnr6SSJEUhDRKOrzon0-QEo93uSNwyB+rd-J6Vgw7H~nmM zHU4aOM_5kDwA+Q|J9O8dHd)=hDa$Q1c-bmD?Mqu`^ei)P_KXc#$@%TjuIis((l17C ztCw$o%VYUJ=>LzeKVLsAnYcSy{NAp;q3_rf=2yzZ9`Ve1SNpnV_s^d!anJg{&o3;P zdTg^*zMSyjj^m OLX1FY38c@0%Rm6UUTix6 diff --git a/mysql-test/suite/innodb/std_data/log_corruption6.zip b/mysql-test/suite/innodb/std_data/log_corruption6.zip deleted file mode 100644 index 04dd687e7c9324b6bcb6288deb939163ec9d3c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1311 zcmWIWW@Zs#U|`^2=&sRlSI)m5vYZ9TWe{NC29lXc@j3bFX_+~x25&DL`Y{CxG(22r zIAaa3dV;5p?i(H5B@4E0PMNx5>hfy#Z0;3@?f", "$ENV{bugdir}/ib_buffer_pool"; +close OUT or die; + +# Create a dummy system tablespace file using the default innodb_page_size=16k +die unless open OUT, ">", "$ENV{bugdir}/ibdata1"; +binmode OUT; + +# Tablespace header page with valid FSP_SIZE=768 pages. +# Also, write a dummy FSEG_MAGIC_N at offset 60 to keep fseg_inode_try_get() +# happy when fseg_n_reserved_pages() is following an invalid pointer +# from the all-zero change buffer header page (page 3). +print OUT pack("Nx[42]Nx[10]Nx[16312]Nx[4]", + 0xdeadbeef, # checksum + 768, # FSP_PAGE_SIZE + 97937874, # FSEG_MAGIC_N + 0xdeadbeef); # checksum +# Dummy pages 1..6. +print OUT chr(0) x (6 * 16384); +# Dictionary header page. +print OUT pack("NNx[62]Nx[8]Nx[16290]Nx[4]", + 0xdeadbeef, # checksum + 7, # FIL_PAGE_OFFSET + 8, # DICT_HDR_TABLES + 9, # DICT_HDR_INDEXES + 0xdeadbeef); # checksum + +# Empty SYS_TABLES page (page 8). +print OUT pack("NNNNx[8]nx[12]nnx[31]Cx[20]", + 0xdeadbeef, # checksum + 8, # FIL_PAGE_OFFSET + ~0, ~0, # FIL_PAGE_PREV, FIL_PAGE_NEXT + 17855, # FIL_PAGE_TYPE == FIL_PAGE_INDEX + 2, # PAGE_N_DIR_SLOTS + 124, # PAGE_HEAP_TOP + 1); # PAGE_INDEX_ID == DICT_TABLES_ID +print OUT pack("nxnn", 0x801, 3, 116), "infimum"; +print OUT pack("xnxnxx", 0x901, 0x803), "supremum"; +print OUT pack("x[16248]nnNx[4]", 116, 101, 0xdeadbeef); + +# Empty SYS_INDEXES page (page 9). +print OUT pack("NNNNx[8]nx[12]nnx[31]Cx[20]", + 0xdeadbeef, # checksum + 9, # FIL_PAGE_OFFSET + ~0, ~0, # FIL_PAGE_PREV, FIL_PAGE_NEXT + 17855, # FIL_PAGE_TYPE == FIL_PAGE_INDEX + 2, # PAGE_N_DIR_SLOTS + 124, # PAGE_HEAP_TOP + 3); # PAGE_INDEX_ID == DICT_INDEXES_ID + +print OUT pack("nxnn", 0x801, 3, 116), "infimum"; +print OUT pack("xnxnxx", 0x901, 0x803), "supremum"; +print OUT pack("x[16248]nnNx[4]", 116, 101, 0xdeadbeef); +print OUT chr(0) x (759 * 16384); +close OUT or die; + +# Create a dummy second redo log file +die unless open OUT, ">", "$ENV{bugdir}/ib_logfile1"; +binmode OUT; +print OUT chr(0) x 1048576; +close OUT or die; + +# Create a redo log from before MySQL 5.7.9 +die unless open OUT, ">", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +print OUT pack("x[9]nx[5]", 0x1286), " ", chr(0) x 492; +print OUT pack("x[13]nCNnxxNNx[256]", 0x1286, 12, 0x80c, 0xf0, ~0, ~0); +print OUT pack("H*x[1240]", "590DBAACFE922582"); +print OUT pack("H*x[5]", "800009440022000c0000000138"); +print OUT pack("H*x[475]H*", "12860cb7809781e80006626f677573", "089C0ADA"); +print OUT chr(0) x 1046016; +close OUT or die; EOF --echo # redo log from before MySQL 5.7.9 ---exec unzip $MTR_SUITE_DIR/std_data/log_corruption.zip -d $bugdir > $SEARCH_FILE --error 1 --exec $MYSQLD $args let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\\.7\\.9\\.; --source include/search_pattern_in_file.inc --echo # redo log from before MySQL 5.7.9, with corrupted log checkpoint ---remove_file $bugdir/ib_logfile0 ---copy_file $bugdir/ib_logfile1 $bugdir/ib_logfile0 +--move_file $bugdir/ib_logfile0 $bugdir/ib_logfile +--copy_file $bugdir/ib_logfile1 $bugdir/ib_logfile0 --error 1 --exec $MYSQLD $args let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\\.7\\.9, and we did not find a valid checkpoint; --source include/search_pattern_in_file.inc +let SEARCH_PATTERN=Plugin 'InnoDB' registration as a STORAGE ENGINE failed; +--source include/search_pattern_in_file.inc +let SEARCH_PATTERN=Unknown/unsupported storage engine: InnoDB; +--source include/search_pattern_in_file.inc --echo # redo log from before MySQL 5.7.9, with corrupted log block --remove_file $bugdir/ib_logfile0 ---exec unzip $MTR_SUITE_DIR/std_data/log_corruption0.zip -d $bugdir > $SEARCH_FILE +--move_file $bugdir/ib_logfile $bugdir/ib_logfile0 +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +die unless seek(OUT, 0x800, 0); +print OUT pack("Nx[508]", 0xc0deba5e); +close OUT or die; +EOF + --error 1 --exec $MYSQLD $args let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\\.7\\.9, and it appears corrupted; --source include/search_pattern_in_file.inc --echo # redo log from "after" MySQL 5.7.9, but with invalid header checksum ---remove_file $bugdir/ib_logfile0 ---exec unzip $MTR_SUITE_DIR/std_data/log_corruption1.zip -d $bugdir > $SEARCH_FILE +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +print OUT pack("N",2); +close OUT or die; +EOF --error 1 --exec $MYSQLD $args let SEARCH_PATTERN=InnoDB: Invalid redo log header checksum; --source include/search_pattern_in_file.inc --echo # distant future redo log format, with valid header checksum ---remove_file $bugdir/ib_logfile0 ---exec unzip $MTR_SUITE_DIR/std_data/log_corruption2.zip -d $bugdir > $SEARCH_FILE +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +print OUT pack("Nx[5]nx[5]", ~0, 0x1286); +print OUT "malicious intentions, or perhaps not"; +print OUT pack("x[456]N", 0x8a1bb475); +close OUT or die; +EOF --error 1 --exec $MYSQLD $args let SEARCH_PATTERN=InnoDB: Unsupported redo log format. The redo log was created with malicious intentions, or perhaps\. Please follow the instructions at http://dev.mysql.com/doc/refman/5.7/en/upgrading-downgrading.html; --source include/search_pattern_in_file.inc --echo # valid header, but old-format checkpoint blocks ---remove_file $bugdir/ib_logfile0 ---exec unzip $MTR_SUITE_DIR/std_data/log_corruption3.zip -d $bugdir > $SEARCH_FILE +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +# header block +print OUT pack("Nx[5]nx[5]", 1, 0x1286); +print OUT "malicious intentions, or perhaps not"; +print OUT pack("x[456]N", 0xd42d53a2); +# old-format checkpoint block 1 +print OUT pack("x[13]nCNnxxNNx[256]", 0x1286, 12, 0x80c, 0xf0, ~0, ~0); +print OUT pack("H*x[1240]", "590DBAACFE922582"); +print OUT pack("H*x[5]", "800009440022000c0000000138"); +print OUT pack("H*x[475]H*", "12860cb7809781e80006626f677573", "089C0ADA"); +close OUT or die; +EOF --error 1 --exec $MYSQLD $args let SEARCH_PATTERN=InnoDB: No valid checkpoint found .corrupted redo log; --source include/search_pattern_in_file.inc --echo # valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2, invalid block checksum ---remove_file $bugdir/ib_logfile0 ---exec unzip $MTR_SUITE_DIR/std_data/log_corruption4.zip -d $bugdir > $SEARCH_FILE +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +die unless seek(OUT, 0x210, 0); +print OUT pack("NNx[264]", 0, 0x80c); +print OUT pack("NNx[212]N", 0x590dbaac, 0xfe922582, 0xc72d49c4); +close OUT or die; +EOF # Anything below innodb_force_recovery=6 must find a valid redo log. # Missing tablespace files are tolerated already with innodb_force_recovery=1. --error 1 --exec $MYSQLD $args --innodb-force-recovery=5 -let SEARCH_PATTERN=InnoDB: Log block 2372 at lsn 1213952 has valid header, but checksum field contains 144444122, should be 3362026715; +let SEARCH_PATTERN=InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 3362026715 found: 144444122; --source include/search_pattern_in_file.inc let SEARCH_PATTERN=InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\.; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=Plugin 'InnoDB' registration as a STORAGE ENGINE failed; ---source include/search_pattern_in_file.inc --echo # --innodb-force-recovery=6 (skip the entire redo log) ---error 1 ---exec $MYSQLD $args --innodb-force-recovery=6 -let SEARCH_PATTERN=InnoDB: Cannot create sys_virtual system tables. running in read-only mode; +--error 2 +--exec $MYSQLD $args --innodb-force-recovery=6 --unknown-option +--let SEARCH_PATTERN=\\[Note\\] InnoDB: .* started; log sequence number 0 +--source include/search_pattern_in_file.inc +--let SEARCH_PATTERN=\\[ERROR\\] Aborting --source include/search_pattern_in_file.inc --echo # valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2, invalid block number ---remove_file $bugdir/ib_logfile0 ---exec unzip $MTR_SUITE_DIR/std_data/log_corruption4a.zip -d $bugdir > $SEARCH_FILE +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +# header block +print OUT pack("Nx[5]nx[5]", 1, 0x1286); +print OUT "malicious intentions, or perhaps not"; +print OUT pack("x[456]N", 0xd42d53a2); +# checkpoint page 1 and all-zero checkpoint 2 +print OUT pack("x[13]nCNNx[264]", 0x1286, 12, 0, 0x80c); +print OUT pack("H*x[212]Nx[1024]", "590DBAACFE922582", 0xc72d49c4); +# redo log data +print OUT pack("H*x[5]", "C0DEBA5E0022000c0000000138"); +print OUT pack("H*x[475]H*", "12860cb7809781e80006626f677573", "089C0ADA"); +EOF +--copy_file $bugdir/ib_logfile0 $bugdir/ib_logfile # Anything below innodb_force_recovery=6 must find a valid redo log. # Missing tablespace files are tolerated already with innodb_force_recovery=1. --error 1 --exec $MYSQLD $args --innodb-force-recovery=5 let SEARCH_PATTERN=InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\.; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=Plugin 'InnoDB' registration as a STORAGE ENGINE failed; ---source include/search_pattern_in_file.inc --echo # --innodb-force-recovery=6 (skip the entire redo log) ---error 1 ---exec $MYSQLD $args --innodb-force-recovery=6 -let SEARCH_PATTERN=InnoDB: Cannot create sys_virtual system tables. running in read-only mode; ---source include/search_pattern_in_file.inc +--error 2 +--exec $MYSQLD $args --innodb-force-recovery=6 --unknown-option --echo # Test a corrupted MLOG_FILE_NAME record. --echo # valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2 --remove_file $bugdir/ib_logfile0 ---exec unzip $MTR_SUITE_DIR/std_data/log_corruption5.zip -d $bugdir > $SEARCH_FILE +--move_file $bugdir/ib_logfile $bugdir/ib_logfile0 +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +die unless seek(OUT, 0x800, 0); +print OUT pack("N", 0x80000944); +die unless seek(OUT, 0x9fc, 0); +print OUT pack("N", 0xc86474db); +close OUT or die; +EOF --error 1 --exec $MYSQLD $args let SEARCH_PATTERN=InnoDB: Log scan progressed past the checkpoint lsn 1213964; @@ -128,20 +256,50 @@ let SEARCH_PATTERN=InnoDB: Set innodb_force_recovery to ignore this error; --source include/search_pattern_in_file.inc --echo # Test a corrupted MLOG_FILE_NAME record. ---echo # valid header, invalid checkpoint 1, valid checkpoint 2 ---remove_file $bugdir/ib_logfile0 ---exec unzip $MTR_SUITE_DIR/std_data/log_corruption6.zip -d $bugdir > $SEARCH_FILE +--echo # valid header, invalid checkpoint 1, valid checkpoint 2, invalid block +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +# header block +print OUT pack("Nx[5]nx[5]", 1, 0x1286); +print OUT "ibbackup was here!!!1!"; +print OUT pack("x[470]N", 0x52b54540); +# invalid (all-zero) checkpoint page 1 and an empty log page +print OUT chr(0) x 1024; +# valid checkpoint block 2 +print OUT pack("x[13]nCNNx[264]", 0x1286, 12, 0, 0x80c); +print OUT pack("H*x[212]N", "590DBAACFE922582", 0xc72d49c4); +# log page +print OUT pack("H*", "800009440022000c00000001"); +# MLOG_CHECKPOINT record +print OUT pack("H*", "38000000000012860c"); +# MLOG_FILE_NAME record +print OUT pack("H*", "b7809781e80006"), "bigot"; +# padding and wrong log block checksum +print OUT pack("x[475]N", 150151); +close OUT or die; +EOF --error 1 --exec $MYSQLD $args -let SEARCH_PATTERN=InnoDB: ############### CORRUPT LOG RECORD FOUND ##################; +let SEARCH_PATTERN=InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 2454333373 found: 150151; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=InnoDB: Log record type 55, page 151:488\. Log parsing proceeded successfully up to 1213973\. Previous log record type 56, is multi 0 Recv offset 9, prev 0; +--echo # valid header, invalid checkpoint 1, valid checkpoint 2, invalid log record +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +die unless seek(OUT, 0x9fc, 0); +print OUT pack("N", 2454333373); +close OUT or die; +EOF + +--error 1 +--exec $MYSQLD $args +--let SEARCH_PATTERN= len 22; hex 38000000000012860cb7809781e800066269676f7400; asc 8 bigot ; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=InnoDB: Hex dump starting 0 bytes before and ending 13 bytes after the corrupted record; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN= len 22. hex 38000000000012860cb7809781e80006626f67757300. asc 8 bogus ; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN=InnoDB: Set innodb_force_recovery to ignore this error; + +# Catch errors when built with one of the sanitizers +--let SEARCH_ABORT=FOUND +--let SEARCH_PATTERN=Sanitizer --source include/search_pattern_in_file.inc --list_files $bugdir diff --git a/storage/innobase/dict/dict0crea.cc b/storage/innobase/dict/dict0crea.cc index 9321faed9c6..51c721bfc93 100644 --- a/storage/innobase/dict/dict0crea.cc +++ b/storage/innobase/dict/dict0crea.cc @@ -1679,6 +1679,11 @@ dict_create_or_check_foreign_constraint_tables(void) return(DB_SUCCESS); } + if (srv_read_only_mode + || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO) { + return(DB_READ_ONLY); + } + trx = trx_allocate_for_mysql(); trx_set_dict_operation(trx, TRX_DICT_OP_TABLE); @@ -1808,11 +1813,9 @@ dict_create_or_check_sys_virtual() return(DB_SUCCESS); } - if (srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO - || srv_read_only_mode) { - ib::error() << "Cannot create sys_virtual system tables;" - " running in read-only mode."; - return(DB_ERROR); + if (srv_read_only_mode + || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO) { + return(DB_READ_ONLY); } trx = trx_allocate_for_mysql(); @@ -2465,9 +2468,15 @@ dict_create_or_check_sys_tablespace(void) if (sys_tablespaces_err == DB_SUCCESS && sys_datafiles_err == DB_SUCCESS) { + srv_sys_tablespaces_open = true; return(DB_SUCCESS); } + if (srv_read_only_mode + || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO) { + return(DB_READ_ONLY); + } + trx = trx_allocate_for_mysql(); trx_set_dict_operation(trx, TRX_DICT_OP_TABLE); @@ -2540,6 +2549,7 @@ dict_create_or_check_sys_tablespace(void) if (err == DB_SUCCESS) { ib::info() << "Tablespace and datafile system tables created."; + srv_sys_tablespaces_open = true; } /* Note: The master thread has not been started at this point. */ diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index 78566d060cb..bc8b8ffd1dd 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -1023,25 +1023,24 @@ recv_find_max_checkpoint( /** Check the 4-byte checksum to the trailer checksum field of a log block. -@param[in] log block +@param[in] block log block +@param[in] print_err whether to report checksum mismatch @return whether the checksum matches */ bool -log_block_checksum_is_ok( - const byte* block, /*!< in: pointer to a log block */ - bool print_err) /*!< in print error ? */ +log_block_checksum_is_ok(const byte* block, bool print_err) { - if (log_block_get_checksum(block) != log_block_calc_checksum(block) && - print_err) { - ib::error() << " Log block checkpoint not correct." + bool valid + = log_block_get_checksum(block) == log_block_calc_checksum(block); + + if (!valid && print_err) { + ib::error() << "Invalid log block checksum." << " block: " << log_block_get_hdr_no(block) << " checkpoint no: " << log_block_get_checkpoint_no(block) - << " calc checkpoint: " << log_block_calc_checksum(block) - << " stored checkpoint: " << log_block_get_checksum(block); + << " expected: " << log_block_calc_checksum(block) + << " found: " << log_block_get_checksum(block); } - return(!innodb_log_checksums - || log_block_get_checksum(block) - == log_block_calc_checksum(block)); + return(valid || !innodb_log_checksums); } /** Try to parse a single log record body and also applies it if @@ -2778,12 +2777,6 @@ recv_scan_log_recs( return (TRUE); } - ib::error() << "Log block " << no << - " at lsn " << scanned_lsn << " has valid" - " header, but checksum field contains " - << log_block_get_checksum(log_block) - << ", should be " - << log_block_calc_checksum(log_block); /* Garbage or an incompletely written log block. This could be the result of killing the server diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 1d17bff4782..00acaed1555 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -2306,7 +2306,6 @@ files_checked: /* Open or Create SYS_TABLESPACES and SYS_DATAFILES so that tablespace names and other metadata can be found. */ - srv_sys_tablespaces_open = true; err = dict_create_or_check_sys_tablespace(); if (err != DB_SUCCESS) { return(srv_init_abort(err)); @@ -2435,7 +2434,8 @@ files_checked: } /* Create the doublewrite buffer to a new tablespace */ - if (buf_dblwr == NULL && !buf_dblwr_create()) { + if (!srv_read_only_mode && srv_force_recovery < SRV_FORCE_NO_TRX_UNDO + && !buf_dblwr_create()) { return(srv_init_abort(DB_ERROR)); } @@ -2503,20 +2503,22 @@ files_checked: /* Create the SYS_FOREIGN and SYS_FOREIGN_COLS system tables */ err = dict_create_or_check_foreign_constraint_tables(); - if (err != DB_SUCCESS) { - return(srv_init_abort(err)); + if (err == DB_SUCCESS) { + err = dict_create_or_check_sys_tablespace(); + if (err == DB_SUCCESS) { + err = dict_create_or_check_sys_virtual(); + } } - - /* Create the SYS_TABLESPACES system table */ - err = dict_create_or_check_sys_tablespace(); - if (err != DB_SUCCESS) { - return(srv_init_abort(err)); - } - srv_sys_tablespaces_open = true; - - /* Create the SYS_VIRTUAL system table */ - err = dict_create_or_check_sys_virtual(); - if (err != DB_SUCCESS) { + switch (err) { + case DB_SUCCESS: + break; + case DB_READ_ONLY: + if (srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO) { + break; + } + ib::error() << "Cannot create system tables in read-only mode"; + /* fall through */ + default: return(srv_init_abort(err)); } @@ -2757,7 +2759,8 @@ innodb_shutdown() ut_ad(dict_stats_event || !srv_was_started || srv_read_only_mode); ut_ad(dict_sys || !srv_was_started); ut_ad(trx_sys || !srv_was_started); - ut_ad(buf_dblwr || !srv_was_started); + ut_ad(buf_dblwr || !srv_was_started || srv_read_only_mode + || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO); ut_ad(lock_sys || !srv_was_started); ut_ad(btr_search_sys || !srv_was_started); ut_ad(ibuf || !srv_was_started); From d123ed852a2992a6cbaf65eb4cda741ace2628e2 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Thu, 2 Feb 2017 18:56:15 +0400 Subject: [PATCH 131/258] MDEV-11938 json.json_no_table crashes or fails with valgrind warnings in json_find_path / Item_func_json_length::val_int. Paths with quoted keynames handled improperly. --- mysql-test/r/func_json.result | 9 +++ mysql-test/suite/json/r/json_no_table.result | 16 ++-- mysql-test/t/func_json.test | 3 + sql/item_jsonfunc.cc | 3 + strings/json_lib.c | 84 +++++++++++++------- 5 files changed, 76 insertions(+), 39 deletions(-) diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index 6968cf79d7d..67a5dd20883 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -494,3 +494,12 @@ json_set('{"a":12}', '$[0][1].a', 100) NULL Warnings: Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_set' +select json_value('{"\\"key1":123}', '$."\\"key1"'); +json_value('{"\\"key1":123}', '$."\\"key1"') +123 +select json_value('{"\\"key1\\"":123}', '$."\\"key1\\""'); +json_value('{"\\"key1\\"":123}', '$."\\"key1\\""') +123 +select json_value('{"key 1":123}', '$."key 1"'); +json_value('{"key 1":123}', '$."key 1"') +123 diff --git a/mysql-test/suite/json/r/json_no_table.result b/mysql-test/suite/json/r/json_no_table.result index 97148bdad43..3660a37814c 100644 --- a/mysql-test/suite/json/r/json_no_table.result +++ b/mysql-test/suite/json/r/json_no_table.result @@ -1278,21 +1278,19 @@ NULL # ---------------------------------------------------------------------- select json_extract( '{ "one potato" : 1 }', '$."one potato"' ); json_extract( '{ "one potato" : 1 }', '$."one potato"' ) -NULL +1 select json_extract( '{ "a.b" : 1 }', '$."a.b"' ); json_extract( '{ "a.b" : 1 }', '$."a.b"' ) -NULL +1 select json_extract( '{ "\\"a\\"": 1}', '$."a"' ); json_extract( '{ "\\"a\\"": 1}', '$."a"' ) NULL select json_extract( '{ "\\"a\\"": 1}', '$."\\"a\\""' ); json_extract( '{ "\\"a\\"": 1}', '$."\\"a\\""' ) -NULL -Warnings: -Warning 4042 Syntax error in JSON path in argument 2 to function 'json_extract' at position 7 +1 select json_extract( '{ "a": 1}', '$."a"' ); json_extract( '{ "a": 1}', '$."a"' ) -NULL +1 select json_extract( '{ "a": 1}', '$.a' ); json_extract( '{ "a": 1}', '$.a' ) 1 @@ -1313,13 +1311,13 @@ json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one "d" select json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$."one potato"' ); json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$."one potato"' ) -NULL +7 select json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.b.c' ); json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.b.c' ) 6 select json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$."b.c"' ); json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$."b.c"' ) -NULL +8 # ---------------------------------------------------------------------- # Test of JSON_EXTRACT function. # ---------------------------------------------------------------------- @@ -2572,7 +2570,7 @@ json_search( '[ "footbar", "foo%bar" ]', 'all', 'foo%bar' ) ["$[0]", "$[1]"] select json_search( '[ "footbar", "foo%bar" ]', 'all', 'foo\%bar' ); json_search( '[ "footbar", "foo%bar" ]', 'all', 'foo\%bar' ) -NULL +"$[1]" select json_search( '[ "footbar", "foo%bar" ]', 'all', 'foo|%bar', '|' ); json_search( '[ "footbar", "foo%bar" ]', 'all', 'foo|%bar', '|' ) "$[1]" diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test index b9b4ab3726a..546b5db77e3 100644 --- a/mysql-test/t/func_json.test +++ b/mysql-test/t/func_json.test @@ -197,3 +197,6 @@ select json_set('{"a":12}', '$[0].a', 100); select json_set('{"a":12}', '$[0][0].a', 100); select json_set('{"a":12}', '$[0][1].a', 100); +select json_value('{"\\"key1":123}', '$."\\"key1"'); +select json_value('{"\\"key1\\"":123}', '$."\\"key1\\""'); +select json_value('{"key 1":123}', '$."key 1"'); diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc index 4731bada6ab..d1f82bc94da 100644 --- a/sql/item_jsonfunc.cc +++ b/sql/item_jsonfunc.cc @@ -2422,7 +2422,10 @@ bool Item_func_json_search::fix_fields(THD *thd, Item **ref) return TRUE; if (arg_count < 4) + { + escape= '\\'; return FALSE; + } return fix_escape_item(thd, args[3], &tmp_js, true, args[0]->collation.collation, &escape); diff --git a/strings/json_lib.c b/strings/json_lib.c index 18bdce2613f..20dc1b3d718 100644 --- a/strings/json_lib.c +++ b/strings/json_lib.c @@ -965,6 +965,7 @@ enum json_path_chr_classes { P_S, /* s (for "strict") */ P_SPACE, /* space */ P_BKSL, /* \ */ + P_QUOTE, /* " */ P_ETC, /* everything else */ P_ERR, /* character disallowed in JSON*/ P_BAD, /* invalid character */ @@ -978,7 +979,7 @@ static enum json_path_chr_classes json_path_chr_map[128] = { P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, P_ERR, - P_SPACE, P_ETC, P_ETC, P_ETC, P_USD, P_ETC, P_ETC, P_ETC, + P_SPACE, P_ETC, P_QUOTE, P_ETC, P_USD, P_ETC, P_ETC, P_ETC, P_ETC, P_ETC, P_ASTER, P_ETC, P_ETC, P_ETC, P_POINT, P_ETC, P_ZERO, P_DIGIT, P_DIGIT, P_DIGIT, P_DIGIT, P_DIGIT, P_DIGIT, P_DIGIT, P_DIGIT, P_DIGIT, P_ETC, P_ETC, P_ETC, P_ETC, P_ETC, P_ETC, @@ -1009,11 +1010,15 @@ enum json_path_states { PS_KWD, /* Key wildcard. */ PS_AST, /* Asterisk. */ PS_DWD, /* Double wildcard. */ + PS_KEYX, /* Key started with quote ("). */ + PS_KNMX, /* Parse quoted key name. */ N_PATH_STATES, /* Below are states that aren't in the transitions table. */ PS_SCT, /* Parse the 'strict' keyword. */ PS_EKY, /* '.' after the keyname so next step is the key. */ + PS_EKYX, /* Closing " for the quoted keyname. */ PS_EAR, /* '[' after the keyname so next step is the array. */ PS_ESC, /* Escaping in the keyname. */ + PS_ESCX, /* Escaping in the quoted keyname. */ PS_OK, /* Path normally ended. */ PS_KOK /* EOS after the keyname so end the path normally. */ }; @@ -1023,48 +1028,54 @@ static int json_path_transitions[N_PATH_STATES][N_PATH_CLASSES]= { /* EOS $, * [ ] . 0 - 1..9 L S SPACE \ ETC ERR - BAD + 1..9 L S SPACE \ " ETC + ERR BAD */ /* GO */ { JE_EOS, PS_PT, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, - JE_SYN, PS_LAX, PS_SCT, PS_GO, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + JE_SYN, PS_LAX, PS_SCT, PS_GO, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* LAX */ { JE_EOS, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, - JE_SYN, PS_LAX, JE_SYN, PS_GO, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + JE_SYN, PS_LAX, JE_SYN, PS_GO, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* PT */ { PS_OK, JE_SYN, PS_AST, PS_AR, JE_SYN, PS_KEY, JE_SYN, JE_SYN, - JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* AR */ { JE_EOS, JE_SYN, PS_AWD, JE_SYN, PS_PT, JE_SYN, PS_Z, - PS_INT, JE_SYN, JE_SYN, PS_AR, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + PS_INT, JE_SYN, JE_SYN, PS_AR, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* AWD */ { JE_EOS, JE_SYN, JE_SYN, JE_SYN, PS_PT, JE_SYN, JE_SYN, - JE_SYN, JE_SYN, JE_SYN, PS_AS, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + JE_SYN, JE_SYN, JE_SYN, PS_AS, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* Z */ { JE_EOS, JE_SYN, JE_SYN, JE_SYN, PS_PT, JE_SYN, JE_SYN, - JE_SYN, JE_SYN, JE_SYN, PS_AS, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + JE_SYN, JE_SYN, JE_SYN, PS_AS, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* INT */ { JE_EOS, JE_SYN, JE_SYN, JE_SYN, PS_PT, JE_SYN, PS_INT, - PS_INT, JE_SYN, JE_SYN, PS_AS, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + PS_INT, JE_SYN, JE_SYN, PS_AS, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* AS */ { JE_EOS, JE_SYN, JE_SYN, JE_SYN, PS_PT, JE_SYN, JE_SYN, JE_SYN, - JE_SYN, JE_SYN, PS_AS, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + JE_SYN, JE_SYN, PS_AS, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* KEY */ { JE_EOS, PS_KNM, PS_KWD, JE_SYN, PS_KNM, JE_SYN, PS_KNM, - PS_KNM, PS_KNM, PS_KNM, PS_KNM, JE_SYN, PS_KNM, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + PS_KNM, PS_KNM, PS_KNM, PS_KNM, JE_SYN, PS_KEYX, PS_KNM, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* KNM */ { PS_KOK, PS_KNM, PS_AST, PS_EAR, PS_KNM, PS_EKY, PS_KNM, - PS_KNM, PS_KNM, PS_KNM, PS_KNM, PS_ESC, PS_KNM, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + PS_KNM, PS_KNM, PS_KNM, PS_KNM, PS_ESC, PS_KNM, PS_KNM, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* KWD */ { PS_OK, JE_SYN, JE_SYN, PS_AR, JE_SYN, PS_EKY, JE_SYN, - JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* AST */ { JE_SYN, JE_SYN, PS_DWD, JE_SYN, JE_SYN, JE_SYN, JE_SYN, - JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR}, + JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, /* DWD */ { JE_SYN, JE_SYN, PS_AST, PS_AR, JE_SYN, PS_KEY, JE_SYN, JE_SYN, - JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, - JE_BAD_CHR} + JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, +/* KEYX*/ { JE_EOS, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, + PS_KNMX,PS_KNMX, PS_KNMX, PS_KNMX, PS_ESCX, PS_EKYX, PS_KNMX, + JE_NOT_JSON_CHR, JE_BAD_CHR}, +/* KNMX */{ JE_EOS, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX, + PS_KNMX, PS_KNMX, PS_KNMX, PS_KNMX,PS_ESCX, PS_EKYX, PS_KNMX, + JE_NOT_JSON_CHR, JE_BAD_CHR}, }; @@ -1115,6 +1126,10 @@ int json_path_setup(json_path_t *p, p->last_step->n_item*= 10; p->last_step->n_item+= p->s.c_next - '0'; continue; + case PS_EKYX: + p->last_step->key_end= p->s.c_str - c_len; + state= PS_PT; + continue; case PS_EKY: p->last_step->key_end= p->s.c_str - c_len; state= PS_KEY; @@ -1125,6 +1140,8 @@ int json_path_setup(json_path_t *p, return p->s.error= JE_DEPTH; p->types_used|= p->last_step->type= JSON_PATH_KEY | double_wildcard; double_wildcard= JSON_PATH_KEY_NULL; + /* Note no 'continue' here. */ + case PS_KEYX: p->last_step->key= p->s.c_str; continue; case PS_EAR: @@ -1142,6 +1159,12 @@ int json_path_setup(json_path_t *p, case PS_ESC: if (json_handle_esc(&p->s)) return 1; + state= PS_KNM; + continue; + case PS_ESCX: + if (json_handle_esc(&p->s)) + return 1; + state= PS_KNMX; continue; case PS_KOK: p->last_step->key_end= p->s.c_str - c_len; @@ -1306,7 +1329,8 @@ int json_find_path(json_engine_t *je, do { (*p_cur_step)--; - } while (array_counters[(*p_cur_step) - p->steps] == SKIPPED_STEP_MARK); + } while (*p_cur_step > p->steps && + array_counters[*p_cur_step - p->steps] == SKIPPED_STEP_MARK); break; case JST_ARRAY_END: (*p_cur_step)--; From 5606f878bf0cc0c4c589f15c5068a9cc0bb2d197 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Thu, 2 Feb 2017 17:57:55 -0800 Subject: [PATCH 132/258] Fixed bug mdev-11594. Using window functions over results of implicit groupings required special handling in JOIN::make_aggr_tables_info. The patch made sure that the result of implicit grouping was written into a temporary table properly. --- mysql-test/r/win.result | 12 ++++++++++++ mysql-test/t/win.test | 12 ++++++++++++ sql/sql_select.cc | 17 +++++++++++++---- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index 0606737c3ef..44300579411 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2460,3 +2460,15 @@ username sum(amount) avg(sum(amount)) over (order by sum(amount) desc) user1 9 34.5000 user2 60 60.0000 drop table t1; +# +# MDEV-11594: window function over implicit grouping +# +create table test.t1 (id int); +insert into test.t1 values (1), (2), (3), (2); +select sum(id) over (order by sum(id)) from t1; +sum(id) over (order by sum(id)) +1 +select sum(sum(id)) over (order by sum(id)) from t1; +sum(sum(id)) over (order by sum(id)) +8 +drop table t1; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index 6444c4df6a4..debe5181fc0 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1491,4 +1491,16 @@ group by username; drop table t1; +--echo # +--echo # MDEV-11594: window function over implicit grouping +--echo # + +create table test.t1 (id int); +insert into test.t1 values (1), (2), (3), (2); + +select sum(id) over (order by sum(id)) from t1; + +select sum(sum(id)) over (order by sum(id)) from t1; + +drop table t1; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 0678955883b..e1769e0979f 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2177,6 +2177,9 @@ bool JOIN::make_aggr_tables_info() const bool has_group_by= this->group; sort_and_group_aggr_tab= NULL; + + bool implicit_grouping_with_window_funcs= implicit_grouping && + select_lex->have_window_funcs(); /* @@ -2338,9 +2341,11 @@ bool JOIN::make_aggr_tables_info() distinct= select_distinct && !group_list && !select_lex->have_window_funcs(); keep_row_order= false; + bool save_sum_fields= (group_list && simple_group) || + implicit_grouping_with_window_funcs; if (create_postjoin_aggr_table(curr_tab, - &all_fields, tmp_group, - group_list && simple_group, + &all_fields, tmp_group, + save_sum_fields, distinct, keep_row_order)) DBUG_RETURN(true); exec_tmp_table= curr_tab->table; @@ -2540,7 +2545,9 @@ bool JOIN::make_aggr_tables_info() count_field_types(select_lex, &tmp_table_param, *curr_all_fields, false); } - if (group || implicit_grouping || tmp_table_param.sum_func_count) + if (group || + (implicit_grouping && !implicit_grouping_with_window_funcs) || + tmp_table_param.sum_func_count) { if (make_group_fields(this, this)) DBUG_RETURN(true); @@ -2772,13 +2779,15 @@ JOIN::create_postjoin_aggr_table(JOIN_TAB *tab, List *table_fields, table->reginfo.join_tab= tab; /* if group or order on first table, sort first */ - if (group_list && simple_group) + if ((group_list && simple_group) || + (implicit_grouping && select_lex->have_window_funcs())) { DBUG_PRINT("info",("Sorting for group")); THD_STAGE_INFO(thd, stage_sorting_for_group); if (ordered_index_usage != ordered_index_group_by && (join_tab + const_tables)->type != JT_CONST && // Don't sort 1 row + !implicit_grouping && add_sorting_to_table(join_tab + const_tables, group_list)) goto err; From fd7accabbb4f13d54e5cabc1d20ac0d0ad237beb Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Fri, 3 Feb 2017 00:10:36 -0800 Subject: [PATCH 133/258] Fixed bug mdev-9923. Partition and order lists of a window specification cannot use constant integer to refer to select list elements. --- mysql-test/r/win.result | 25 +++++++++++++++++++++++++ mysql-test/t/win.test | 13 +++++++++++++ sql/sql_select.cc | 19 ++++++++++--------- sql/sql_select.h | 4 ++-- 4 files changed, 50 insertions(+), 11 deletions(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index 44300579411..fc215c2b793 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2472,3 +2472,28 @@ select sum(sum(id)) over (order by sum(id)) from t1; sum(sum(id)) over (order by sum(id)) 8 drop table t1; +# +# MDEV-9923: integer constant in order by list +# of window specification +# +create table test.t1 (id int); +insert into test.t1 values (1), (2), (3), (2); +select rank() over (order by 1) from t1; +rank() over (order by 1) +1 +1 +1 +1 +select rank() over (order by 2) from t1; +rank() over (order by 2) +1 +1 +1 +1 +select rank() over (partition by id order by 2) from t1; +rank() over (partition by id order by 2) +1 +1 +1 +1 +drop table t1; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index debe5181fc0..552be3484ef 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1504,3 +1504,16 @@ select sum(sum(id)) over (order by sum(id)) from t1; drop table t1; +--echo # +--echo # MDEV-9923: integer constant in order by list +--echo # of window specification +--echo # + +create table test.t1 (id int); +insert into test.t1 values (1), (2), (3), (2); + +select rank() over (order by 1) from t1; +select rank() over (order by 2) from t1; +select rank() over (partition by id order by 2) from t1; + +drop table t1; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index e1769e0979f..4b652ff74ee 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -21917,7 +21917,7 @@ cp_buffer_from_ref(THD *thd, TABLE *table, TABLE_REF *ref) @param[in,out] all_fields All select, group and order by fields @param[in] is_group_field True if order is a GROUP field, false if ORDER by field - @param[in] search_in_all_fields If true then search in all_fields + @param[in] from_window_spec If true then order is from a window spec @retval FALSE if OK @@ -21928,7 +21928,7 @@ cp_buffer_from_ref(THD *thd, TABLE *table, TABLE_REF *ref) static bool find_order_in_list(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables, ORDER *order, List &fields, List &all_fields, - bool is_group_field, bool search_in_all_fields) + bool is_group_field, bool from_window_spec) { Item *order_item= *order->item; /* The item from the GROUP/ORDER caluse. */ Item::Type order_item_type; @@ -21941,7 +21941,8 @@ find_order_in_list(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables Local SP variables may be int but are expressions, not positions. (And they can't be used before fix_fields is called for them). */ - if (order_item->type() == Item::INT_ITEM && order_item->basic_const_item()) + if (order_item->type() == Item::INT_ITEM && order_item->basic_const_item() && + !from_window_spec) { /* Order by position */ uint count; if (order->counter_used) @@ -22033,7 +22034,7 @@ find_order_in_list(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables thd->where); } } - else if (search_in_all_fields) + else if (from_window_spec) { Item **found_item= find_item_in_list(order_item, all_fields, &counter, REPORT_EXCEPT_NOT_FOUND, &resolution, @@ -22093,14 +22094,14 @@ find_order_in_list(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables int setup_order(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables, List &fields, List &all_fields, ORDER *order, - bool search_in_all_fields) + bool from_window_spec) { enum_parsing_place parsing_place= thd->lex->current_select->parsing_place; thd->where="order clause"; for (; order; order=order->next) { if (find_order_in_list(thd, ref_pointer_array, tables, order, fields, - all_fields, FALSE, search_in_all_fields)) + all_fields, FALSE, from_window_spec)) return 1; if ((*order->item)->with_window_func && parsing_place != IN_ORDER_BY) { @@ -22127,7 +22128,7 @@ int setup_order(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables, @param order The fields we should do GROUP/PARTITION BY on @param hidden_group_fields Pointer to flag that is set to 1 if we added any fields to all_fields. - @param search_in_all_fields If true then search in all_fields + @param from_window_spec If true then list is from a window spec @todo change ER_WRONG_FIELD_WITH_GROUP to more detailed @@ -22142,7 +22143,7 @@ int setup_order(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables, int setup_group(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables, List &fields, List &all_fields, ORDER *order, - bool *hidden_group_fields, bool search_in_all_fields) + bool *hidden_group_fields, bool from_window_spec) { enum_parsing_place parsing_place= thd->lex->current_select->parsing_place; *hidden_group_fields=0; @@ -22157,7 +22158,7 @@ setup_group(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables, for (ord= order; ord; ord= ord->next) { if (find_order_in_list(thd, ref_pointer_array, tables, ord, fields, - all_fields, TRUE, search_in_all_fields)) + all_fields, TRUE, from_window_spec)) return 1; (*ord->item)->marker= UNDEF_POS; /* Mark found */ if ((*ord->item)->with_sum_func && parsing_place == IN_GROUP_BY) diff --git a/sql/sql_select.h b/sql/sql_select.h index f3b59e5d20c..ab4cc89c9d3 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -1943,10 +1943,10 @@ int safe_index_read(JOIN_TAB *tab); int get_quick_record(SQL_SELECT *select); int setup_order(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables, List &fields, List &all_fields, ORDER *order, - bool search_in_all_fields= true); + bool from_window_spec= false); int setup_group(THD *thd, Ref_ptr_array ref_pointer_array, TABLE_LIST *tables, List &fields, List &all_fields, ORDER *order, - bool *hidden_group_fields, bool search_in_all_fields= true); + bool *hidden_group_fields, bool from_window_spec= false); bool fix_inner_refs(THD *thd, List &all_fields, SELECT_LEX *select, Ref_ptr_array ref_pointer_array); int join_read_key2(THD *thd, struct st_join_table *tab, TABLE *table, From 5285504857df6caf417c8a56601913a95c9f7abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 2 Feb 2017 15:27:59 +0200 Subject: [PATCH 134/258] innodb.log_corruption: Use the main error log. --- .../suite/innodb/r/log_corruption.result | 75 +++++++++- mysql-test/suite/innodb/t/log_corruption.test | 128 ++++++++++-------- 2 files changed, 146 insertions(+), 57 deletions(-) diff --git a/mysql-test/suite/innodb/r/log_corruption.result b/mysql-test/suite/innodb/r/log_corruption.result index 18029f58d36..2a3500c85da 100644 --- a/mysql-test/suite/innodb/r/log_corruption.result +++ b/mysql-test/suite/innodb/r/log_corruption.result @@ -1,21 +1,92 @@ # redo log from before MySQL 5.7.9 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\.7\.9\./ in mysqld.1.err # redo log from before MySQL 5.7.9, with corrupted log checkpoint +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\.7\.9, and we did not find a valid checkpoint/ in mysqld.1.err +FOUND /Plugin 'InnoDB' registration as a STORAGE ENGINE failed/ in mysqld.1.err +NOT FOUND /Unknown/unsupported storage engine: InnoDB/ in mysqld.1.err # redo log from before MySQL 5.7.9, with corrupted log block +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\.7\.9, and it appears corrupted/ in mysqld.1.err # redo log from "after" MySQL 5.7.9, but with invalid header checksum +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Invalid redo log header checksum/ in mysqld.1.err # distant future redo log format, with valid header checksum +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Unsupported redo log format. The redo log was created with malicious intentions, or perhaps\. Please follow the instructions at http://dev.mysql.com/doc/refman/5.7/en/upgrading-downgrading.html/ in mysqld.1.err # valid header, but old-format checkpoint blocks +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: No valid checkpoint found .corrupted redo log/ in mysqld.1.err # valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2, invalid block checksum +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 3362026715 found: 144444122/ in mysqld.1.err +FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err # --innodb-force-recovery=6 (skip the entire redo log) +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +InnoDB YES Supports transactions, row-level locking, foreign keys and encryption for tables YES YES YES +FOUND /\[Note\] InnoDB: .* started; log sequence number 0/ in mysqld.1.err # valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2, invalid block number +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err # --innodb-force-recovery=6 (skip the entire redo log) +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +InnoDB YES Supports transactions, row-level locking, foreign keys and encryption for tables YES YES YES # Test a corrupted MLOG_FILE_NAME record. # valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Log scan progressed past the checkpoint lsn 1213964/ in mysqld.1.err +FOUND /InnoDB: ############### CORRUPT LOG RECORD FOUND ##################/ in mysqld.1.err +FOUND /InnoDB: Log record type 55, page 151:488\. Log parsing proceeded successfully up to 1213973\. Previous log record type 56, is multi 0 Recv offset 9, prev 0/ in mysqld.1.err +FOUND /len 22. hex 38000000000012860cb7809781e80006626f67757300. asc 8 bogus / in mysqld.1.err +FOUND /InnoDB: Set innodb_force_recovery to ignore this error/ in mysqld.1.err # Test a corrupted MLOG_FILE_NAME record. # valid header, invalid checkpoint 1, valid checkpoint 2, invalid block +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 2454333373 found: 150151/ in mysqld.1.err # valid header, invalid checkpoint 1, valid checkpoint 2, invalid log record +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /len 22; hex 38000000000012860cb7809781e800066269676f7400; asc 8 bigot ;/ in mysqld.1.err ib_buffer_pool ib_logfile0 ib_logfile1 ibdata1 -my.cnf -my_restart.err diff --git a/mysql-test/suite/innodb/t/log_corruption.test b/mysql-test/suite/innodb/t/log_corruption.test index 0a02b4bae2b..913240fe1da 100644 --- a/mysql-test/suite/innodb/t/log_corruption.test +++ b/mysql-test/suite/innodb/t/log_corruption.test @@ -1,33 +1,35 @@ --source include/have_innodb.inc --source include/have_innodb_16k.inc +--disable_query_log +call mtr.add_suppression("InnoDB: Upgrade after a crash is not supported"); +call mtr.add_suppression("InnoDB: Plugin initialization aborted"); +call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); +call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); +call mtr.add_suppression("InnoDB: Unsupported redo log format"); +call mtr.add_suppression("InnoDB: No valid checkpoint found"); +call mtr.add_suppression("InnoDB: Invalid (log block|redo log header) checksum"); +call mtr.add_suppression("InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT"); +call mtr.add_suppression("InnoDB: MLOG_FILE_NAME incorrect"); +call mtr.add_suppression("InnoDB: ############### CORRUPT LOG RECORD FOUND"); +call mtr.add_suppression("InnoDB: Found corrupted log"); +--enable_query_log + let bugdir= $MYSQLTEST_VARDIR/tmp/log_corruption; --mkdir $bugdir --let SEARCH_RANGE = -50000 ---let SEARCH_FILE = $bugdir/my_restart.err ---let SEARCH_ABORT=NOT FOUND ---let $args=--defaults-file=$bugdir/my.cnf --loose-console >> $SEARCH_FILE 2>&1 +--let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err + +let $check_no_innodb=SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); + +write_file $bugdir/ib_buffer_pool; +EOF + +--let $dirs= --innodb-data-home-dir=$bugdir --innodb-log-group-home-dir=$bugdir perl; -die unless open IN, "<", "$ENV{MYSQLTEST_VARDIR}/my.cnf"; -my $found; -while () { $found=$1 if /^(lc-messages-dir=.*)/ } -close IN; - -die unless defined $found; -die unless open OUT, ">", "$ENV{bugdir}/my.cnf"; -print OUT "[mysqld] -$found -innodb_data_home_dir = $ENV{bugdir} -datadir = $ENV{bugdir} -secure_file_priv= -skip_aria -core_file -"; -close OUT or die; -die unless open OUT, ">", "$ENV{bugdir}/ib_buffer_pool"; -close OUT or die; - # Create a dummy system tablespace file using the default innodb_page_size=16k die unless open OUT, ">", "$ENV{bugdir}/ibdata1"; binmode OUT; @@ -99,16 +101,21 @@ close OUT or die; EOF --echo # redo log from before MySQL 5.7.9 ---error 1 ---exec $MYSQLD $args +--let $restart_parameters= $dirs +--source include/restart_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc + let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\\.7\\.9\\.; --source include/search_pattern_in_file.inc --echo # redo log from before MySQL 5.7.9, with corrupted log checkpoint --move_file $bugdir/ib_logfile0 $bugdir/ib_logfile --copy_file $bugdir/ib_logfile1 $bugdir/ib_logfile0 ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc + let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\\.7\\.9, and we did not find a valid checkpoint; --source include/search_pattern_in_file.inc let SEARCH_PATTERN=Plugin 'InnoDB' registration as a STORAGE ENGINE failed; @@ -127,8 +134,9 @@ print OUT pack("Nx[508]", 0xc0deba5e); close OUT or die; EOF ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\\.7\\.9, and it appears corrupted; --source include/search_pattern_in_file.inc @@ -139,8 +147,9 @@ binmode OUT; print OUT pack("N",2); close OUT or die; EOF ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=InnoDB: Invalid redo log header checksum; --source include/search_pattern_in_file.inc @@ -153,8 +162,9 @@ print OUT "malicious intentions, or perhaps not"; print OUT pack("x[456]N", 0x8a1bb475); close OUT or die; EOF ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=InnoDB: Unsupported redo log format. The redo log was created with malicious intentions, or perhaps\. Please follow the instructions at http://dev.mysql.com/doc/refman/5.7/en/upgrading-downgrading.html; --source include/search_pattern_in_file.inc @@ -173,8 +183,9 @@ print OUT pack("H*x[5]", "800009440022000c0000000138"); print OUT pack("H*x[475]H*", "12860cb7809781e80006626f677573", "089C0ADA"); close OUT or die; EOF ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=InnoDB: No valid checkpoint found .corrupted redo log; --source include/search_pattern_in_file.inc @@ -189,19 +200,21 @@ close OUT or die; EOF # Anything below innodb_force_recovery=6 must find a valid redo log. # Missing tablespace files are tolerated already with innodb_force_recovery=1. ---error 1 ---exec $MYSQLD $args --innodb-force-recovery=5 +--let $restart_parameters= $dirs --innodb-force-recovery=5 +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 3362026715 found: 144444122; --source include/search_pattern_in_file.inc let SEARCH_PATTERN=InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\.; --source include/search_pattern_in_file.inc --echo # --innodb-force-recovery=6 (skip the entire redo log) ---error 2 ---exec $MYSQLD $args --innodb-force-recovery=6 --unknown-option +--let $restart_parameters= $dirs --innodb-force-recovery=6 +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc --let SEARCH_PATTERN=\\[Note\\] InnoDB: .* started; log sequence number 0 --source include/search_pattern_in_file.inc ---let SEARCH_PATTERN=\\[ERROR\\] Aborting ---source include/search_pattern_in_file.inc --echo # valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2, invalid block number perl; @@ -221,13 +234,17 @@ EOF --copy_file $bugdir/ib_logfile0 $bugdir/ib_logfile # Anything below innodb_force_recovery=6 must find a valid redo log. # Missing tablespace files are tolerated already with innodb_force_recovery=1. ---error 1 ---exec $MYSQLD $args --innodb-force-recovery=5 +--let $restart_parameters= $dirs --innodb-force-recovery=5 +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\.; --source include/search_pattern_in_file.inc --echo # --innodb-force-recovery=6 (skip the entire redo log) ---error 2 ---exec $MYSQLD $args --innodb-force-recovery=6 --unknown-option +--let $restart_parameters= $dirs --innodb-force-recovery=6 +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc --echo # Test a corrupted MLOG_FILE_NAME record. --echo # valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2 @@ -242,8 +259,10 @@ die unless seek(OUT, 0x9fc, 0); print OUT pack("N", 0xc86474db); close OUT or die; EOF ---error 1 ---exec $MYSQLD $args +--let $restart_parameters= $dirs +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=InnoDB: Log scan progressed past the checkpoint lsn 1213964; --source include/search_pattern_in_file.inc let SEARCH_PATTERN=InnoDB: ############### CORRUPT LOG RECORD FOUND ##################; @@ -279,8 +298,9 @@ print OUT pack("H*", "b7809781e80006"), "bigot"; print OUT pack("x[475]N", 150151); close OUT or die; EOF ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 2454333373 found: 150151; --source include/search_pattern_in_file.inc --echo # valid header, invalid checkpoint 1, valid checkpoint 2, invalid log record @@ -292,16 +312,14 @@ print OUT pack("N", 2454333373); close OUT or die; EOF ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc --let SEARCH_PATTERN= len 22; hex 38000000000012860cb7809781e800066269676f7400; asc 8 bigot ; --source include/search_pattern_in_file.inc -# Catch errors when built with one of the sanitizers ---let SEARCH_ABORT=FOUND ---let SEARCH_PATTERN=Sanitizer ---source include/search_pattern_in_file.inc - --list_files $bugdir --remove_files_wildcard $bugdir --rmdir $bugdir +--let $restart_parameters= +--source include/start_mysqld.inc From 3ebe08204a0cc9903ebac1a8d53060819ab6fedd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 2 Feb 2017 17:00:27 +0200 Subject: [PATCH 135/258] MDEV-11782 Work-in-progress (test only). Test server startup with an empty encrypted redo log from 10.1.21. FIXME: Pass the encryption parameters. Currently we only test startup without properly set up encryption. --- .../suite/innodb/r/log_corruption.result | 7 +++++ mysql-test/suite/innodb/t/log_corruption.test | 27 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/mysql-test/suite/innodb/r/log_corruption.result b/mysql-test/suite/innodb/r/log_corruption.result index 2a3500c85da..1397334984c 100644 --- a/mysql-test/suite/innodb/r/log_corruption.result +++ b/mysql-test/suite/innodb/r/log_corruption.result @@ -86,6 +86,13 @@ WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS FOUND /len 22; hex 38000000000012860cb7809781e800066269676f7400; asc 8 bigot ;/ in mysqld.1.err +# Minimal MariaDB 10.1.21 encrypted redo log +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Redo log crypto: getting mysqld crypto key from key version failed err = 4294967295/ in mysqld.1.err +FOUND /InnoDB: Reading checkpoint encryption info failed/ in mysqld.1.err ib_buffer_pool ib_logfile0 ib_logfile1 diff --git a/mysql-test/suite/innodb/t/log_corruption.test b/mysql-test/suite/innodb/t/log_corruption.test index 913240fe1da..f7212d36c06 100644 --- a/mysql-test/suite/innodb/t/log_corruption.test +++ b/mysql-test/suite/innodb/t/log_corruption.test @@ -13,6 +13,8 @@ call mtr.add_suppression("InnoDB: Ignoring the redo log due to missing MLOG_CHEC call mtr.add_suppression("InnoDB: MLOG_FILE_NAME incorrect"); call mtr.add_suppression("InnoDB: ############### CORRUPT LOG RECORD FOUND"); call mtr.add_suppression("InnoDB: Found corrupted log"); +call mtr.add_suppression("InnoDB: Redo log crypto: getting mysqld crypto key from key version failed"); +call mtr.add_suppression("InnoDB: Reading checkpoint encryption info failed"); --enable_query_log let bugdir= $MYSQLTEST_VARDIR/tmp/log_corruption; @@ -318,6 +320,31 @@ eval $check_no_innodb; --let SEARCH_PATTERN= len 22; hex 38000000000012860cb7809781e800066269676f7400; asc 8 bigot ; --source include/search_pattern_in_file.inc +--echo # Minimal MariaDB 10.1.21 encrypted redo log +perl; +die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; +binmode OUT; +# header and empty checkpoint page 1 (not encrypted) +print OUT pack("x[9]nx[5]A[4]x[46]Cx[1469]", 0x186e, "", 2); +# checkpoint page 2 (not encrypted) +print OUT pack("NNNNNNNN", 0, 1, 0, 0x186e16, 0x816, 0x1000000, ~0, ~0); +print OUT pack("x[6]Cx[249]", 0x20); +print OUT pack("H*x[12]nNNn", "FDE012DE6D3BD6AC", 0x201, 1, 1, 0xEFC); +print OUT pack("H*x[162]", + "75774015174BE4723904C88E110E3B50FF5C634167DB058D02A415D2A4A3"); +# log block (encrypted) +print OUT pack("H*", "80000c380016000c000000015cf22e8aff355642045605c22b97f7cba94cc9932b6032b9c828ef85269024127d3863193b44e52d22eccdd0a8b197ce837f6b530c3042a022738bbac803adc5e7607333409b35c1f6351601a9da83d9b0bc3f389fb288d2bd6a0783066e3b07cae0e276fe83aa522d3f2b59b9549e2338031674383bbef87d7a42f415870fa33685afd3894a9d8214d60b5cde0c776489f45ad0c759e0495bc5d0c91018750070ed21ec1a41bcb9054007851df28e1da15fb662ab219bd558f1569b22671c943bfb0c12e97b604feb0d96a53c05c868e2eea9d4692cd0b6f4625a52adc8251ac955957e33d8c32eb964e416b246b950321a71d5b2e8e95c26e00333abe24ca827cd2eb95cff7b21dce639073f526614816fa2151afdb967aa049b4625cd70881fbd73827c1eb6f70447dcb7755055fa939a2c8ec38fc24f135c22f9f9691bd34a91be7047e5fd68d2e68b0d072cb69c253e14c7111b950b9d6df327f3ffb2a0dc6eff045d64baeb3c75c4ae4aeb41235757f40291540148d79deaff983851247134d7513a550ed7e21bf2e209d8dec51b252f0e9ba6fa33cc2ad0b28d05c04442dac9d233d0ca93d8ef0b81ba82e7396ffaec979b2df97f7249a20d8cb8036b582c245f27e64ac12c8b1d46248b670936893c7c737ba8a4ecf623689c18d79755865626993a43d607611d0736d1c626ebf88946"); +close OUT or die; +EOF + +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +--let SEARCH_PATTERN= InnoDB: Redo log crypto: getting mysqld crypto key from key version failed err = 4294967295 +--source include/search_pattern_in_file.inc +--let SEARCH_PATTERN= InnoDB: Reading checkpoint encryption info failed +--source include/search_pattern_in_file.inc + --list_files $bugdir --remove_files_wildcard $bugdir --rmdir $bugdir From bc12d993d7bc94a9533028a258afc7e4ceb21e92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 2 Feb 2017 18:17:46 +0200 Subject: [PATCH 136/258] MDEV-11947 InnoDB purge workers fail to shut down srv_release_threads(): Actually wait for the threads to resume from suspension. On CentOS 5 and possibly other platforms, os_event_set() may be lost. srv_resume_thread(): A counterpart of srv_suspend_thread(). Optionally wait for the event to be set, optionally with a timeout, and then release the thread from suspension. srv_free_slot(): Unconditionally suspend the thread. It is always in resumed state when this function is entered. srv_active_wake_master_thread_low(): Only call os_event_set(). srv_purge_coordinator_suspend(): Use srv_resume_thread() instead of the complicated logic. --- storage/innobase/include/srv0srv.h | 24 ++-- storage/innobase/srv/srv0srv.cc | 196 +++++++++++++---------------- 2 files changed, 98 insertions(+), 122 deletions(-) diff --git a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h index fee6ceaca4c..90c3284f95a 100644 --- a/storage/innobase/include/srv0srv.h +++ b/storage/innobase/include/srv0srv.h @@ -888,22 +888,16 @@ ulint srv_get_task_queue_length(void); /*===========================*/ -/*********************************************************************//** -Releases threads of the type given from suspension in the thread table. -NOTE! The server mutex has to be reserved by the caller! -@return number of threads released: this may be less than n if not -enough threads were suspended at the moment */ -ulint -srv_release_threads( -/*================*/ - enum srv_thread_type type, /*!< in: thread type */ - ulint n); /*!< in: number of threads to release */ - -/**********************************************************************//** -Wakeup the purge threads. */ +/** Ensure that a given number of threads of the type given are running +(or are already terminated). +@param[in] type thread type +@param[in] n number of threads that have to run */ void -srv_purge_wakeup(void); -/*==================*/ +srv_release_threads(enum srv_thread_type type, ulint n); + +/** Wakeup the purge threads. */ +void +srv_purge_wakeup(); /** Check if tablespace is being truncated. (Ignore system-tablespace as we don't re-create the tablespace diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index 0fd5ff7afaf..6fab9b12a69 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -854,7 +854,6 @@ srv_suspend_thread_low( /*===================*/ srv_slot_t* slot) /*!< in/out: thread slot */ { - ut_ad(!srv_read_only_mode); ut_ad(srv_sys_mutex_own()); @@ -912,33 +911,73 @@ srv_suspend_thread( return(sig_count); } -/*********************************************************************//** -Releases threads of the type given from suspension in the thread table. -NOTE! The server mutex has to be reserved by the caller! -@return number of threads released: this may be less than n if not - enough threads were suspended at the moment. */ -ulint -srv_release_threads( -/*================*/ - srv_thread_type type, /*!< in: thread type */ - ulint n) /*!< in: number of threads to release */ +/** Resume the calling thread. +@param[in,out] slot thread slot +@param[in] sig_count signal count (if wait) +@param[in] wait whether to wait for the event +@param[in] timeout_usec timeout in microseconds (0=infinite) +@return whether the wait timed out */ +static +bool +srv_resume_thread(srv_slot_t* slot, int64_t sig_count = 0, bool wait = true, + ulint timeout_usec = 0) { - ulint i; - ulint count = 0; + bool timeout; + + ut_ad(!srv_read_only_mode); + ut_ad(slot->in_use); + ut_ad(slot->suspended); + + if (!wait) { + timeout = false; + } else if (timeout_usec) { + timeout = OS_SYNC_TIME_EXCEEDED == os_event_wait_time_low( + slot->event, timeout_usec, sig_count); + } else { + timeout = false; + os_event_wait_low(slot->event, sig_count); + } + + srv_sys_mutex_enter(); + ut_ad(slot->in_use); + ut_ad(slot->suspended); + + slot->suspended = FALSE; + ++srv_sys->n_threads_active[slot->type]; + srv_sys_mutex_exit(); + return(timeout); +} + +/** Ensure that a given number of threads of the type given are running +(or are already terminated). +@param[in] type thread type +@param[in] n number of threads that have to run */ +void +srv_release_threads(enum srv_thread_type type, ulint n) +{ + ulint running; ut_ad(srv_thread_type_validate(type)); ut_ad(n > 0); - srv_sys_mutex_enter(); + do { + srv_sys_mutex_enter(); - for (i = 0; i < srv_sys->n_sys_threads; i++) { - srv_slot_t* slot; + running = 0; - slot = &srv_sys->sys_threads[i]; + for (ulint i = 0; i < srv_sys->n_sys_threads; i++) { + srv_slot_t* slot; - if (slot->in_use - && srv_slot_get_type(slot) == type - && slot->suspended) { + slot = &srv_sys->sys_threads[i]; + + if (!slot->in_use || srv_slot_get_type(slot) != type) { + continue; + } else if (!slot->suspended) { + if (++running >= n) { + break; + } + continue; + } switch (type) { case SRV_NONE: @@ -968,21 +1007,11 @@ srv_release_threads( break; } - slot->suspended = FALSE; - - ++srv_sys->n_threads_active[type]; - os_event_set(slot->event); - - if (++count == n) { - break; - } } - } - srv_sys_mutex_exit(); - - return(count); + srv_sys_mutex_exit(); + } while (running && running < n); } /*********************************************************************//** @@ -995,11 +1024,8 @@ srv_free_slot( { srv_sys_mutex_enter(); - if (!slot->suspended) { - /* Mark the thread as inactive. */ - srv_suspend_thread_low(slot); - } - + /* Mark the thread as inactive. */ + srv_suspend_thread_low(slot); /* Free the slot for reuse. */ ut_ad(slot->in_use); slot->in_use = FALSE; @@ -2046,15 +2072,7 @@ srv_active_wake_master_thread_low() if (slot->in_use) { ut_a(srv_slot_get_type(slot) == SRV_MASTER); - - if (slot->suspended) { - - slot->suspended = FALSE; - - ++srv_sys->n_threads_active[SRV_MASTER]; - - os_event_set(slot->event); - } + os_event_set(slot->event); } srv_sys_mutex_exit(); @@ -2572,7 +2590,7 @@ suspend_thread: manual also mentions this string in several places. */ srv_main_thread_op_info = "waiting for server activity"; - os_event_wait(slot->event); + srv_resume_thread(slot); if (srv_shutdown_state != SRV_SHUTDOWN_EXIT_THREADS) { goto loop; @@ -2689,8 +2707,7 @@ DECLARE_THREAD(srv_worker_thread)( do { srv_suspend_thread(slot); - - os_event_wait(slot->event); + srv_resume_thread(slot); if (srv_task_execute()) { @@ -2835,8 +2852,6 @@ srv_purge_coordinator_suspend( int64_t sig_count = srv_suspend_thread(slot); do { - ulint ret; - rw_lock_x_lock(&purge_sys->latch); purge_sys->running = false; @@ -2845,32 +2860,11 @@ srv_purge_coordinator_suspend( /* We don't wait right away on the the non-timed wait because we want to signal the thread that wants to suspend purge. */ - - if (stop) { - os_event_wait_low(slot->event, sig_count); - ret = 0; - } else if (rseg_history_len <= trx_sys->rseg_history_len) { - ret = os_event_wait_time_low( - slot->event, SRV_PURGE_MAX_TIMEOUT, sig_count); - } else { - /* We don't want to waste time waiting, if the - history list increased by the time we got here, - unless purge has been stopped. */ - ret = 0; - } - - srv_sys_mutex_enter(); - - /* The thread can be in state !suspended after the timeout - but before this check if another thread sent a wakeup signal. */ - - if (slot->suspended) { - slot->suspended = FALSE; - ++srv_sys->n_threads_active[slot->type]; - ut_a(srv_sys->n_threads_active[slot->type] == 1); - } - - srv_sys_mutex_exit(); + const bool wait = stop + || rseg_history_len <= trx_sys->rseg_history_len; + const bool timeout = srv_resume_thread( + slot, sig_count, wait, + stop ? 0 : SRV_PURGE_MAX_TIMEOUT); sig_count = srv_suspend_thread(slot); @@ -2882,6 +2876,19 @@ srv_purge_coordinator_suspend( if (!stop) { ut_a(purge_sys->n_stop == 0); purge_sys->running = true; + + if (timeout + && rseg_history_len == trx_sys->rseg_history_len + && trx_sys->rseg_history_len < 5000) { + /* No new records were added since the + wait started. Simply wait for new + records. The magic number 5000 is an + approximation for the case where we + have cached UNDO log records which + prevent truncate of the UNDO + segments. */ + stop = true; + } } else { ut_a(purge_sys->n_stop > 0); @@ -2890,33 +2897,9 @@ srv_purge_coordinator_suspend( } rw_lock_x_unlock(&purge_sys->latch); - - if (ret == OS_SYNC_TIME_EXCEEDED) { - - /* No new records added since wait started then simply - wait for new records. The magic number 5000 is an - approximation for the case where we have cached UNDO - log records which prevent truncate of the UNDO - segments. */ - - if (rseg_history_len == trx_sys->rseg_history_len - && trx_sys->rseg_history_len < 5000) { - - stop = true; - } - } - } while (stop && !thd_kill_level(thd)); - srv_sys_mutex_enter(); - - if (slot->suspended) { - slot->suspended = FALSE; - ++srv_sys->n_threads_active[slot->type]; - ut_a(srv_sys->n_threads_active[slot->type] == 1); - } - - srv_sys_mutex_exit(); + srv_resume_thread(slot, 0, false); } /*********************************************************************//** @@ -2971,8 +2954,9 @@ DECLARE_THREAD(srv_purge_coordinator_thread)( srv_purge_coordinator_suspend(thd, slot, rseg_history_len); } + ut_ad(!slot->suspended); + if (srv_purge_should_exit(thd, n_total_purged)) { - ut_a(!slot->suspended); break; } @@ -3092,11 +3076,9 @@ srv_get_task_queue_length(void) return(n_tasks); } -/**********************************************************************//** -Wakeup the purge threads. */ +/** Wake up the purge threads. */ void -srv_purge_wakeup(void) -/*==================*/ +srv_purge_wakeup() { ut_ad(!srv_read_only_mode); From 20aae56efa5aba90893e602ea87af2f14d161b10 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Fri, 3 Feb 2017 15:50:25 -0800 Subject: [PATCH 137/258] Fixed bug mdev-10660. The method Item_sum::print did not print opening '(' after the name of simple window functions (like rank, dense_rank etc). As a result the view definitions with such window functions were formed invalid in .frm files. --- mysql-test/r/win.result | 34 +++++++++++++++++++++++++++++----- mysql-test/t/win.test | 26 ++++++++++++++++++++++---- sql/item_sum.cc | 11 ++++++++++- sql/item_sum.h | 23 ++++++++++++++++++++++- sql/item_windowfunc.h | 2 +- 5 files changed, 84 insertions(+), 12 deletions(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index fc215c2b793..2a4f6408377 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -456,7 +456,7 @@ pk, c, row_number() over (partition by c order by pk range between unbounded preceding and current row) as r from t1; -ERROR HY000: Window frame is not allowed with 'row_number(' +ERROR HY000: Window frame is not allowed with 'row_number' select pk, c, rank() over w1 as r @@ -2463,8 +2463,8 @@ drop table t1; # # MDEV-11594: window function over implicit grouping # -create table test.t1 (id int); -insert into test.t1 values (1), (2), (3), (2); +create table t1 (id int); +insert into t1 values (1), (2), (3), (2); select sum(id) over (order by sum(id)) from t1; sum(id) over (order by sum(id)) 1 @@ -2476,8 +2476,8 @@ drop table t1; # MDEV-9923: integer constant in order by list # of window specification # -create table test.t1 (id int); -insert into test.t1 values (1), (2), (3), (2); +create table t1 (id int); +insert into t1 values (1), (2), (3), (2); select rank() over (order by 1) from t1; rank() over (order by 1) 1 @@ -2497,3 +2497,27 @@ rank() over (partition by id order by 2) 1 1 drop table t1; +# +# MDEV-10660: view using a simple window function +# +create table t1 (id int); +insert into t1 values (1), (2), (3), (2); +create view v1(id,rnk) as +select id, rank() over (order by id) from t1; +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 `t1`.`id` AS `id`,rank() over ( order by `t1`.`id`) AS `rnk` from `t1` latin1 latin1_swedish_ci +select id, rank() over (order by id) from t1; +id rank() over (order by id) +1 1 +2 2 +3 4 +2 2 +select * from v1; +id rnk +1 1 +2 2 +3 4 +2 2 +drop view v1; +drop table t1; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index 552be3484ef..15163f3a1d7 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1495,8 +1495,8 @@ drop table t1; --echo # MDEV-11594: window function over implicit grouping --echo # -create table test.t1 (id int); -insert into test.t1 values (1), (2), (3), (2); +create table t1 (id int); +insert into t1 values (1), (2), (3), (2); select sum(id) over (order by sum(id)) from t1; @@ -1509,11 +1509,29 @@ drop table t1; --echo # of window specification --echo # -create table test.t1 (id int); -insert into test.t1 values (1), (2), (3), (2); +create table t1 (id int); +insert into t1 values (1), (2), (3), (2); select rank() over (order by 1) from t1; select rank() over (order by 2) from t1; select rank() over (partition by id order by 2) from t1; drop table t1; + +--echo # +--echo # MDEV-10660: view using a simple window function +--echo # + +create table t1 (id int); +insert into t1 values (1), (2), (3), (2); + +create view v1(id,rnk) as + select id, rank() over (order by id) from t1; + +show create view v1; + +select id, rank() over (order by id) from t1; +select * from v1; + +drop view v1; +drop table t1; diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 23f8638b724..2ca1be31ae1 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -471,6 +471,13 @@ void Item_sum::print(String *str, enum_query_type query_type) /* orig_args is not filled with valid values until fix_fields() */ Item **pargs= fixed ? orig_args : args; str->append(func_name()); + /* + TODO: + The fact that func_name() may return a name with an extra '(' + is really annoying. This shoud be fixed. + */ + if (!is_aggr_sum_func()) + str->append('('); for (uint i=0 ; i < arg_count ; i++) { if (i) @@ -594,7 +601,9 @@ Item *Item_sum::result_item(THD *thd, Field *field) bool Item_sum::check_vcol_func_processor(void *arg) { - return mark_unsupported_function(func_name(), ")", arg, VCOL_IMPOSSIBLE); + return mark_unsupported_function(func_name(), + is_aggr_sum_func() ? ")" : "()", + arg, VCOL_IMPOSSIBLE); } diff --git a/sql/item_sum.h b/sql/item_sum.h index 940726b5d8e..a838bd0bc10 100644 --- a/sql/item_sum.h +++ b/sql/item_sum.h @@ -409,10 +409,31 @@ public: Item_sum(THD *thd, Item_sum *item); enum Type type() const { return SUM_FUNC_ITEM; } virtual enum Sumfunctype sum_func () const=0; + bool is_aggr_sum_func() + { + switch (sum_func()) { + case COUNT_FUNC: + case COUNT_DISTINCT_FUNC: + case SUM_FUNC: + case SUM_DISTINCT_FUNC: + case AVG_FUNC: + case AVG_DISTINCT_FUNC: + case MIN_FUNC: + case MAX_FUNC: + case STD_FUNC: + case VARIANCE_FUNC: + case SUM_BIT_FUNC: + case UDF_SUM_FUNC: + case GROUP_CONCAT_FUNC: + return true; + default: + return false; + } + } /** Resets the aggregate value to its default and aggregates the current value of its attribute(s). - */ + */ inline bool reset_and_add() { aggregator_clear(); diff --git a/sql/item_windowfunc.h b/sql/item_windowfunc.h index 15e5c9a7c5b..2beed69c0fa 100644 --- a/sql/item_windowfunc.h +++ b/sql/item_windowfunc.h @@ -127,7 +127,7 @@ public: } const char*func_name() const { - return "row_number("; + return "row_number"; } Item *get_copy(THD *thd, MEM_ROOT *mem_root) From e51b015fc354ec40c8430d4f4ea6346bc9a8e07b Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Sat, 4 Feb 2017 21:51:40 -0800 Subject: [PATCH 138/258] Fixed bug mdev-11138. Supported usage of expressions with window functions in SELECTs without tables. --- mysql-test/r/win.result | 24 ++++++++++++++++++++++++ mysql-test/t/win.test | 12 ++++++++++++ sql/sql_select.cc | 15 +++++++++++---- sql/sql_window.cc | 5 +++++ 4 files changed, 52 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index 2a4f6408377..c84c98c6032 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2521,3 +2521,27 @@ id rnk 2 2 drop view v1; drop table t1; +# +# MDEV-11138: window function in the query without tables +# +select row_number() over (); +row_number() over () +1 +select count(*) over (); +count(*) over () +1 +select sum(5) over (); +sum(5) over () +5 +select row_number() over (), sum(5) over (); +row_number() over () sum(5) over () +1 5 +select row_number() over (order by 2); +row_number() over (order by 2) +1 +select row_number() over (partition by 2); +row_number() over (partition by 2) +1 +select row_number() over (partition by 4 order by 1+2); +row_number() over (partition by 4 order by 1+2) +1 diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index 15163f3a1d7..430304e80e6 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1535,3 +1535,15 @@ select * from v1; drop view v1; drop table t1; + +--echo # +--echo # MDEV-11138: window function in the query without tables +--echo # + +select row_number() over (); +select count(*) over (); +select sum(5) over (); +select row_number() over (), sum(5) over (); +select row_number() over (order by 2); +select row_number() over (partition by 2); +select row_number() over (partition by 4 order by 1+2); diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 4b652ff74ee..10e03413eca 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1439,6 +1439,13 @@ JOIN::optimize_inner() { DBUG_PRINT("info",("No tables")); error= 0; + if (select_lex->have_window_funcs()) + { + if (!join_tab && + !(join_tab= (JOIN_TAB*) thd->alloc(sizeof(JOIN_TAB)))) + DBUG_RETURN(1); + need_tmp= 1; + } if (make_aggr_tables_info()) DBUG_RETURN(1); goto setup_subq_exit; @@ -2186,7 +2193,7 @@ bool JOIN::make_aggr_tables_info() Setup last table to provide fields and all_fields lists to the next node in the plan. */ - if (join_tab) + if (join_tab && top_join_tab_count) { join_tab[top_join_tab_count - 1].fields= &fields_list; join_tab[top_join_tab_count - 1].all_fields= &all_fields; @@ -2310,7 +2317,8 @@ bool JOIN::make_aggr_tables_info() single table queries, thus it is sufficient to test only the first join_tab element of the plan for its access method. */ - if (join_tab && join_tab->is_using_loose_index_scan()) + if (join_tab && top_join_tab_count && + join_tab->is_using_loose_index_scan()) tmp_table_param.precomputed_group_by= !join_tab->is_using_agg_loose_index_scan(); @@ -2770,7 +2778,7 @@ JOIN::create_postjoin_aggr_table(JOIN_TAB *tab, List *table_fields, tmp_table_param.using_outer_summary_function= tab->tmp_table_param->using_outer_summary_function; tab->join= this; - DBUG_ASSERT(tab > tab->join->join_tab); + DBUG_ASSERT(tab > tab->join->join_tab || !top_join_tab_count); (tab - 1)->next_select= sub_select_postjoin_aggr; tab->aggr= new (thd->mem_root) AGGR_OP(tab); if (!tab->aggr) @@ -3424,7 +3432,6 @@ JOIN::destroy() if (join_tab) { - DBUG_ASSERT(table_count+aggr_tables > 0); for (JOIN_TAB *tab= first_linear_tab(this, WITH_BUSH_ROOTS, WITH_CONST_TABLES); tab; tab= next_linear_tab(this, tab, WITH_BUSH_ROOTS)) diff --git a/sql/sql_window.cc b/sql/sql_window.cc index f49cc945504..e9e531714f6 100644 --- a/sql/sql_window.cc +++ b/sql/sql_window.cc @@ -2801,6 +2801,11 @@ bool Window_funcs_sort::setup(THD *thd, SQL_SELECT *sel, sort_order= order; } filesort= new (thd->mem_root) Filesort(sort_order, HA_POS_ERROR, true, NULL); + if (!join_tab->join->top_join_tab_count) + { + filesort->tracker= + new (thd->mem_root) Filesort_tracker(thd->lex->analyze_stmt); + } /* Apply the same condition that the subsequent sort has. */ filesort->select= sel; From abf7582112645ef8decc549eb662a07072b5cd32 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Mon, 6 Feb 2017 06:47:48 +0400 Subject: [PATCH 139/258] MDEV-11557 port MySQL-5.7 JSON tests to MariaDB. Fixes for issues found. --- include/json_lib.h | 7 +- mysql-test/r/func_json.result | 85 +++-- mysql-test/suite/json/r/json_no_table.result | 309 +++++++++---------- mysql-test/t/func_json.test | 20 ++ sql/item_create.cc | 72 +++++ sql/item_jsonfunc.cc | 226 +++++++++++++- sql/item_jsonfunc.h | 26 ++ strings/json_lib.c | 114 +++++-- 8 files changed, 639 insertions(+), 220 deletions(-) diff --git a/include/json_lib.h b/include/json_lib.h index ddba571ac59..cdfcffad38a 100644 --- a/include/json_lib.h +++ b/include/json_lib.h @@ -409,7 +409,12 @@ int json_get_path_start(json_engine_t *je, CHARSET_INFO *i_cs, int json_get_path_next(json_engine_t *je, json_path_t *p); -int json_path_compare(const json_path_t *a, const json_path_t *b); +int json_path_parts_compare( + const json_path_step_t *a, const json_path_step_t *a_end, + const json_path_step_t *b, const json_path_step_t *b_end, + enum json_value_types vt); +int json_path_compare(const json_path_t *a, const json_path_t *b, + enum json_value_types vt); #ifdef __cplusplus diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index 67a5dd20883..bfee73c2eef 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -57,7 +57,7 @@ json_array_append('["a", "b"]', '$', FALSE) ["a", "b", false] select json_array_append('{"k1":1, "k2":["a", "b"]}', '$.k2', 2); json_array_append('{"k1":1, "k2":["a", "b"]}', '$.k2', 2) -{"k1":1, "k2":["a", "b", 2]} +{"k1": 1, "k2": ["a", "b", 2]} select json_array_append('["a", ["b", "c"], "d"]', '$[0]', 2); json_array_append('["a", ["b", "c"], "d"]', '$[0]', 2) [["a", 2], ["b", "c"], "d"] @@ -190,10 +190,10 @@ json_extract('{"key1":"asd", "key2":[2,3]}', "$.keyX", "$.keyY") NULL select json_extract('{"key1":"asd", "key2":[2,3]}', "$.key1", "$.key2"); json_extract('{"key1":"asd", "key2":[2,3]}', "$.key1", "$.key2") -["asd", [2,3]] +["asd", [2, 3]] select json_extract('{"key1":5, "key2":[2,3]}', "$.key1", "$.key2"); json_extract('{"key1":5, "key2":[2,3]}', "$.key1", "$.key2") -[5, [2,3]] +[5, [2, 3]] select json_extract('{"key0":true, "key1":"qwe"}', "$.key1"); json_extract('{"key0":true, "key1":"qwe"}', "$.key1") "qwe" @@ -205,7 +205,7 @@ json_extract('[10, 20, [30, 40]]', '$[2][*]') [30, 40] select json_extract('[10, 20, [{"a":3}, 30, 40]]', '$[2][*]'); json_extract('[10, 20, [{"a":3}, 30, 40]]', '$[2][*]') -[{"a":3}, 30, 40] +[{"a": 3}, 30, 40] select json_extract('1', '$'); json_extract('1', '$') 1 @@ -220,29 +220,29 @@ json_extract( '[{"a": [3, 4]}, {"b": 2}]', '$[0].a', '$[1].a') [[3, 4]] select json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.b.k1', 'word'); json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.b.k1', 'word') -{"a":1, "b":{"c":1, "k1":"word"}, "d":[1, 2]} +{"a": 1, "b": {"c": 1, "k1": "word"}, "d": [1, 2]} select json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.d[3]', 3); json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.d[3]', 3) -{"a":1, "b":{"c":1}, "d":[1, 2, 3]} +{"a": 1, "b": {"c": 1}, "d": [1, 2, 3]} select json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.a[2]', 2); json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.a[2]', 2) -{"a":[1, 2], "b":{"c":1}, "d":[1, 2]} +{"a": [1, 2], "b": {"c": 1}, "d": [1, 2]} select json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.b.c', 'word'); json_insert('{"a":1, "b":{"c":1}, "d":[1, 2]}', '$.b.c', 'word') -{"a":1, "b":{"c":1}, "d":[1, 2]} +{"a": 1, "b": {"c": 1}, "d": [1, 2]} select json_set('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.c', '[true, false]'); json_set('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.c', '[true, false]') -{ "a": 10, "b": [2, 3], "c":"[true, false]"} +{"a": 10, "b": [2, 3], "c": "[true, false]"} select json_replace('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.c', '[true, false]'); json_replace('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.c', '[true, false]') -{ "a": 10, "b": [2, 3]} +{"a": 10, "b": [2, 3]} select json_replace('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.b', '[true, false]'); json_replace('{ "a": 1, "b": [2, 3]}', '$.a', 10, '$.b', '[true, false]') -{ "a": 10, "b": "[true, false]"} +{"a": 10, "b": "[true, false]"} set @j = '["a", ["b", "c"], "d"]'; select json_remove(@j, '$[0]'); json_remove(@j, '$[0]') -[ ["b", "c"], "d"] +[["b", "c"], "d"] select json_remove(@j, '$[1]'); json_remove(@j, '$[1]') ["a", "d"] @@ -323,7 +323,7 @@ Warnings: Warning 4038 Syntax error in JSON text in argument 1 to function 'json_merge' at position 1 select json_merge('{"a":"b"}','{"c":"d"}'); json_merge('{"a":"b"}','{"c":"d"}') -{"a":"b", "c":"d"} +{"a": "b", "c": "d"} SELECT JSON_MERGE('[1, 2]', '{"id": 47}'); JSON_MERGE('[1, 2]', '{"id": 47}') [1, 2, {"id": 47}] @@ -485,15 +485,13 @@ json_set('{"a":12}', '$[0]', 100) 100 select json_set('{"a":12}', '$[0].a', 100); json_set('{"a":12}', '$[0].a', 100) -{"a":100} +{"a": 100} select json_set('{"a":12}', '$[0][0].a', 100); json_set('{"a":12}', '$[0][0].a', 100) -{"a":100} +{"a": 100} select json_set('{"a":12}', '$[0][1].a', 100); json_set('{"a":12}', '$[0][1].a', 100) -NULL -Warnings: -Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_set' +{"a": 12} select json_value('{"\\"key1":123}', '$."\\"key1"'); json_value('{"\\"key1":123}', '$."\\"key1"') 123 @@ -503,3 +501,54 @@ json_value('{"\\"key1\\"":123}', '$."\\"key1\\""') select json_value('{"key 1":123}', '$."key 1"'); json_value('{"key 1":123}', '$."key 1"') 123 +select json_contains_path('{"a":[{"c":[1,{"a":[0,1,2]},3]}], "b":[1,2,3]}', 'one', "$**.a[2]"); +json_contains_path('{"a":[{"c":[1,{"a":[0,1,2]},3]}], "b":[1,2,3]}', 'one', "$**.a[2]") +1 +select json_contains_path('{"a":[{"c":[1,{"a":[0,1,2]},3]}], "b":[1,2,3]}', 'one', "$**.a[3]"); +json_contains_path('{"a":[{"c":[1,{"a":[0,1,2]},3]}], "b":[1,2,3]}', 'one', "$**.a[3]") +0 +select json_extract( '[1]', '$[0][0]' ); +json_extract( '[1]', '$[0][0]' ) +1 +select json_extract( '[1]', '$[1][0]' ); +json_extract( '[1]', '$[1][0]' ) +NULL +select json_extract( '[1]', '$**[0]' ); +json_extract( '[1]', '$**[0]' ) +[1] +select json_extract( '[1]', '$**[0][0]' ); +json_extract( '[1]', '$**[0][0]' ) +[1] +select json_insert('1', '$[0]', 4); +json_insert('1', '$[0]', 4) +1 +select json_replace('1', '$[0]', 4); +json_replace('1', '$[0]', 4) +4 +select json_set('1', '$[0]', 4); +json_set('1', '$[0]', 4) +4 +select json_set('1', '$[1]', 4); +json_set('1', '$[1]', 4) +[1, 4] +select json_replace('1', '$[1]', 4); +json_replace('1', '$[1]', 4) +1 +SELECT json_insert('[]', '$[0][0]', 100); +json_insert('[]', '$[0][0]', 100) +[] +SELECT json_insert('1', '$[0][0]', 100); +json_insert('1', '$[0][0]', 100) +1 +SELECT json_replace('1', '$[0][0]', 100); +json_replace('1', '$[0][0]', 100) +100 +SELECT json_replace('[]', '$[0][0]', 100); +json_replace('[]', '$[0][0]', 100) +[] +SELECT json_set('[]', '$[0][0]', 100); +json_set('[]', '$[0][0]', 100) +[] +SELECT json_set('[]', '$[0][0][0]', 100); +json_set('[]', '$[0][0][0]', 100) +[] diff --git a/mysql-test/suite/json/r/json_no_table.result b/mysql-test/suite/json/r/json_no_table.result index 3660a37814c..3201d0fc432 100644 --- a/mysql-test/suite/json/r/json_no_table.result +++ b/mysql-test/suite/json/r/json_no_table.result @@ -710,19 +710,19 @@ Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 3 to function 'json_remove' select json_remove( '[ 1, 2, 3 ]', '$[0]' ); json_remove( '[ 1, 2, 3 ]', '$[0]' ) -[ 2, 3 ] +[2, 3] select json_remove( '[ 1, 2, 3 ]', '$[1]' ); json_remove( '[ 1, 2, 3 ]', '$[1]' ) -[ 1, 3 ] +[1, 3] select json_remove( '[ 1, 2, 3 ]', '$[2]' ); json_remove( '[ 1, 2, 3 ]', '$[2]' ) -[ 1, 2] +[1, 2] select json_remove( '[ 1, 2, 3 ]', '$[3]' ); json_remove( '[ 1, 2, 3 ]', '$[3]' ) -[ 1, 2, 3 ] +[1, 2, 3] select json_remove( '[ 1, { "a": true, "b": false, "c": null }, 5 ]', '$[1]' ); json_remove( '[ 1, { "a": true, "b": false, "c": null }, 5 ]', '$[1]' ) -[ 1, 5 ] +[1, 5] error ER_INVALID_JSON_PATH_WILDCARD select json_remove( '[ { "a": { "a": true } } ]', '$**.a' ); json_remove( '[ { "a": { "a": true } } ]', '$**.a' ) @@ -731,7 +731,7 @@ Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_remove' select json_remove( '[ { "a": true }, { "b": false }, { "c": null }, { "a": null } ]', '$[0].a', '$[2].c' ); json_remove( '[ { "a": true }, { "b": false }, { "c": null }, { "a": null } ]', '$[0].a', '$[2].c' ) -[ { }, { "b": false }, { }, { "a": null } ] +[{}, {"b": false}, {}, {"a": null}] error ER_INVALID_JSON_PATH_WILDCARD select json_remove( '[ { "a": true }, { "b": [ { "c": { "a": true } } ] }, { "c": null }, { "a": null } ]', '$**.a' ); json_remove( '[ { "a": true }, { "b": [ { "c": { "a": true } } ] }, { "c": null }, { "a": null } ]', '$**.a' ) @@ -751,7 +751,7 @@ JSON_REMOVE '{"a" : "foo", "b" : [true, {"c" : 123}]}', '$.b[ 1 ]' ) -{"a" : "foo", "b" : [true, {"c" : 123}]} +{"a": "foo", "b": [true]} SELECT JSON_REMOVE ( '{ "a" : "foo", "b" : [ true, { "c" : 123, "c" : 456 } ] }', @@ -762,9 +762,7 @@ JSON_REMOVE '{ "a" : "foo", "b" : [ true, { "c" : 123, "c" : 456 } ] }', '$.b[ 1 ].c' ) -NULL -Warnings: -Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_remove' +{"a": "foo", "b": [true, {"c": 456}]} SELECT JSON_REMOVE ( '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', @@ -775,9 +773,7 @@ JSON_REMOVE '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '$.b[ 1 ].c' ) -NULL -Warnings: -Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_remove' +{"a": "foo", "b": [true, {}]} SELECT JSON_REMOVE ( '{ "a" : "foo", "b" : [ true, { "c" : 123, "d" : 456 } ] }', @@ -788,9 +784,7 @@ JSON_REMOVE '{ "a" : "foo", "b" : [ true, { "c" : 123, "d" : 456 } ] }', '$.b[ 1 ].e' ) -NULL -Warnings: -Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_remove' +{"a": "foo", "b": [true, {"c": 123, "d": 456}]} # ---------------------------------------------------------------------- # Test of JSON_MERGE function. # ---------------------------------------------------------------------- @@ -823,7 +817,9 @@ NULL error ER_INVALID_JSON_TEXT_IN_PARAM select json_merge( '[1, 2]', '[3, 4' ); json_merge( '[1, 2]', '[3, 4' ) -[1, 2, 3, 4 +NULL +Warnings: +Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_merge' error ER_INVALID_JSON_TEXT_IN_PARAM select json_merge( '[1, 2', '[3, 4]' ); json_merge( '[1, 2', '[3, 4]' ) @@ -841,55 +837,55 @@ json_merge( '[1, 2]', '3' ) [1, 2, 3] select json_merge( '1', '{ "a": 2 }' ); json_merge( '1', '{ "a": 2 }' ) -[1, { "a": 2 }] +[1, {"a": 2}] select json_merge( '{ "a": 2 }', '1' ); json_merge( '{ "a": 2 }', '1' ) -[{ "a": 2 }, 1] +[{"a": 2}, 1] select json_merge( '[1, 2]', '[3, 4]' ); json_merge( '[1, 2]', '[3, 4]' ) [1, 2, 3, 4] select json_merge( '{ "a": 2 }', '{ "b": 3}' ); json_merge( '{ "a": 2 }', '{ "b": 3}' ) -{ "a": 2 , "b": 3} +{"a": 2, "b": 3} select json_merge( '[1, 2]', '{ "a": 2 }' ); json_merge( '[1, 2]', '{ "a": 2 }' ) -[1, 2, { "a": 2 }] +[1, 2, {"a": 2}] select json_merge( '{ "a": 2 }', '[1, 2]' ); json_merge( '{ "a": 2 }', '[1, 2]' ) -[{ "a": 2 }, 1, 2] +[{"a": 2}, 1, 2] select json_merge( '{"a": 1, "b": 2 }', '{"b": 3, "d": 4 }' ); json_merge( '{"a": 1, "b": 2 }', '{"b": 3, "d": 4 }' ) -{"a": 1, "b": 2 , "b": 3, "d": 4 } +{"a": 1, "b": 2, "b": 3, "d": 4} select json_merge( '{"a": 1, "b": 2 }', '{"b": [3, 4], "d": 4 }' ); json_merge( '{"a": 1, "b": 2 }', '{"b": [3, 4], "d": 4 }' ) -{"a": 1, "b": 2 , "b": [3, 4], "d": 4 } +{"a": 1, "b": 2, "b": [3, 4], "d": 4} select json_merge( '{"a": 1, "b": [2, 3] }', '{"b": 4, "d": 4 }' ); json_merge( '{"a": 1, "b": [2, 3] }', '{"b": 4, "d": 4 }' ) -{"a": 1, "b": [2, 3] , "b": 4, "d": 4 } +{"a": 1, "b": [2, 3], "b": 4, "d": 4} select json_merge( '{"a": 1, "b": 2 }', '{"b": {"e": 7, "f": 8}, "d": 4 }' ); json_merge( '{"a": 1, "b": 2 }', '{"b": {"e": 7, "f": 8}, "d": 4 }' ) -{"a": 1, "b": 2 , "b": {"e": 7, "f": 8}, "d": 4 } +{"a": 1, "b": 2, "b": {"e": 7, "f": 8}, "d": 4} select json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": 2 }' ); json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": 2 }' ) -{"b": {"e": 7, "f": 8}, "d": 4 , "a": 1, "b": 2 } +{"b": {"e": 7, "f": 8}, "d": 4, "a": 1, "b": 2} select json_merge( '{"a": 1, "b": [2, 9] }', '{"b": [10, 11], "d": 4 }' ); json_merge( '{"a": 1, "b": [2, 9] }', '{"b": [10, 11], "d": 4 }' ) -{"a": 1, "b": [2, 9] , "b": [10, 11], "d": 4 } +{"a": 1, "b": [2, 9], "b": [10, 11], "d": 4} select json_merge( '{"a": 1, "b": [2, 9] }', '{"b": {"e": 7, "f": 8}, "d": 4 }' ); json_merge( '{"a": 1, "b": [2, 9] }', '{"b": {"e": 7, "f": 8}, "d": 4 }' ) -{"a": 1, "b": [2, 9] , "b": {"e": 7, "f": 8}, "d": 4 } +{"a": 1, "b": [2, 9], "b": {"e": 7, "f": 8}, "d": 4} select json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": [2, 9] }' ); json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": [2, 9] }' ) -{"b": {"e": 7, "f": 8}, "d": 4 , "a": 1, "b": [2, 9] } +{"b": {"e": 7, "f": 8}, "d": 4, "a": 1, "b": [2, 9]} select json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{ "a": 1, "b": {"e": 20, "g": 21 } }' ); json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{ "a": 1, "b": {"e": 20, "g": 21 } }' ) -{"b": {"e": 7, "f": 8}, "d": 4 , "a": 1, "b": {"e": 20, "g": 21 } } +{"b": {"e": 7, "f": 8}, "d": 4, "a": 1, "b": {"e": 20, "g": 21}} select json_merge( '1', '2', '3' ); json_merge( '1', '2', '3' ) [1, 2, 3] select json_merge( '[1, 2 ]', '3', '[4, 5]' ); json_merge( '[1, 2 ]', '3', '[4, 5]' ) -[1, 2 , 3, 4, 5] +[1, 2, 3, 4, 5] select json_merge ( '{ "a": true, "b": { "c": 3, "d": 4 }, "e": [ 1, 2 ] }', @@ -902,7 +898,7 @@ json_merge '{ "d": false, "b": { "g": 3, "d": 5 }, "f": [ 1, 2 ] }', '{ "m": true, "b": { "h": 8, "d": 4 }, "e": [ 3, 4 ] }' ) -{ "a": true, "b": { "c": 3, "d": 4 }, "e": [ 1, 2 ] , "d": false, "b": { "g": 3, "d": 5 }, "f": [ 1, 2 ] , "m": true, "b": { "h": 8, "d": 4 }, "e": [ 3, 4 ] } +{"a": true, "b": {"c": 3, "d": 4}, "e": [1, 2], "d": false, "b": {"g": 3, "d": 5}, "f": [1, 2], "m": true, "b": {"h": 8, "d": 4}, "e": [3, 4]} SELECT JSON_MERGE ( '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', @@ -913,7 +909,7 @@ JSON_MERGE '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '[ 5, 6]' ) -[{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }, 5, 6] +[{"a": "foo", "b": [true, {"c": 123}]}, 5, 6] SELECT JSON_MERGE ( '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', @@ -924,7 +920,7 @@ JSON_MERGE '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '{ "b": [ false, 34 ] }' ) -{ "a" : "foo", "b" : [ true, { "c" : 123 } ] , "b": [ false, 34 ] } +{"a": "foo", "b": [true, {"c": 123}], "b": [false, 34]} SELECT JSON_MERGE ( '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', @@ -935,7 +931,7 @@ JSON_MERGE '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '{ "b": "bar" }' ) -{ "a" : "foo", "b" : [ true, { "c" : 123 } ] , "b": "bar" } +{"a": "foo", "b": [true, {"c": 123}], "b": "bar"} SELECT JSON_MERGE ( '{ "a" : { "b" : 1 } }', @@ -946,7 +942,7 @@ JSON_MERGE '{ "a" : { "b" : 1 } }', '{ "a" : { "c" : 1 } }' ) -{ "a" : { "b" : 1 } , "a" : { "c" : 1 } } +{"a": {"b": 1}, "a": {"c": 1}} # ---------------------------------------------------------------------- # Test of JSON_TYPE function. # ---------------------------------------------------------------------- @@ -1296,16 +1292,16 @@ json_extract( '{ "a": 1}', '$.a' ) 1 select json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[0]' ); json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[0]' ) -[ 3, 2 ] +[3, 2] select json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[0][1]' ); json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[0][1]' ) 2 select json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[1]' ); json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[1]' ) -[ { "c" : "d" }, 1 ] +[{"c": "d"}, 1] select json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[1][0]' ); json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[1][0]' ) -{ "c" : "d" } +{"c": "d"} select json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[1][0].c' ); json_extract( '{ "a": [ [ 3, 2 ], [ { "c" : "d" }, 1 ] ], "b": { "c" : 6 }, "one potato": 7, "b.c" : 8 }', '$.a[1][0].c' ) "d" @@ -1359,13 +1355,13 @@ SELECT JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : "123" } ] }', '$.b[ 1 ].c'); JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : "123" } ] }', '$.b[ 1 ].c') -NULL +"123" # returns a JSON value containing just the number 123 SELECT JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '$.b[ 1 ].c'); JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '$.b[ 1 ].c') -NULL +123 # raises an error because the document is not valid error ER_INVALID_JSON_TEXT_IN_PARAM SELECT JSON_EXTRACT('{ "a" : [ }', @@ -1390,13 +1386,13 @@ SELECT JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '$.b[ 1 ].c[ 0 ]'); JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '$.b[ 1 ].c[ 0 ]') -NULL +123 # returns a JSON value containing the object because of auto-wrapping SELECT JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : {"not array": 4} } ] }', '$.b[ 1 ].c[ 0 ]'); JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : {"not array": 4} } ] }', '$.b[ 1 ].c[ 0 ]') -NULL +{"not array": 4} # returns null because the path, although valid, does not identify a value SELECT JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '$.b[ 1 ].c[ 1 ]'); @@ -1408,7 +1404,7 @@ SELECT JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : 123, "c" : 456 } ] }', '$.b[ 1 ].c'); JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : 123, "c" : 456 } ] }', '$.b[ 1 ].c') -NULL +123 # returns a JSON array [ "foo", true ] SELECT JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : 123, "c" : 456 } ] }', '$.a', '$.b[0]'); @@ -1423,48 +1419,48 @@ JSON_EXTRACT('{ "a" : "foo", "b" : [ true, { "c" : 123, "c" : 456 } ] }', [true] select json_extract( '[1]', '$[0][0]' ); json_extract( '[1]', '$[0][0]' ) -NULL +1 select json_extract( '[1]', '$**[0]' ); json_extract( '[1]', '$**[0]' ) [1] select json_extract( '{ "a": 1 }', '$.a[0]' ); json_extract( '{ "a": 1 }', '$.a[0]' ) -NULL +1 select json_extract( '{ "a": 1 }', '$**[0]' ); json_extract( '{ "a": 1 }', '$**[0]' ) -NULL +[{"a": 1}, 1] select json_extract( '{ "a": 1 }', '$[0].a' ); json_extract( '{ "a": 1 }', '$[0].a' ) -NULL +1 select json_extract( '{ "a": 1 }', '$**.a' ); json_extract( '{ "a": 1 }', '$**.a' ) [1] select json_extract( '{ "a": 1 }', '$[0].a[0]' ); json_extract( '{ "a": 1 }', '$[0].a[0]' ) -NULL +1 select json_extract( '{ "a": 1 }', '$**[0]' ); json_extract( '{ "a": 1 }', '$**[0]' ) -NULL +[{"a": 1}, 1] select json_extract( '{ "a": 1 }', '$[0].a' ); json_extract( '{ "a": 1 }', '$[0].a' ) -NULL +1 select json_extract( '{ "a": 1 }', '$**.a' ); json_extract( '{ "a": 1 }', '$**.a' ) [1] select json_extract( '{ "a": 1 }', '$[0][0].a' ); json_extract( '{ "a": 1 }', '$[0][0].a' ) -NULL +1 select json_extract( '{ "a": 1 }', '$[0][0][0].a' ); json_extract( '{ "a": 1 }', '$[0][0][0].a' ) -NULL +1 SELECT JSON_EXTRACT('[1, [[{"x": [{"a":{"b":{"c":42}}}]}]]]', '$**.a.*'); JSON_EXTRACT('[1, [[{"x": [{"a":{"b":{"c":42}}}]}]]]', '$**.a.*') -[{"c":42}] +[{"c": 42}] SELECT JSON_EXTRACT('[1, [[{"x": [{"a":{"b":{"c":42}}}]}]]]', '$[1][0][0].x[0].a.*'); JSON_EXTRACT('[1, [[{"x": [{"a":{"b":{"c":42}}}]}]]]', '$[1][0][0].x[0].a.*') -[{"c":42}] +[{"c": 42}] SELECT JSON_EXTRACT ( '{ "a" : "foo", "b" : [ true, { "c" : "123" } ] }', @@ -1475,7 +1471,7 @@ JSON_EXTRACT '{ "a" : "foo", "b" : [ true, { "c" : "123" } ] }', '$.b[ 1 ].c' ) -NULL +"123" SELECT JSON_EXTRACT ( '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', @@ -1486,7 +1482,7 @@ JSON_EXTRACT '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '$.b[ 1 ].c' ) -NULL +123 error ER_INVALID_JSON_TEXT_IN_PARAM SELECT JSON_EXTRACT ( @@ -1525,7 +1521,7 @@ JSON_EXTRACT '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '$.b[ 1 ].c[ 0 ]' ) -NULL +123 SELECT JSON_EXTRACT ( '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', @@ -1547,7 +1543,7 @@ JSON_EXTRACT '{ "a" : "foo", "b" : [ true, { "c" : 123, "c" : 456 } ] }', '$.b[ 1 ].c' ) -NULL +123 SELECT JSON_EXTRACT ( '{ "a" : "foo", "b" : [ true, { "c" : 123, "c" : 456 } ] }', @@ -1587,13 +1583,13 @@ jdoc [1] select json_extract( '[ { "a": [3,4] }, { "b": 2 } ]', '$[0].a' ) jdoc; jdoc -[3,4] +[3, 4] select json_extract( '[ { "a": [3,4] }, { "b": 2 } ]', '$[*].a' ) jdoc; jdoc -[[3,4]] +[[3, 4]] select json_extract( '[ { "a": [3,4] }, { "b": 2 } ]', '$[0].a', '$[1].a' ) jdoc; jdoc -[[3,4]] +[[3, 4]] # ---------------------------------------------------------------------- # Test of JSON_ARRAY_APPEND function. # ---------------------------------------------------------------------- @@ -1605,7 +1601,7 @@ json_array_append('[1,2,3]', NULL, cast(1 as json)) NULL select json_array_append('[1,2,3]', '$', NULL); json_array_append('[1,2,3]', '$', NULL) -[1,2,3, null] +[1, 2, 3, null] select json_array_append(NULL); ERROR 42000: Incorrect parameter count in the call to native function 'json_array_append' select json_array_append(NULL, NULL); @@ -1641,14 +1637,14 @@ SELECT JSON_ARRAY_APPEND('{"a" : "foo","b": [1, 2, 3], "c": ["apple", "pear"]}', JSON_ARRAY_APPEND('{"a" : "foo","b": [1, 2, 3], "c": ["apple", "pear"]}', '$.b', cast(4 as json), '$.c', cast('"grape"' as json)) -{"a" : "foo","b": [1, 2, 3, 4], "c": ["apple", "pear", "grape"]} +{"a": "foo", "b": [1, 2, 3, 4], "c": ["apple", "pear", "grape"]} SELECT JSON_ARRAY_APPEND('{"a" : "foo","b": [1, 2, 3], "c": ["apple", "pear"]}', '$.b', 4, '$.c', 'grape'); JSON_ARRAY_APPEND('{"a" : "foo","b": [1, 2, 3], "c": ["apple", "pear"]}', '$.b', 4, '$.c', 'grape') -{"a" : "foo","b": [1, 2, 3, 4], "c": ["apple", "pear", "grape"]} +{"a": "foo", "b": [1, 2, 3, 4], "c": ["apple", "pear", "grape"]} error ER_INVALID_JSON_PATH_WILDCARD select json_array_append( '[[], [], []]', '$[*]', 3, '$[*]', 4); json_array_append( '[[], [], []]', '$[*]', 3, '$[*]', 4) @@ -1673,7 +1669,7 @@ JSON_ARRAY_APPEND '$.b', 4, '$.c', "grape" ) -{ "a" : "foo", "b" : ["bar", 4], "c" : ["wibble", "grape"] } +{"a": "foo", "b": ["bar", 4], "c": ["wibble", "grape"]} SELECT JSON_ARRAY_APPEND ( '{ "a" : "foo", "b" : [ 1, 2, 3 ], "c" : [ "apple", "pear" ] }', @@ -1686,13 +1682,13 @@ JSON_ARRAY_APPEND '$.b', 4, '$.c', "grape" ) -{ "a" : "foo", "b" : [ 1, 2, 3 , 4], "c" : [ "apple", "pear" , "grape"] } +{"a": "foo", "b": [1, 2, 3, 4], "c": ["apple", "pear", "grape"]} # ---------------------------------------------------------------------- # Bug#21373874 ASSERTION `PARENT' FAILED # ---------------------------------------------------------------------- select json_array_append('{"a":1}', '$[0]', 100); json_array_append('{"a":1}', '$[0]', 100) -[{"a":1}, 100] +[{"a": 1}, 100] select json_array_append('3', '$[0]', 100); json_array_append('3', '$[0]', 100) [3, 100] @@ -1710,7 +1706,7 @@ json_insert('[1,2,3]', NULL, cast(1 as json)) NULL select json_insert('[1,2,3]', '$[3]', NULL); json_insert('[1,2,3]', '$[3]', NULL) -[1,2,3, null] +[1, 2, 3, null] select json_insert(NULL); ERROR 42000: Incorrect parameter count in the call to native function 'json_insert' select json_insert(NULL, NULL); @@ -1719,25 +1715,25 @@ select json_insert(NULL, NULL, NULL, NULL); ERROR 42000: Incorrect parameter count in the call to native function 'json_insert' select json_insert('[1,2,3]', '$[2]', 4); json_insert('[1,2,3]', '$[2]', 4) -[1,2,3] +[1, 2, 3] select json_insert('[1,2,3]', '$[3]', 4); json_insert('[1,2,3]', '$[3]', 4) -[1,2,3, 4] +[1, 2, 3, 4] select json_insert('[1,2,3]', '$[10]', 4); json_insert('[1,2,3]', '$[10]', 4) -[1,2,3, 4] +[1, 2, 3, 4] select json_insert('{"c":4}', '$.c', 4); json_insert('{"c":4}', '$.c', 4) -{"c":4} +{"c": 4} select json_insert('{"c":4}', '$.a', 4); json_insert('{"c":4}', '$.a', 4) -{"c":4, "a":4} +{"c": 4, "a": 4} select json_insert('1', '$', 4); json_insert('1', '$', 4) 1 select json_insert('1', '$[0]', 4); json_insert('1', '$[0]', 4) -[1, 4] +1 select json_insert('1', '$[1]', 4); json_insert('1', '$[1]', 4) [1, 4] @@ -1746,13 +1742,13 @@ json_insert('1', '$[10]', '4', '$[11]', 5) [1, "4", 5] select json_insert('[1,2,3]', '$[2][0]', 4); json_insert('[1,2,3]', '$[2][0]', 4) -[1,2,[3, 4]] +[1, 2, 3] select json_insert('[1,2,3]', '$[2][2]', 4); json_insert('[1,2,3]', '$[2][2]', 4) -[1,2,[3, 4]] +[1, 2, [3, 4]] select json_insert('{"a": 3}', '$.a[0]', 4); json_insert('{"a": 3}', '$.a[0]', 4) -{"a": [3, 4]} +{"a": 3} select json_insert('{"a": 3}', '$.a[1]', 4, '$.a[2]', '5'); json_insert('{"a": 3}', '$.a[1]', 4, '$.a[2]', '5') {"a": [3, 4, "5"]} @@ -1833,19 +1829,19 @@ json_insert(cast('{"a": 3}' as json), '$[1]', 6) [{"a": 3}, 6] SELECT JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', true); JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', true) -{ "a" : "foo", "b" : [ 1, 2, 3 ] } +{"a": "foo", "b": [1, 2, 3]} SELECT JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', 123); JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', 123) -{ "a" : "foo", "b" : [ 1, 2, 3 ] , "c":123} +{"a": "foo", "b": [1, 2, 3], "c": 123} SELECT JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', '123'); JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', '123') -{ "a" : "foo", "b" : [ 1, 2, 3 ] , "c":"123"} +{"a": "foo", "b": [1, 2, 3], "c": "123"} SELECT JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a[1]', true); JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a[1]', true) -{ "a" : ["foo", true], "b" : [ 1, 2, 3 ] } +{"a": ["foo", true], "b": [1, 2, 3]} SELECT JSON_INSERT('{ "a" : "foo"}', '$.b', true, '$.b', false); JSON_INSERT('{ "a" : "foo"}', '$.b', true, '$.b', false) -{ "a" : "foo", "b":true} +{"a": "foo", "b": true} SELECT JSON_INSERT ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', @@ -1858,7 +1854,7 @@ JSON_INSERT '$.a', true ) -{ "a" : "foo", "b" : [ 1, 2, 3 ] } +{"a": "foo", "b": [1, 2, 3]} SELECT JSON_INSERT ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', @@ -1871,7 +1867,7 @@ JSON_INSERT '$.c', 123 ) -{ "a" : "foo", "b" : [ 1, 2, 3 ] , "c":123} +{"a": "foo", "b": [1, 2, 3], "c": 123} SELECT JSON_INSERT ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', @@ -1884,7 +1880,7 @@ JSON_INSERT '$.c', '123' ) -{ "a" : "foo", "b" : [ 1, 2, 3 ] , "c":"123"} +{"a": "foo", "b": [1, 2, 3], "c": "123"} SELECT JSON_INSERT ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', @@ -1897,7 +1893,7 @@ JSON_INSERT '$.a[1]', true ) -{ "a" : ["foo", true], "b" : [ 1, 2, 3 ] } +{"a": ["foo", true], "b": [1, 2, 3]} SELECT JSON_INSERT ( '{ "a" : "foo"}', @@ -1910,7 +1906,7 @@ JSON_INSERT '$.b', true, '$.b', false ) -{ "a" : "foo", "b":true} +{"a": "foo", "b": true} # ---------------------------------------------------------------------- # Test of JSON_ARRAY_INSERT function. # ---------------------------------------------------------------------- @@ -1922,7 +1918,7 @@ json_array_insert('[1,2,3]', NULL, 1) NULL select json_array_insert('[1,2,3]', '$[3]', NULL); json_array_insert('[1,2,3]', '$[3]', NULL) -[1,2,3, null] +[1, 2, 3, null] select json_array_insert(NULL); ERROR 42000: Incorrect parameter count in the call to native function 'json_array_insert' select json_array_insert(NULL, NULL); @@ -1949,10 +1945,10 @@ json_array_insert( 'true', '$[1]', false ) true select json_array_insert( '{ "a": true }', '$.a[0]', false ); json_array_insert( '{ "a": true }', '$.a[0]', false ) -{ "a": true } +{"a": true} select json_array_insert( '{ "a": true }', '$.a[1]', false ); json_array_insert( '{ "a": true }', '$.a[1]', false ) -{ "a": true } +{"a": true} select json_array_insert( '[]', '$[0]', false ); json_array_insert( '[]', '$[0]', false ) [false] @@ -1970,19 +1966,19 @@ json_array_insert( '[true]', '$[2]', false ) [true, false] select json_array_insert( '{ "a": [] }', '$.a[0]', false ); json_array_insert( '{ "a": [] }', '$.a[0]', false ) -{ "a": [false] } +{"a": [false]} select json_array_insert( '{ "a": [] }', '$.a[1]', false ); json_array_insert( '{ "a": [] }', '$.a[1]', false ) -{ "a": [false] } +{"a": [false]} select json_array_insert( '{ "a": [true] }', '$.a[0]', false ); json_array_insert( '{ "a": [true] }', '$.a[0]', false ) -{ "a": [false, true] } +{"a": [false, true]} select json_array_insert( '{ "a": [true] }', '$.a[1]', false ); json_array_insert( '{ "a": [true] }', '$.a[1]', false ) -{ "a": [true, false] } +{"a": [true, false]} select json_array_insert( '{ "a": [true] }', '$.a[2]', false ); json_array_insert( '{ "a": [true] }', '$.a[2]', false ) -{ "a": [true, false] } +{"a": [true, false]} select json_array_insert( '[1, 2, 3, 4]', '$[0]', false ); json_array_insert( '[1, 2, 3, 4]', '$[0]', false ) [false, 1, 2, 3, 4] @@ -2003,34 +1999,34 @@ json_array_insert( '[1, 2, 3, 4]', '$[5]', false ) [1, 2, 3, 4, false] select json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[0]', false ); json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[0]', false ) -{ "a": [false, 1, 2, 3, 4] } +{"a": [false, 1, 2, 3, 4]} select json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[1]', false ); json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[1]', false ) -{ "a": [1, false, 2, 3, 4] } +{"a": [1, false, 2, 3, 4]} select json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[2]', false ); json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[2]', false ) -{ "a": [1, 2, false, 3, 4] } +{"a": [1, 2, false, 3, 4]} select json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[3]', false ); json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[3]', false ) -{ "a": [1, 2, 3, false, 4] } +{"a": [1, 2, 3, false, 4]} select json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[4]', false ); json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[4]', false ) -{ "a": [1, 2, 3, 4, false] } +{"a": [1, 2, 3, 4, false]} select json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[5]', false ); json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.a[5]', false ) -{ "a": [1, 2, 3, 4, false] } +{"a": [1, 2, 3, 4, false]} select json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.b[0]', false ); json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.b[0]', false ) -{ "a": [1, 2, 3, 4] } +{"a": [1, 2, 3, 4]} select json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.b[1]', false ); json_array_insert( '{ "a": [1, 2, 3, 4] }', '$.b[1]', false ) -{ "a": [1, 2, 3, 4] } +{"a": [1, 2, 3, 4]} select json_array_insert( '"a"', '$[0]', true ); json_array_insert( '"a"', '$[0]', true ) "a" select json_array_insert( '[ "a" ]', '$[0][0]', true ); json_array_insert( '[ "a" ]', '$[0][0]', true ) -[ "a" ] +["a"] select json_array_insert( '"a"', '$[1]', true ); json_array_insert( '"a"', '$[1]', true ) "a" @@ -2054,12 +2050,12 @@ Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' select json_array_insert( '[ 1, 2, 3 ]', '$[1]', true, '$[1]', false ); json_array_insert( '[ 1, 2, 3 ]', '$[1]', true, '$[1]', false ) -[ 1, false, true, 2, 3 ] +[1, false, true, 2, 3] select json_array_insert( '[ 1, 2, 3 ]', '$[1]', cast( '[ "a", "b", "c", "d" ]' as json ), '$[1][2]', false ); json_array_insert( '[ 1, 2, 3 ]', '$[1]', cast( '[ "a", "b", "c", "d" ]' as json ), '$[1][2]', false ) -[ 1, [ "a", "b", false, "c", "d" ], 2, 3 ] +[1, ["a", "b", false, "c", "d"], 2, 3] error ER_INVALID_JSON_TEXT_IN_PARAM SELECT JSON_ARRAY_INSERT(JSON_EXTRACT('[1', '$'), '$[0]', 1); JSON_ARRAY_INSERT(JSON_EXTRACT('[1', '$'), '$[0]', 1) @@ -2069,7 +2065,7 @@ Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_extract error ER_INVALID_JSON_TEXT_IN_PARAM select json_array_insert( '[ 1, 2, 3 ]', '$[1]', json_extract( '[', '$' ) ); json_array_insert( '[ 1, 2, 3 ]', '$[1]', json_extract( '[', '$' ) ) -[ 1, null, 2, 3 ] +[1, null, 2, 3] Warnings: Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_extract' # ---------------------------------------------------------------------- @@ -2083,7 +2079,7 @@ json_set('[1,2,3]', NULL, cast(1 as json)) NULL select json_set('[1,2,3]', '$[3]', NULL); json_set('[1,2,3]', '$[3]', NULL) -[1,2,3, null] +[1, 2, 3, null] select json_set(NULL); ERROR 42000: Incorrect parameter count in the call to native function 'json_set' select json_set(NULL, NULL); @@ -2093,24 +2089,25 @@ ERROR 42000: Incorrect parameter count in the call to native function 'json_set' error ER_INVALID_JSON_TEXT_IN_PARAM SELECT JSON_SET('{}', '$.name', JSON_EXTRACT('', '$')); JSON_SET('{}', '$.name', JSON_EXTRACT('', '$')) -{, "name":null} +NULL Warnings: Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_extract' +Warning 4038 Syntax error in JSON text in argument 1 to function 'json_set' at position 2 select json_set('[1,2,3]', '$[2]', 4); json_set('[1,2,3]', '$[2]', 4) -[1,2,4] +[1, 2, 4] select json_set('[1,2,3]', '$[3]', 4); json_set('[1,2,3]', '$[3]', 4) -[1,2,3, 4] +[1, 2, 3, 4] select json_set('[1,2,3]', '$[10]', 4); json_set('[1,2,3]', '$[10]', 4) -[1,2,3, 4] +[1, 2, 3, 4] select json_set('{"c":4}', '$.c', 5); json_set('{"c":4}', '$.c', 5) -{"c":5} +{"c": 5} select json_set('{"c":4}', '$.a', 5); json_set('{"c":4}', '$.a', 5) -{"c":4, "a":5} +{"c": 4, "a": 5} select json_set('1', '$', 4); json_set('1', '$', 4) 4 @@ -2125,10 +2122,10 @@ json_set('1', '$[10]', '4', '$[11]', 5) [1, "4", 5] select json_set('[1,2,3]', '$[2][0]', 4); json_set('[1,2,3]', '$[2][0]', 4) -[1,2,4] +[1, 2, 4] select json_set('[1,2,3]', '$[2][2]', 4); json_set('[1,2,3]', '$[2][2]', 4) -[1,2,[3, 4]] +[1, 2, [3, 4]] select json_set('{"a": 3}', '$.a[0]', 4); json_set('{"a": 3}', '$.a[0]', 4) {"a": 4} @@ -2147,26 +2144,26 @@ JSON_OBJECT()); JSON_SET('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', JSON_OBJECT()) -{ "a" : {}, "b" : [ 1, 2, 3 ] } +{"a": {}, "b": [1, 2, 3]} SELECT JSON_SET('{ "a" : "foo"}', '$.a', JSON_OBJECT( 'b', false ), '$.a.c', true); JSON_SET('{ "a" : "foo"}', '$.a', JSON_OBJECT( 'b', false ), '$.a.c', true) -{ "a" : {"b": false, "c":true}} +{"a": {"b": false, "c": true}} select json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', cast('{}' as json)); json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', cast('{}' as json)) -{ "a" : {}, "b" : [ 1, 2, 3 ] } +{"a": {}, "b": [1, 2, 3]} select json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', cast('[true, false]' as json)); json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', cast('[true, false]' as json)) -{ "a" : "foo", "b" : [ 1, 2, 3 ] , "c":[true, false]} +{"a": "foo", "b": [1, 2, 3], "c": [true, false]} select json_set('1', '$[3]', 2); json_set('1', '$[3]', 2) [1, 2] @@ -2174,7 +2171,7 @@ select json_set('{ "a" : "foo"}', '$.a', cast('{"b": false}' as json), '$.a.c', true); json_set('{ "a" : "foo"}', '$.a', cast('{"b": false}' as json), '$.a.c', true) -{ "a" : {"b": false, "c":true}} +{"a": {"b": false, "c": true}} SELECT JSON_SET ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', @@ -2187,7 +2184,7 @@ JSON_SET '$.a', JSON_OBJECT() ) -{ "a" : {}, "b" : [ 1, 2, 3 ] } +{"a": {}, "b": [1, 2, 3]} SELECT JSON_SET ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', @@ -2200,7 +2197,7 @@ JSON_SET '$.c', JSON_ARRAY( true, false ) ) -{ "a" : "foo", "b" : [ 1, 2, 3 ] , "c":[true, false]} +{"a": "foo", "b": [1, 2, 3], "c": [true, false]} SELECT JSON_SET ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', @@ -2213,7 +2210,7 @@ JSON_SET '$.c', JSON_ARRAY( CAST( 'true' AS JSON ), CAST( 'false' AS JSON ) ) ) -{ "a" : "foo", "b" : [ 1, 2, 3 ] , "c":[true, false]} +{"a": "foo", "b": [1, 2, 3], "c": [true, false]} SELECT JSON_SET ( '1', @@ -2239,7 +2236,7 @@ JSON_SET '$.a', JSON_OBJECT( 'b', false ), '$.a.c', true ) -{ "a" : {"b": false, "c":true}} +{"a": {"b": false, "c": true}} # ---------------------------------------------------------------------- # Test of JSON_REPLACE function. # ---------------------------------------------------------------------- @@ -2251,7 +2248,7 @@ json_replace('[1,2,3]', NULL, cast(1 as json)) NULL select json_replace('[1,2,3]', '$[2]', NULL); json_replace('[1,2,3]', '$[2]', NULL) -[1,2,null] +[1, 2, null] select json_replace(NULL); ERROR 42000: Incorrect parameter count in the call to native function 'json_replace' select json_replace(NULL, NULL); @@ -2260,19 +2257,19 @@ select json_replace(NULL, NULL, NULL, NULL); ERROR 42000: Incorrect parameter count in the call to native function 'json_replace' select json_replace('[1,2,3]', '$[2]', 4); json_replace('[1,2,3]', '$[2]', 4) -[1,2,4] +[1, 2, 4] select json_replace('[1,2,3]', '$[3]', 4); json_replace('[1,2,3]', '$[3]', 4) -[1,2,3] +[1, 2, 3] select json_replace('[1,2,3]', '$[10]', 4); json_replace('[1,2,3]', '$[10]', 4) -[1,2,3] +[1, 2, 3] select json_replace('{"c":4}', '$.c', 5); json_replace('{"c":4}', '$.c', 5) -{"c":5} +{"c": 5} select json_replace('{"c":4}', '$.a', 5); json_replace('{"c":4}', '$.a', 5) -{"c":4} +{"c": 4} select json_replace('1', '$', 4); json_replace('1', '$', 4) 4 @@ -2287,10 +2284,10 @@ json_replace('1', '$[10]', '4', '$[11]', 5) 1 select json_replace('[1,2,3]', '$[2][0]', 4); json_replace('[1,2,3]', '$[2][0]', 4) -[1,2,4] +[1, 2, 4] select json_replace('[1,2,3]', '$[2][2]', 4); json_replace('[1,2,3]', '$[2][2]', 4) -[1,2,3] +[1, 2, 3] select json_replace('{"a": 3}', '$.a[0]', 4); json_replace('{"a": 3}', '$.a[0]', 4) {"a": 4} @@ -2303,21 +2300,21 @@ true); JSON_REPLACE('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', true) -{ "a" : "foo", "b" : [ 1, 2, 3 ] } +{"a": "foo", "b": [1, 2, 3]} SELECT JSON_REPLACE('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a[0]', true); JSON_REPLACE('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a[0]', true) -{ "a" : true, "b" : [ 1, 2, 3 ] } +{"a": true, "b": [1, 2, 3]} SELECT JSON_REPLACE('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.b[5]', true); JSON_REPLACE('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.b[5]', true) -{ "a" : "foo", "b" : [ 1, 2, 3 ] } +{"a": "foo", "b": [1, 2, 3]} # ---------------------------------------------------------------------- # Test of JSON_ARRAY function. # ---------------------------------------------------------------------- @@ -3231,38 +3228,38 @@ prepare json_stmt5 FROM 'select json_array_append( ''{ "keyA": [1, 2], "keyB": [ set @mypath = '$.keyA'; execute json_stmt5 USING @mypath; json_array_append( '{ "keyA": [1, 2], "keyB": [3, 4] }', ?, 5 ) -{ "keyA": [1, 2, 5], "keyB": [3, 4] } +{"keyA": [1, 2, 5], "keyB": [3, 4]} set @mypath = '$.keyB'; execute json_stmt5 USING @mypath; json_array_append( '{ "keyA": [1, 2], "keyB": [3, 4] }', ?, 5 ) -{ "keyA": [1, 2], "keyB": [3, 4, 5] } +{"keyA": [1, 2], "keyB": [3, 4, 5]} prepare json_stmt6 FROM 'select json_insert( ''{ "keyA": [1, 2], "keyB": [3, 4] }'', ?, 5 )'; set @mypath = '$.keyA[2]'; execute json_stmt6 USING @mypath; json_insert( '{ "keyA": [1, 2], "keyB": [3, 4] }', ?, 5 ) -{ "keyA": [1, 2, 5], "keyB": [3, 4] } +{"keyA": [1, 2, 5], "keyB": [3, 4]} set @mypath = '$.keyB[2]'; execute json_stmt6 USING @mypath; json_insert( '{ "keyA": [1, 2], "keyB": [3, 4] }', ?, 5 ) -{ "keyA": [1, 2], "keyB": [3, 4, 5] } +{"keyA": [1, 2], "keyB": [3, 4, 5]} prepare json_stmt7 FROM 'select json_set( ''{ "keyA": [1, 2], "keyB": [3, 4] }'', ?, 5 )'; set @mypath = '$.keyA[2]'; execute json_stmt7 USING @mypath; json_set( '{ "keyA": [1, 2], "keyB": [3, 4] }', ?, 5 ) -{ "keyA": [1, 2, 5], "keyB": [3, 4] } +{"keyA": [1, 2, 5], "keyB": [3, 4]} set @mypath = '$.keyB[2]'; execute json_stmt7 USING @mypath; json_set( '{ "keyA": [1, 2], "keyB": [3, 4] }', ?, 5 ) -{ "keyA": [1, 2], "keyB": [3, 4, 5] } +{"keyA": [1, 2], "keyB": [3, 4, 5]} prepare json_stmt8 FROM 'select json_replace( ''{ "keyA": [1, 2], "keyB": [3, 4] }'', ?, 5 )'; set @mypath = '$.keyA[1]'; execute json_stmt8 USING @mypath; json_replace( '{ "keyA": [1, 2], "keyB": [3, 4] }', ?, 5 ) -{ "keyA": [1, 5], "keyB": [3, 4] } +{"keyA": [1, 5], "keyB": [3, 4]} set @mypath = '$.keyB[1]'; execute json_stmt8 USING @mypath; json_replace( '{ "keyA": [1, 2], "keyB": [3, 4] }', ?, 5 ) -{ "keyA": [1, 2], "keyB": [3, 5] } +{"keyA": [1, 2], "keyB": [3, 5]} prepare json_stmt9 FROM 'select json_search( ''{ "keyA": [ "foot" ], "keyB": [ "food" ] }'', ''all'', ''foo%'', null, ? )'; set @mypath = '$.keyA'; execute json_stmt9 USING @mypath; @@ -3276,11 +3273,11 @@ prepare json_stmt10 FROM 'select json_remove( ''{ "keyA": [ "foot" ], "keyB": [ set @mypath = '$.keyA'; execute json_stmt10 USING @mypath; json_remove( '{ "keyA": [ "foot" ], "keyB": [ "food" ] }', ? ) -{ "keyB": [ "food" ] } +{"keyB": ["food"]} set @mypath = '$.keyB'; execute json_stmt10 USING @mypath; json_remove( '{ "keyA": [ "foot" ], "keyB": [ "food" ] }', ? ) -{ "keyA": [ "foot" ]} +{"keyA": ["foot"]} prepare json_stmt11 FROM 'select json_contains_path( ''{ "keyA": true }'', ?, ''$.keyA'', ''$.keyB'' )'; set @mypath = 'one'; execute json_stmt11 USING @mypath; @@ -3502,14 +3499,10 @@ JSON_SET('[]', '$[0]', 100) [100] SELECT JSON_SET('[]', '$[0][0]', 100); JSON_SET('[]', '$[0][0]', 100) -NULL -Warnings: -Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_set' +[] SELECT JSON_SET('[]', '$[0][0][0]', 100); JSON_SET('[]', '$[0][0][0]', 100) -NULL -Warnings: -Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_set' +[] SELECT JSON_SET('[1]', '$', 100); JSON_SET('[1]', '$', 100) 100 @@ -3566,14 +3559,10 @@ JSON_REPLACE('[]', '$[0]', 100) [] SELECT JSON_REPLACE('[]', '$[0][0]', 100); JSON_REPLACE('[]', '$[0][0]', 100) -NULL -Warnings: -Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_update' +[] SELECT JSON_REPLACE('[]', '$[0][0][0]', 100); JSON_REPLACE('[]', '$[0][0][0]', 100) -NULL -Warnings: -Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_update' +[] SELECT JSON_REPLACE('[1]', '$', 100); JSON_REPLACE('[1]', '$', 100) 100 diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test index 546b5db77e3..2ed5282abc0 100644 --- a/mysql-test/t/func_json.test +++ b/mysql-test/t/func_json.test @@ -200,3 +200,23 @@ select json_set('{"a":12}', '$[0][1].a', 100); select json_value('{"\\"key1":123}', '$."\\"key1"'); select json_value('{"\\"key1\\"":123}', '$."\\"key1\\""'); select json_value('{"key 1":123}', '$."key 1"'); + +select json_contains_path('{"a":[{"c":[1,{"a":[0,1,2]},3]}], "b":[1,2,3]}', 'one', "$**.a[2]"); +select json_contains_path('{"a":[{"c":[1,{"a":[0,1,2]},3]}], "b":[1,2,3]}', 'one', "$**.a[3]"); + +select json_extract( '[1]', '$[0][0]' ); +select json_extract( '[1]', '$[1][0]' ); +select json_extract( '[1]', '$**[0]' ); +select json_extract( '[1]', '$**[0][0]' ); + +select json_insert('1', '$[0]', 4); +select json_replace('1', '$[0]', 4); +select json_set('1', '$[0]', 4); +select json_set('1', '$[1]', 4); +select json_replace('1', '$[1]', 4); +SELECT json_insert('[]', '$[0][0]', 100); +SELECT json_insert('1', '$[0][0]', 100); +SELECT json_replace('1', '$[0][0]', 100); +SELECT json_replace('[]', '$[0][0]', 100); +SELECT json_set('[]', '$[0][0]', 100); +SELECT json_set('[]', '$[0][0][0]', 100); diff --git a/sql/item_create.cc b/sql/item_create.cc index add8da67810..d2be36e105f 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -1762,6 +1762,46 @@ protected: }; +class Create_func_json_compact : public Create_func_arg1 +{ +public: + virtual Item *create_1_arg(THD *thd, Item *arg1); + + static Create_func_json_compact s_singleton; + +protected: + Create_func_json_compact() {} + virtual ~Create_func_json_compact() {} +}; + + +class Create_func_json_loose : public Create_func_arg1 +{ +public: + virtual Item *create_1_arg(THD *thd, Item *arg1); + + static Create_func_json_loose s_singleton; + +protected: + Create_func_json_loose() {} + virtual ~Create_func_json_loose() {} +}; + + +class Create_func_json_detailed : public Create_func_arg2 +{ +public: + virtual Item *create_2_arg(THD *thd, Item *arg1, Item *arg2); + + static Create_func_json_detailed s_singleton; + +protected: + Create_func_json_detailed() {} + virtual ~Create_func_json_detailed() {} +}; + + + class Create_func_json_type : public Create_func_arg1 { public: @@ -5003,6 +5043,35 @@ Create_func_json_exists::create_2_arg(THD *thd, Item *arg1, Item *arg2) } +Create_func_json_detailed Create_func_json_detailed::s_singleton; + +Item* +Create_func_json_detailed::create_2_arg(THD *thd, Item *arg1, Item *arg2) +{ + return new (thd->mem_root) Item_func_json_format(thd, arg1, arg2); +} + + +Create_func_json_loose Create_func_json_loose::s_singleton; + +Item* +Create_func_json_loose::create_1_arg(THD *thd, Item *arg1) +{ + return new (thd->mem_root) Item_func_json_format(thd, arg1, + Item_func_json_format::LOOSE); +} + + +Create_func_json_compact Create_func_json_compact::s_singleton; + +Item* +Create_func_json_compact::create_1_arg(THD *thd, Item *arg1) +{ + return new (thd->mem_root) Item_func_json_format(thd, arg1, + Item_func_json_format::COMPACT); +} + + Create_func_json_valid Create_func_json_valid::s_singleton; Item* @@ -6728,14 +6797,17 @@ static Native_func_registry func_array[] = { { C_STRING_WITH_LEN("JSON_ARRAY") }, BUILDER(Create_func_json_array)}, { { C_STRING_WITH_LEN("JSON_ARRAY_APPEND") }, BUILDER(Create_func_json_array_append)}, { { C_STRING_WITH_LEN("JSON_ARRAY_INSERT") }, BUILDER(Create_func_json_array_insert)}, + { { C_STRING_WITH_LEN("JSON_COMPACT") }, BUILDER(Create_func_json_compact)}, { { C_STRING_WITH_LEN("JSON_CONTAINS") }, BUILDER(Create_func_json_contains)}, { { C_STRING_WITH_LEN("JSON_CONTAINS_PATH") }, BUILDER(Create_func_json_contains_path)}, { { C_STRING_WITH_LEN("JSON_DEPTH") }, BUILDER(Create_func_json_depth)}, + { { C_STRING_WITH_LEN("JSON_DETAILED") }, BUILDER(Create_func_json_detailed)}, { { C_STRING_WITH_LEN("JSON_EXISTS") }, BUILDER(Create_func_json_exists)}, { { C_STRING_WITH_LEN("JSON_EXTRACT") }, BUILDER(Create_func_json_extract)}, { { C_STRING_WITH_LEN("JSON_INSERT") }, BUILDER(Create_func_json_insert)}, { { C_STRING_WITH_LEN("JSON_KEYS") }, BUILDER(Create_func_json_keys)}, { { C_STRING_WITH_LEN("JSON_LENGTH") }, BUILDER(Create_func_json_length)}, + { { C_STRING_WITH_LEN("JSON_LOOSE") }, BUILDER(Create_func_json_loose)}, { { C_STRING_WITH_LEN("JSON_MERGE") }, BUILDER(Create_func_json_merge)}, { { C_STRING_WITH_LEN("JSON_QUERY") }, BUILDER(Create_func_json_query)}, { { C_STRING_WITH_LEN("JSON_QUOTE") }, BUILDER(Create_func_json_quote)}, diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc index d1f82bc94da..73b0e6b0870 100644 --- a/sql/item_jsonfunc.cc +++ b/sql/item_jsonfunc.cc @@ -113,6 +113,100 @@ static int st_append_escaped(String *s, const String *a) } +static int json_nice(json_engine_t *je, String *nice_js, + Item_func_json_format::formats mode) +{ + int depth= 0; + const char *comma, *colon; + uint comma_len, colon_len; + int first_value= 1; + + DBUG_ASSERT(je->s.cs == nice_js->charset()); + + if (mode == Item_func_json_format::LOOSE) + { + comma= ", "; + comma_len= 2; + colon= "\": "; + colon_len= 3; + } + else + { + comma= ","; + comma_len= 1; + colon= "\":"; + colon_len= 2; + } + + do + { + switch (je->state) + { + case JST_KEY: + { + const uchar *key_start= je->s.c_str; + const uchar *key_end; + + while (json_read_keyname_chr(je) == 0) + key_end= je->s.c_str; + + if (je->s.error) + goto error; + + if (!first_value) + nice_js->append(comma, comma_len); + + nice_js->append("\"", 1); + append_simple(nice_js, key_start, key_end - key_start); + nice_js->append(colon, colon_len); + } + /* now we have key value to handle, so no 'break'. */ + DBUG_ASSERT(je->state == JST_VALUE); + goto handle_value; + + case JST_VALUE: + if (!first_value) + nice_js->append(comma, comma_len); + +handle_value: + if (json_read_value(je)) + goto error; + if (json_value_scalar(je)) + { + if (append_simple(nice_js, je->value_begin, + je->value_end - je->value_begin)) + goto error; + + first_value= 0; + } + else + { + nice_js->append((je->value_type == JSON_VALUE_OBJECT) ? "{" : "[", 1); + first_value= 1; + depth++; + } + + break; + + case JST_OBJ_END: + case JST_ARRAY_END: + depth--; + nice_js->append((je->state == JST_OBJ_END) ? "}": "]", 1); + first_value= 0; + break; + + default: + break; + }; + } while (json_scan_next(je) == 0); + + return je->s.error; + +error: + return 1; +} + + #define report_json_error(js, je, n_param) \ report_json_error_ex(js, je, func_name(), n_param, \ Sql_condition::WARN_LEVEL_WARN) @@ -554,11 +648,11 @@ void Item_func_json_extract::fix_length_and_dec() static bool path_exact(const json_path_with_flags *paths_list, int n_paths, - const json_path_t *p) + const json_path_t *p, enum json_value_types vt) { for (; n_paths > 0; n_paths--, paths_list++) { - if (json_path_compare(&paths_list->p, p) == 0) + if (json_path_compare(&paths_list->p, p, vt) == 0) return TRUE; } return FALSE; @@ -566,11 +660,11 @@ static bool path_exact(const json_path_with_flags *paths_list, int n_paths, static bool path_ok(const json_path_with_flags *paths_list, int n_paths, - const json_path_t *p) + const json_path_t *p, enum json_value_types vt) { for (; n_paths > 0; n_paths--, paths_list++) { - if (json_path_compare(&paths_list->p, p) >= 0) + if (json_path_compare(&paths_list->p, p, vt) >= 0) return TRUE; } return FALSE; @@ -624,7 +718,7 @@ String *Item_func_json_extract::val_str(String *str) while (json_get_path_next(&je, &p) == 0) { - if (!path_exact(paths, arg_count-1, &p)) + if (!path_exact(paths, arg_count-1, &p, je.value_type)) continue; value= je.value_begin; @@ -661,10 +755,18 @@ String *Item_func_json_extract::val_str(String *str) goto return_null; } - if (possible_multiple_values && str->append("]")) + if (possible_multiple_values && str->append("]", 1)) goto error; /* Out of memory. */ - return str; + js= str; + json_scan_start(&je, js->charset(),(const uchar *) js->ptr(), + (const uchar *) js->ptr() + js->length()); + tmp_js.length(0); + tmp_js.set_charset(js->charset()); + if (json_nice(&je, &tmp_js, Item_func_json_format::LOOSE)) + goto error; + + return &tmp_js; error: report_json_error(js, &je, 0); @@ -1153,7 +1255,7 @@ longlong Item_func_json_contains_path::val_int() json_path_with_flags *c_path= paths; for (; n_path > 0; n_path--, c_path++) { - if (json_path_compare(&c_path->p, &p) >= 0) + if (json_path_compare(&c_path->p, &p, je.value_type) >= 0) { if (mode_one) { @@ -1424,7 +1526,14 @@ String *Item_func_json_array_append::val_str(String *str) } } - return js; + json_scan_start(&je, js->charset(),(const uchar *) js->ptr(), + (const uchar *) js->ptr() + js->length()); + str->length(0); + str->set_charset(js->charset()); + if (json_nice(&je, str, Item_func_json_format::LOOSE)) + goto js_error; + + return str; js_error: report_json_error(js, &je, 0); @@ -1558,7 +1667,14 @@ String *Item_func_json_array_insert::val_str(String *str) } } - return js; + json_scan_start(&je, js->charset(),(const uchar *) js->ptr(), + (const uchar *) js->ptr() + js->length()); + str->length(0); + str->set_charset(js->charset()); + if (json_nice(&je, str, Item_func_json_format::LOOSE)) + goto js_error; + + return str; js_error: report_json_error(js, &je, 0); @@ -1690,8 +1806,15 @@ String *Item_func_json_merge::val_str(String *str) } } + json_scan_start(&je1, js1->charset(),(const uchar *) js1->ptr(), + (const uchar *) js1->ptr() + js1->length()); + str->length(0); + str->set_charset(js1->charset()); + if (json_nice(&je1, str, Item_func_json_format::LOOSE)) + goto error_return; + null_value= 0; - return js1; + return str; error_return: if (je1.s.error) @@ -1970,6 +2093,7 @@ String *Item_func_json_insert::val_str(String *str) { if (je.s.error) goto js_error; + continue; } if (json_read_value(&je)) @@ -1986,7 +2110,16 @@ String *Item_func_json_insert::val_str(String *str) int do_array_autowrap; if (mode_insert) - do_array_autowrap= !mode_replace || lp->n_item; + { + if (mode_replace) + do_array_autowrap= lp->n_item > 0; + else + { + if (lp->n_item == 0) + continue; + do_array_autowrap= 1; + } + } else { if (lp->n_item) @@ -2124,7 +2257,14 @@ continue_point: } } - return js; + json_scan_start(&je, js->charset(),(const uchar *) js->ptr(), + (const uchar *) js->ptr() + js->length()); + str->length(0); + str->set_charset(js->charset()); + if (json_nice(&je, str, Item_func_json_format::LOOSE)) + goto js_error; + + return str; js_error: report_json_error(js, &je, 0); @@ -2300,7 +2440,14 @@ v_found: } } - return js; + json_scan_start(&je, js->charset(),(const uchar *) js->ptr(), + (const uchar *) js->ptr() + js->length()); + str->length(0); + str->set_charset(js->charset()); + if (json_nice(&je, str, Item_func_json_format::LOOSE)) + goto js_error; + + return str; js_error: report_json_error(js, &je, 0); @@ -2540,7 +2687,7 @@ String *Item_func_json_search::val_str(String *str) { if (json_value_scalar(&je)) { - if ((arg_count < 5 || path_ok(paths, arg_count - 4, &p)) && + if ((arg_count < 5 || path_ok(paths, arg_count - 4, &p, je.value_type)) && compare_json_value_wild(&je, s_str) != 0) { ++n_path_found; @@ -2609,3 +2756,52 @@ String *Item_json_typecast::val_str(String *str) return vs; } + +const char *Item_func_json_format::func_name() const +{ + switch (fmt) + { + case COMPACT: + return "json_compact"; + case LOOSE: + return "json_loose"; + case DETAILED: + return "json_detailed"; + default: + DBUG_ASSERT(0); + }; + + return ""; +} + + +void Item_func_json_format::fix_length_and_dec() +{ + decimals= 0; + max_length= args[0]->max_length; +} + + +String *Item_func_json_format::val_str(String *str) +{ + String *js= args[0]->val_str(&tmp_js); + json_engine_t je; + if ((null_value= args[0]->null_value)) + return 0; + + json_scan_start(&je, js->charset(), (const uchar *) js->ptr(), + (const uchar *) js->ptr()+js->length()); + + str->length(0); + str->set_charset(js->charset()); + if (json_nice(&je, str, fmt)) + { + null_value= 1; + report_json_error(js, &je, 0); + return 0; + } + + return str; +} + + diff --git a/sql/item_jsonfunc.h b/sql/item_jsonfunc.h index 2ce94985a00..941123041d2 100644 --- a/sql/item_jsonfunc.h +++ b/sql/item_jsonfunc.h @@ -427,4 +427,30 @@ public: }; +class Item_func_json_format: public Item_str_func +{ +public: + enum formats + { + NONE, + COMPACT, + LOOSE, + DETAILED + }; +protected: + formats fmt; + String tmp_js; +public: + Item_func_json_format(THD *thd, Item *js, formats format): + Item_str_func(thd, js), fmt(format) {} + Item_func_json_format(THD *thd, Item *js, Item *tabsize): + Item_str_func(thd, js, tabsize), fmt(DETAILED) {} + const char *func_name() const; + void fix_length_and_dec(); + String *val_str(String *str); + Item *get_copy(THD *thd, MEM_ROOT *mem_root) + { return get_item_copy(thd, mem_root, this); } +}; + + #endif /* ITEM_JSONFUNC_INCLUDED */ diff --git a/strings/json_lib.c b/strings/json_lib.c index 20dc1b3d718..cc3a8adf0aa 100644 --- a/strings/json_lib.c +++ b/strings/json_lib.c @@ -1001,6 +1001,7 @@ enum json_path_states { PS_LAX, /* Parse the 'lax' keyword. */ PS_PT, /* New path's step begins. */ PS_AR, /* Parse array step. */ + PS_SAR, /* space after the '['. */ PS_AWD, /* Array wildcard. */ PS_Z, /* '0' (as an array item number). */ PS_INT, /* Parse integer (as an array item number). */ @@ -1041,7 +1042,10 @@ static int json_path_transitions[N_PATH_STATES][N_PATH_CLASSES]= JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, JE_BAD_CHR}, /* AR */ { JE_EOS, JE_SYN, PS_AWD, JE_SYN, PS_PT, JE_SYN, PS_Z, - PS_INT, JE_SYN, JE_SYN, PS_AR, JE_SYN, JE_SYN, JE_SYN, + PS_INT, JE_SYN, JE_SYN, PS_SAR, JE_SYN, JE_SYN, JE_SYN, + JE_NOT_JSON_CHR, JE_BAD_CHR}, +/* SAR */ { JE_EOS, JE_SYN, PS_AWD, JE_SYN, PS_PT, JE_SYN, PS_Z, + PS_INT, JE_SYN, JE_SYN, PS_SAR, JE_SYN, JE_SYN, JE_SYN, JE_NOT_JSON_CHR, JE_BAD_CHR}, /* AWD */ { JE_EOS, JE_SYN, JE_SYN, JE_SYN, PS_PT, JE_SYN, JE_SYN, JE_SYN, JE_SYN, JE_SYN, PS_AS, JE_SYN, JE_SYN, JE_SYN, @@ -1722,45 +1726,103 @@ int json_get_path_next(json_engine_t *je, json_path_t *p) } -int json_path_compare(const json_path_t *a, const json_path_t *b) +int json_path_parts_compare( + const json_path_step_t *a, const json_path_step_t *a_end, + const json_path_step_t *b, const json_path_step_t *b_end, + enum json_value_types vt) { - const json_path_step_t *sa= a->steps + 1; - const json_path_step_t *sb= b->steps + 1; + int res, res2; - if (a->last_step - sa > b->last_step - sb) - return -2; - - while (sa <= a->last_step) + while (a <= a_end) { - if (sb > b->last_step) - return -2; - - if (!((sa->type & sb->type) & JSON_PATH_KEY_OR_ARRAY)) - goto step_failed; - - if (sa->type & JSON_PATH_ARRAY) + if (b > b_end) { - if (!(sa->type & JSON_PATH_WILD) && sa->n_item != sb->n_item) + while (vt != JSON_VALUE_ARRAY && + (a->type & JSON_PATH_ARRAY_WILD) == JSON_PATH_ARRAY && + a->n_item == 0) + { + if (++a > a_end) + return 0; + } + return -2; + } + + DBUG_ASSERT((b->type & (JSON_PATH_WILD | JSON_PATH_DOUBLE_WILD)) == 0); + + + if (a->type & JSON_PATH_ARRAY) + { + if (b->type & JSON_PATH_ARRAY) + { + if ((a->type & JSON_PATH_WILD) || a->n_item == b->n_item) + goto step_fits; goto step_failed; + } + if (a->n_item == 0) + goto step_fits_autowrap; + goto step_failed; } else /* JSON_PATH_KEY */ { - if (!(sa->type & JSON_PATH_WILD) && - (sa->key_end - sa->key != sb->key_end - sb->key || - memcmp(sa->key, sb->key, sa->key_end - sa->key) != 0)) + if (!(b->type & JSON_PATH_KEY)) goto step_failed; + + if (!(a->type & JSON_PATH_WILD) && + (a->key_end - a->key != b->key_end - b->key || + memcmp(a->key, b->key, a->key_end - a->key) != 0)) + goto step_failed; + + goto step_fits; } - sb++; - sa++; +step_failed: + if (!(a->type & JSON_PATH_DOUBLE_WILD)) + return -1; + b++; continue; -step_failed: - if (!(sa->type & JSON_PATH_DOUBLE_WILD)) - return -1; - sb++; +step_fits: + b++; + if (!(a->type & JSON_PATH_DOUBLE_WILD)) + { + a++; + continue; + } + + /* Double wild handling needs recursions. */ + res= json_path_parts_compare(a+1, a_end, b, b_end, vt); + if (res == 0) + return 0; + + res2= json_path_parts_compare(a, a_end, b, b_end, vt); + + return (res2 >= 0) ? res2 : res; + +step_fits_autowrap: + if (!(a->type & JSON_PATH_DOUBLE_WILD)) + { + a++; + continue; + } + + /* Double wild handling needs recursions. */ + res= json_path_parts_compare(a+1, a_end, b+1, b_end, vt); + if (res == 0) + return 0; + + res2= json_path_parts_compare(a, a_end, b+1, b_end, vt); + + return (res2 >= 0) ? res2 : res; + } - return sb <= b->last_step; + return b <= b_end; } +int json_path_compare(const json_path_t *a, const json_path_t *b, + enum json_value_types vt) +{ + return json_path_parts_compare(a->steps+1, a->last_step, + b->steps+1, b->last_step, vt); +} + From 5a21094a4319ba65f7568937ff57fa8b00c2483b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 3 Feb 2017 08:32:58 +0200 Subject: [PATCH 140/258] Simplify innodb.innochecksum test. There already are ROW_FORMAT=COMPRESSED tests in innodb_zip.innochecksum_2. Use shutdown_mysqld.inc and start_mysqld.inc. --- mysql-test/suite/innodb/r/innochecksum.result | 19 +----- mysql-test/suite/innodb/t/innochecksum.test | 58 +++---------------- 2 files changed, 9 insertions(+), 68 deletions(-) diff --git a/mysql-test/suite/innodb/r/innochecksum.result b/mysql-test/suite/innodb/r/innochecksum.result index 6fc613f3d1f..2d8a2652309 100644 --- a/mysql-test/suite/innodb/r/innochecksum.result +++ b/mysql-test/suite/innodb/r/innochecksum.result @@ -1,22 +1,5 @@ -# Create and populate a table CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) ENGINE=InnoDB; INSERT INTO t1 (b) VALUES ('corrupt me'); INSERT INTO t1 (b) VALUES ('corrupt me'); -CREATE TABLE t2 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) -ROW_FORMAT=COMPRESSED ENGINE=InnoDB ; -INSERT INTO t2(b) SELECT b from t1; -CREATE TABLE t3 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) -ROW_FORMAT=COMPRESSED ENGINE=InnoDB KEY_BLOCK_SIZE=16; -INSERT INTO t3(b) SELECT b from t1; -# Write file to make mysql-test-run.pl expect the "crash", but don't -# start it until it's told to -# We give 30 seconds to do a clean shutdown because we do not want -# to redo apply the pages of t1.ibd at the time of recovery. -# We want SQL to initiate the first access to t1.ibd. -# Wait until disconnected. # Run innochecksum on t1 -# Run innochecksum on t2 -# Run innochecksum on t3 -# Write file to make mysql-test-run.pl start up the server again -# Cleanup -DROP TABLE t1, t2, t3; +DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/innochecksum.test b/mysql-test/suite/innodb/t/innochecksum.test index 11720ce926d..79896ed1e3f 100644 --- a/mysql-test/suite/innodb/t/innochecksum.test +++ b/mysql-test/suite/innodb/t/innochecksum.test @@ -2,17 +2,10 @@ # Test innochecksum # -# Don't test under embedded -source include/not_embedded.inc; -# Require InnoDB -source include/have_innodb.inc; +--source include/have_innodb.inc +# Embedded server test does not support restarting +--source include/not_embedded.inc -if (!$INNOCHECKSUM) { - --echo Need innochecksum binary - --die Need innochecksum binary -} - ---echo # Create and populate a table CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) ENGINE=InnoDB; INSERT INTO t1 (b) VALUES ('corrupt me'); --disable_query_log @@ -25,50 +18,15 @@ while ($i) --enable_query_log INSERT INTO t1 (b) VALUES ('corrupt me'); -CREATE TABLE t2 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) -ROW_FORMAT=COMPRESSED ENGINE=InnoDB ; - -INSERT INTO t2(b) SELECT b from t1; - -CREATE TABLE t3 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) -ROW_FORMAT=COMPRESSED ENGINE=InnoDB KEY_BLOCK_SIZE=16; - -INSERT INTO t3(b) SELECT b from t1; - let $MYSQLD_DATADIR=`select @@datadir`; -let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd; -let t2_IBD = $MYSQLD_DATADIR/test/t2.ibd; -let t3_IBD = $MYSQLD_DATADIR/test/t3.ibd; ---echo # Write file to make mysql-test-run.pl expect the "crash", but don't ---echo # start it until it's told to ---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect - ---echo # We give 30 seconds to do a clean shutdown because we do not want ---echo # to redo apply the pages of t1.ibd at the time of recovery. ---echo # We want SQL to initiate the first access to t1.ibd. -shutdown_server 30; - ---echo # Wait until disconnected. ---source include/wait_until_disconnected.inc +--source include/shutdown_mysqld.inc --echo # Run innochecksum on t1 --- disable_result_log ---exec $INNOCHECKSUM $t1_IBD - ---echo # Run innochecksum on t2 - ---exec $INNOCHECKSUM $t2_IBD - ---echo # Run innochecksum on t3 - ---exec $INNOCHECKSUM $t3_IBD +--disable_result_log +--exec $INNOCHECKSUM $MYSQLD_DATADIR/test/t1.ibd --enable_result_log ---echo # Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect ---enable_reconnect ---source include/wait_until_connected_again.inc +--source include/start_mysqld.inc ---echo # Cleanup -DROP TABLE t1, t2, t3; +DROP TABLE t1; From 3534500b87482dc7b43f72bcfc1faa08acfdff06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 3 Feb 2017 08:55:36 +0200 Subject: [PATCH 141/258] Test recovery when a .ibd file is a directory. Datafile::validate_for_recovery(): Remove a redundant error message. An error is already reported by Datafile::open_read_write() if the file cannot be opened. Also, do not assign SEARCH_ABORT, so that the full test will be executed even if one step fails. --- .../suite/innodb/r/log_file_name.result | 24 +++++++++++ mysql-test/suite/innodb/t/log_file_name.test | 40 +++++++++++-------- storage/innobase/fsp/fsp0file.cc | 5 +-- 3 files changed, 48 insertions(+), 21 deletions(-) diff --git a/mysql-test/suite/innodb/r/log_file_name.result b/mysql-test/suite/innodb/r/log_file_name.result index 84107403cf2..e5904165781 100644 --- a/mysql-test/suite/innodb/r/log_file_name.result +++ b/mysql-test/suite/innodb/r/log_file_name.result @@ -14,26 +14,41 @@ SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Ignoring data file '.*t2.ibd' with space ID \d+. Another data file called .*t1.ibd exists with the same space ID/ in mysqld.1.err # Fault 2: Wrong space_id in a dirty file, and a missing file. SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Ignoring data file '.*t1.ibd' with space ID/ in mysqld.1.err +FOUND /InnoDB: Tablespace \d+ was not found at.*t3.ibd/ in mysqld.1.err # Fault 3: Wrong space_id in a dirty file, and no missing file. SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Ignoring data file '.*t[23].ibd' with space ID/ in mysqld.1.err +FOUND /InnoDB: Tablespace \d+ was not found at .*t1.ibd/ in mysqld.1.err +FOUND /InnoDB: Tablespace \d+ was not found at .*t3.ibd/ in mysqld.1.err +FOUND /InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace/ in mysqld.1.err # Fault 4: Missing data file SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Tablespace \d+ was not found at .*t[12].ibd. +.*InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace/ in mysqld.1.err # Fault 5: Wrong type of data file SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /\[ERROR\] InnoDB: Cannot read first page of .*t2.ibd/ in mysqld.1.err +FOUND /\[ERROR\] InnoDB: Datafile .*t2.*\. Cannot determine the space ID from the first 64 pages/ in mysqld.1.err SELECT * FROM t2; a 9 @@ -66,11 +81,20 @@ SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /\[ERROR\] InnoDB: Header page consists of zero bytes in datafile: .*u1.ibd/ in mysqld.1.err +FOUND /\[ERROR\] InnoDB: Datafile .*u1.*\. Cannot determine the space ID from the first 64 pages/ in mysqld.1.err +FOUND /\[ERROR\] InnoDB: Cannot read first page of .*u2.ibd/ in mysqld.1.err # Fault 7: Missing or wrong data file and innodb_force_recovery SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /\[ERROR\] InnoDB: Header page consists of zero bytes in datafile: .*u1.ibd/ in mysqld.1.err +FOUND /InnoDB: At LSN: \d+: unable to open file .*u[1-5].ibd for tablespace/ in mysqld.1.err +FOUND /\[ERROR\] InnoDB: Cannot rename '.*u5.ibd' to '.*u6.ibd' for space ID \d+ because the target file exists/ in mysqld.1.err +FOUND /\[ERROR\] InnoDB: Header page consists of zero bytes in datafile: .*u1.ibd/ in mysqld.1.err +FOUND /InnoDB: At LSN: \d+: unable to open file .*u[1-5].ibd for tablespace/ in mysqld.1.err +FOUND /\[Warning\] InnoDB: Tablespace \d+ was not found at .*u[1-5].ibd, and innodb_force_recovery was set. All redo log for this tablespace will be ignored!/ in mysqld.1.err DROP TABLE u1,u2,u3,u6; # List of files: SHOW TABLES; diff --git a/mysql-test/suite/innodb/t/log_file_name.test b/mysql-test/suite/innodb/t/log_file_name.test index 5c063ab124f..78500a6a310 100644 --- a/mysql-test/suite/innodb/t/log_file_name.test +++ b/mysql-test/suite/innodb/t/log_file_name.test @@ -31,7 +31,6 @@ COMMIT; let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; let SEARCH_RANGE= -50000; -let SEARCH_ABORT= NOT FOUND; let $check_no_innodb=SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); @@ -94,32 +93,38 @@ let SEARCH_PATTERN= InnoDB: Set innodb_force_recovery=1 to ignore this and to pe --source include/start_mysqld.inc eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN= InnoDB: Tablespace \d+ was not found at .*t[12].ibd. .*InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace; --source include/search_pattern_in_file.inc ---source include/shutdown_mysqld.inc - --echo # Fault 5: Wrong type of data file -# TODO: Test the following as well once -# Bug#18131883 IMPROVE INNODB ERROR MESSAGES REGARDING FILES -# has been fixed: -# A file containing 16384 zero bytes. -# --mkdir $MYSQLD_DATADIR/test/t2.ibd - -# Create a short file. ---exec echo "" > $MYSQLD_DATADIR/test/t2.ibd +--mkdir $MYSQLD_DATADIR/test/t2.ibd --source include/start_mysqld.inc eval $check_no_innodb; +--source include/shutdown_mysqld.inc +# On Windows, this error message is not output when t2.ibd is a directory! +#let SEARCH_PATTERN= \[ERROR\] InnoDB: Cannot read first page of .*t2.ibd; +#--source include/search_pattern_in_file.inc +--rmdir $MYSQLD_DATADIR/test/t2.ibd + +# Create a short file. +--write_file $MYSQLD_DATADIR/test/t2.ibd +EOF + +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc + +let SEARCH_PATTERN= \[ERROR\] InnoDB: Cannot read first page of .*t2.ibd; +--source include/search_pattern_in_file.inc let SEARCH_PATTERN= \[ERROR\] InnoDB: Datafile .*t2.*\. Cannot determine the space ID from the first 64 pages; --source include/search_pattern_in_file.inc ---source include/shutdown_mysqld.inc - # Restore t2.ibd --remove_file $MYSQLD_DATADIR/test/t2.ibd --move_file $MYSQLD_DATADIR/test/t.ibd $MYSQLD_DATADIR/test/t2.ibd @@ -141,11 +146,12 @@ CREATE TABLE t0(a INT PRIMARY KEY) ENGINE=InnoDB; DROP TABLE t0; --disable_query_log -# The following are for the orphan file t0.ibd: +# The following are for the orphan file t0.ibd or for the directory t2.ibd: call mtr.add_suppression("InnoDB: Operating system error number [0-9]* in a file operation"); -call mtr.add_suppression("InnoDB: Error number [0-9]* means 'File exists'"); +call mtr.add_suppression("InnoDB: Error number [0-9]* means '(File exists|Is a directory)'"); call mtr.add_suppression("InnoDB: Cannot create file '.*t0.ibd'"); call mtr.add_suppression("InnoDB: The file '.*t0\.ibd' already exists"); +call mtr.add_suppression("InnoDB: Cannot open datafile for read-write: '.*t2\.ibd'"); # The following are for aborted startup without --innodb-force-recovery: call mtr.add_suppression("InnoDB: Tablespace .* was not found at .*test"); call mtr.add_suppression("InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace"); @@ -189,7 +195,7 @@ INSERT INTO u6 VALUES(2); --remove_file $MYSQLD_DATADIR/test/u3.ibd # InnoDB: Header page consists of zero bytes -perl; +--perl die unless open(FILE, ">$ENV{MYSQLD_DATADIR}/test/u1.ibd"); print FILE "\0" x 16384; close(FILE); @@ -218,7 +224,7 @@ let SEARCH_PATTERN= \[ERROR\] InnoDB: Datafile .*u1.*\. Cannot determine the spa # in innodb-force-recovery mode once # Bug#18131883 IMPROVE INNODB ERROR MESSAGES REGARDING FILES # has been fixed: -let SEARCH_PATTERN= \[ERROR\] InnoDB: Cannot read first page of .*u2.ibd.*; +let SEARCH_PATTERN= \[ERROR\] InnoDB: Cannot read first page of .*u2.ibd; --source include/search_pattern_in_file.inc --source include/shutdown_mysqld.inc diff --git a/storage/innobase/fsp/fsp0file.cc b/storage/innobase/fsp/fsp0file.cc index 22cd4862162..74c153a65d5 100644 --- a/storage/innobase/fsp/fsp0file.cc +++ b/storage/innobase/fsp/fsp0file.cc @@ -467,11 +467,8 @@ Datafile::validate_for_recovery() close(); err = open_read_write(srv_read_only_mode); if (err != DB_SUCCESS) { - ib::error() << "Datafile '" << m_filepath << "' could not" - " be opened in read-write mode so that the" - " doublewrite pages could be restored."; return(err); - }; + } err = find_space_id(); if (err != DB_SUCCESS || m_space_id == 0) { From a440d6ed3ab1704be36100c3ef9524175fbb10fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 3 Feb 2017 09:50:12 +0200 Subject: [PATCH 142/258] MDEV-11948 innodb.log_file fails in buildbot on CentOS 5 Rewrite the test so that the main server is restarted, instead of --exec $MYSQLD_CMD. In this way, the test can be run with Valgrind and with any --mysqld=--innodb-page-size. Also remove the workaround --skip-innodb-use-native-aio. It should not be needed when we are inheriting the server parameters from the test environment. --- mysql-test/suite/innodb/r/log_file.result | 147 ++++++++++----- mysql-test/suite/innodb/t/log_file.test | 207 ++++++++++------------ 2 files changed, 195 insertions(+), 159 deletions(-) diff --git a/mysql-test/suite/innodb/r/log_file.result b/mysql-test/suite/innodb/r/log_file.result index a1ebdf037fa..b0351232ed9 100644 --- a/mysql-test/suite/innodb/r/log_file.result +++ b/mysql-test/suite/innodb/r/log_file.result @@ -1,18 +1,33 @@ # Testcase for the following bugs # Bug#16691130 - ASSERT WHEN INNODB_LOG_GROUP_HOME_DIR DOES NOT EXIST # Bug#16418661 - CHANGING NAME IN FOR INNODB_DATA_FILE_PATH SHOULD NOT SUCCEED WITH LOG FILES -# Write tmp/log_file/my.cnf # Start mysqld without the possibility to create innodb_undo_tablespaces +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /\[ERROR\] InnoDB: Could not create undo tablespace '.*undo002'/ in mysqld.1.err # Remove undo001,undo002,ibdata1,ibdata2,ib_logfile1,ib_logfile2,ib_logfile101 -my.cnf -my_restart.err # Start mysqld with non existent innodb_log_group_home_dir +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /File .path.to.non-existent.*ib_logfile101: 'create' returned OS error \d+/ in mysqld.1.err # Remove ibdata1 & ibdata2 -my.cnf -my_restart.err -# Start mysqld to create tablespaces according to my.cnf +# Successfully let InnoDB create tablespaces +SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES +WHERE engine='innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +1 +1 # Backup tmp/logfile/* # 1. With ibdata2, Without ibdata1 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /The innodb_system data file 'ibdata1' was not found but one of the other data files 'ibdata2' exists/ in mysqld.1.err bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -26,12 +41,16 @@ ib_logfile0 ib_logfile1 ib_logfile2 ibdata2 -my.cnf -my_restart.err undo001 undo002 undo003 # 2. With ibdata1, without ibdata2 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Tablespace size stored in header is \d+ pages, but the sum of data file sizes is \d+ pages/ in mysqld.1.err +FOUND /InnoDB: Cannot start InnoDB. The tail of the system tablespace is missing/ in mysqld.1.err bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -46,8 +65,6 @@ ib_logfile1 ib_logfile2 ibdata1 ibdata2 -my.cnf -my_restart.err undo001 undo002 undo003 @@ -64,11 +81,14 @@ ib_buffer_pool ib_logfile0 ib_logfile1 ib_logfile2 -my.cnf -my_restart.err undo001 undo002 undo003 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: undo tablespace .*undo001.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\./ in mysqld.1.err bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -81,8 +101,6 @@ ib_buffer_pool ib_logfile0 ib_logfile1 ib_logfile2 -my.cnf -my_restart.err undo001 undo002 undo003 @@ -96,11 +114,13 @@ bak_undo001 bak_undo002 bak_undo003 ib_buffer_pool -my.cnf -my_restart.err undo001 undo002 undo003 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -110,8 +130,6 @@ bak_undo001 bak_undo002 bak_undo003 ib_buffer_pool -my.cnf -my_restart.err undo001 undo002 undo003 @@ -125,10 +143,12 @@ bak_undo001 bak_undo002 bak_undo003 ib_buffer_pool -my.cnf -my_restart.err undo001 undo003 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -138,8 +158,6 @@ bak_undo001 bak_undo002 bak_undo003 ib_buffer_pool -my.cnf -my_restart.err undo001 undo003 # 6. Without ibdata*,ib_logfile* files & Without undo001, undo002 @@ -152,9 +170,12 @@ bak_undo001 bak_undo002 bak_undo003 ib_buffer_pool -my.cnf -my_restart.err undo003 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /undo tablespace .*undo003.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\./ in mysqld.1.err bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -164,8 +185,6 @@ bak_undo001 bak_undo002 bak_undo003 ib_buffer_pool -my.cnf -my_restart.err undo003 # 7. With ibdata files & Without undo002 bak_ib_logfile0 @@ -182,10 +201,13 @@ ib_logfile1 ib_logfile2 ibdata1 ibdata2 -my.cnf -my_restart.err undo001 undo003 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /Expected to open 3 undo tablespaces but was able to find only 1 undo tablespaces/ in mysqld.1.err bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -200,8 +222,6 @@ ib_logfile1 ib_logfile2 ibdata1 ibdata2 -my.cnf -my_restart.err undo001 undo003 # 8. With ibdata files & Without undo001, undo002 @@ -219,9 +239,12 @@ ib_logfile1 ib_logfile2 ibdata1 ibdata2 -my.cnf -my_restart.err undo003 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /Expected to open 3 undo tablespaces but was able to find only 0 undo tablespaces/ in mysqld.1.err bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -236,8 +259,6 @@ ib_logfile1 ib_logfile2 ibdata1 ibdata2 -my.cnf -my_restart.err undo003 # 9. Without ibdata*, without undo*, Without ib_logfile1 and with ib_logfile2 bak_ib_logfile0 @@ -251,8 +272,12 @@ bak_undo003 ib_buffer_pool ib_logfile0 ib_logfile2 -my.cnf -my_restart.err +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +InnoDB YES Supports transactions, row-level locking, foreign keys and encryption for tables YES YES YES +NOT FOUND /redo log file .*ib_logfile0.* exists\. Creating system tablespace with existing redo log files is not recommended\. Please delete all redo log files before creating new system tablespace\./ in mysqld.1.err bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -263,9 +288,36 @@ bak_undo002 bak_undo003 ib_buffer_pool ib_logfile0 +ib_logfile1 ib_logfile2 -my.cnf -my_restart.err +ibdata1 +ibdata2 +undo001 +undo002 +undo003 +# 10. With ibdata*, without ib_logfile0 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +InnoDB YES Supports transactions, row-level locking, foreign keys and encryption for tables YES YES YES +bak_ib_logfile0 +bak_ib_logfile1 +bak_ib_logfile2 +bak_ibdata1 +bak_ibdata2 +bak_undo001 +bak_undo002 +bak_undo003 +ib_buffer_pool +ib_logfile0 +ib_logfile1 +ib_logfile2 +ibdata1 +ibdata2 +undo001 +undo002 +undo003 # 11. With ibdata*, without ib_logfile1 bak_ib_logfile0 bak_ib_logfile1 @@ -280,11 +332,14 @@ ib_logfile0 ib_logfile2 ibdata1 ibdata2 -my.cnf -my_restart.err undo001 undo002 undo003 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /Only one log file found/ in mysqld.1.err bak_ib_logfile0 bak_ib_logfile1 bak_ib_logfile2 @@ -298,8 +353,6 @@ ib_logfile0 ib_logfile2 ibdata1 ibdata2 -my.cnf -my_restart.err undo001 undo002 undo003 @@ -317,11 +370,15 @@ ib_logfile0 ib_logfile1 ibdata1 ibdata2 -my.cnf -my_restart.err undo001 undo002 undo003 +SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES +WHERE engine='innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +1 +1 +FOUND /Resizing redo log from 2\*\d+ to 3\*\d+ pages, LSN=\d+/ in mysqld.1.err # Cleanup bak_ib_logfile0 bak_ib_logfile1 @@ -337,8 +394,6 @@ ib_logfile1 ib_logfile2 ibdata1 ibdata2 -my.cnf -my_restart.err undo001 undo002 undo003 diff --git a/mysql-test/suite/innodb/t/log_file.test b/mysql-test/suite/innodb/t/log_file.test index 7e52ccfc726..f7a8ef36cc0 100644 --- a/mysql-test/suite/innodb/t/log_file.test +++ b/mysql-test/suite/innodb/t/log_file.test @@ -4,48 +4,51 @@ --source include/have_innodb.inc +--disable_query_log +call mtr.add_suppression("InnoDB: Could not create undo tablespace.*undo002"); +call mtr.add_suppression("InnoDB: InnoDB Database creation was aborted"); +call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); +call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); +call mtr.add_suppression("InnoDB: Operating system error number \d+ in a file operation"); +call mtr.add_suppression("InnoDB: The error means the system cannot find the path specified"); +call mtr.add_suppression("InnoDB: If you are installing InnoDB, remember that you must create directories yourself"); +call mtr.add_suppression("InnoDB: File .path.to.non-existent.ib_logfile101: 'create' returned OS error \d+"); +call mtr.add_suppression("InnoDB: Cannot create .path.to.non-existent.ib_logfile101"); +call mtr.add_suppression("InnoDB: The innodb_system data file 'ibdata1' was not found but one of the other data files 'ibdata2' exists"); +call mtr.add_suppression("InnoDB: Tablespace size stored in header is \d+ pages, but the sum of data file sizes is \d+ pages"); +call mtr.add_suppression("InnoDB: Cannot start InnoDB. The tail of the system tablespace is missing"); +call mtr.add_suppression("InnoDB: undo tablespace '.*undo001' exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\."); +call mtr.add_suppression(""); +call mtr.add_suppression(""); +--enable_query_log + let bugdir= $MYSQLTEST_VARDIR/tmp/log_file; --mkdir $bugdir ---let SEARCH_RANGE = -50000 ---let SEARCH_FILE = $bugdir/my_restart.err ---let SEARCH_ABORT=NOT FOUND ---let $args=--defaults-file=$bugdir/my.cnf --loose-console > $SEARCH_FILE 2>&1 +let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; +let SEARCH_RANGE = -50000; +let $check_no_innodb=SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); ---echo # Write tmp/log_file/my.cnf +let $check_yes_innodb=SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES +WHERE engine='innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); -perl; -die unless open IN, "<", "$ENV{MYSQLTEST_VARDIR}/my.cnf"; -my $found; -while () { $found=$1 if /^(lc-messages-dir=.*)/ } -close IN; - -die unless defined $found; -die unless open OUT, ">", "$ENV{bugdir}/my.cnf"; -print OUT "[mysqld] -$found -innodb_data_home_dir = $ENV{bugdir} -datadir = $ENV{bugdir} -secure_file_priv= -skip_aria -core_file -innodb_data_file_path = ibdata1:10M;ibdata2:10M:autoextend -innodb_undo_logs = 20 -innodb_undo_tablespaces = 3 -innodb_log_files_in_group = 3 -skip_innodb_use_native_aio # MDEV-11948 CentOS 5 fails to write ib_logfile101 -"; -close(OUT); -EOF +--let $ibp=--innodb-log-files-in-group=3 --innodb-log-group-home-dir=$bugdir +--let $ibp=$ibp --innodb-data-home-dir=$bugdir --innodb-undo-directory=$bugdir +--let $ibp=$ibp --innodb-undo-logs=20 --innodb-undo-tablespaces=3 +--let $ibp=$ibp --innodb-data-file-path=ibdata1:16M;ibdata2:10M:autoextend --echo # Start mysqld without the possibility to create innodb_undo_tablespaces +--let $restart_parameters= $ibp --innodb-undo-tablespaces=3 --mkdir $bugdir/undo002 ---error 1 ---exec $MYSQLD $args +--source include/restart_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc + let SEARCH_PATTERN=\[ERROR\] InnoDB: Could not create undo tablespace '.*undo002'; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; ---source include/search_pattern_in_file.inc --echo # Remove undo001,undo002,ibdata1,ibdata2,ib_logfile1,ib_logfile2,ib_logfile101 --remove_file $bugdir/undo001 @@ -58,28 +61,23 @@ let SEARCH_PATTERN=\[ERROR\] Aborting; --list_files $bugdir --echo # Start mysqld with non existent innodb_log_group_home_dir ---error 1 ---exec $MYSQLD $args --innodb_log_group_home_dir=/path/to/non-existent/ +--let $restart_parameters= $ibp --innodb_log_group_home_dir=/path/to/non-existent/ +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=File .path.to.non-existent.*ib_logfile101: 'create' returned OS error \d+; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; ---source include/search_pattern_in_file.inc --echo # Remove ibdata1 & ibdata2 --remove_file $bugdir/ibdata1 --remove_file $bugdir/ibdata2 --list_files $bugdir -# Innodb creates system tablespaces according to my.cnf and aborts -# complaining about mysql.* tables. This is sufficient for testing -# missing tablespaces. ---echo # Start mysqld to create tablespaces according to my.cnf ---error 2 ---exec $MYSQLD $args --skip-grant-tables --innodb-unknown-parameter -let SEARCH_PATTERN=unknown option '--innodb-unknown-parameter'; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; ---source include/search_pattern_in_file.inc +--echo # Successfully let InnoDB create tablespaces +--let $restart_parameters= $ibp +--source include/start_mysqld.inc +eval $check_yes_innodb; +--source include/shutdown_mysqld.inc --echo # Backup tmp/logfile/* --copy_file $bugdir/ibdata1 $bugdir/bak_ibdata1 @@ -93,23 +91,24 @@ let SEARCH_PATTERN=\[ERROR\] Aborting; --echo # 1. With ibdata2, Without ibdata1 --remove_file $bugdir/ibdata1 ---error 1 ---exec $MYSQLD $args + +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=The innodb_system data file 'ibdata1' was not found but one of the other data files 'ibdata2' exists; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; ---source include/search_pattern_in_file.inc # clean up & Restore --source ../include/log_file_cleanup.inc --echo # 2. With ibdata1, without ibdata2 --remove_file $bugdir/ibdata2 ---error 1 ---exec $MYSQLD $args -let SEARCH_PATTERN=Tablespace size stored in header is \d+ pages, but; +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=InnoDB: Tablespace size stored in header is \d+ pages, but the sum of data file sizes is \d+ pages; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; +let SEARCH_PATTERN=InnoDB: Cannot start InnoDB. The tail of the system tablespace is missing; --source include/search_pattern_in_file.inc # clean up & Restore @@ -119,11 +118,10 @@ let SEARCH_PATTERN=\[ERROR\] Aborting; --remove_file $bugdir/ibdata1 --remove_file $bugdir/ibdata2 --list_files $bugdir ---error 1 ---exec $MYSQLD $args -let SEARCH_PATTERN=undo tablespace .*undo001.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=InnoDB: undo tablespace .*undo001.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.; --source include/search_pattern_in_file.inc # clean up & Restore @@ -133,28 +131,21 @@ let SEARCH_PATTERN=\[ERROR\] Aborting; --remove_files_wildcard $bugdir ibdata* --remove_files_wildcard $bugdir ib_logfile* --list_files $bugdir ---error 1 ---exec $MYSQLD $args -let SEARCH_PATTERN=undo tablespace .*undo001.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; ---source include/search_pattern_in_file.inc +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc # clean up & Restore --source ../include/log_file_cleanup.inc - --echo # 5. Without ibdata*,ib_logfile* files & Without undo002 --remove_files_wildcard $bugdir ibdata* --remove_files_wildcard $bugdir ib_logfile* --remove_file $bugdir/undo002 --list_files $bugdir ---error 1 ---exec $MYSQLD $args -let SEARCH_PATTERN=undo tablespace .*undo001.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; ---source include/search_pattern_in_file.inc +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc # clean up & Restore --source ../include/log_file_cleanup.inc @@ -166,12 +157,11 @@ let SEARCH_PATTERN=\[ERROR\] Aborting; --remove_file $bugdir/undo001 --remove_file $bugdir/undo002 --list_files $bugdir ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=undo tablespace .*undo003.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; ---source include/search_pattern_in_file.inc # clean up & Restore --source ../include/log_file_cleanup.inc @@ -179,13 +169,10 @@ let SEARCH_PATTERN=\[ERROR\] Aborting; --echo # 7. With ibdata files & Without undo002 --remove_file $bugdir/undo002 --list_files $bugdir ---error 1 ---exec $MYSQLD $args -let SEARCH_PATTERN=Expected to open 3 undo tablespaces but was able; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN=to find only 1 undo tablespaces; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=Expected to open 3 undo tablespaces but was able to find only 1 undo tablespaces; --source include/search_pattern_in_file.inc # clean up & Restore --source ../include/log_file_cleanup.inc @@ -194,13 +181,10 @@ let SEARCH_PATTERN=\[ERROR\] Aborting; --remove_file $bugdir/undo001 --remove_file $bugdir/undo002 --list_files $bugdir ---error 1 ---exec $MYSQLD $args -let SEARCH_PATTERN=Expected to open 3 undo tablespaces but was able; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN=to find only 0 undo tablespaces; ---source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=Expected to open 3 undo tablespaces but was able to find only 0 undo tablespaces; --source include/search_pattern_in_file.inc # clean up & Restore @@ -211,35 +195,32 @@ let SEARCH_PATTERN=\[ERROR\] Aborting; --remove_files_wildcard $bugdir undo00* --remove_file $bugdir/ib_logfile1 --list_files $bugdir ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=redo log file .*ib_logfile0.* exists\. Creating system tablespace with existing redo log files is not recommended\. Please delete all redo log files before creating new system tablespace\.; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; ---source include/search_pattern_in_file.inc # clean up & Restore --source ../include/log_file_cleanup.inc -# 10. With ibdata*, without ib_logfile0 -#--remove_file $bugdir/ib_logfile0 -# The below would start the server. Since we cannot start a parallel -# server, do not test the below case -#--error 1 -#--exec $MYSQLD $args +--echo # 10. With ibdata*, without ib_logfile0 +--remove_file $bugdir/ib_logfile0 -# clean up & Restore -#--source ../include/log_file_cleanup.inc +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc + +--source ../include/log_file_cleanup.inc --echo # 11. With ibdata*, without ib_logfile1 --remove_file $bugdir/ib_logfile1 --list_files $bugdir ---error 1 ---exec $MYSQLD $args +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc let SEARCH_PATTERN=Only one log file found; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=\[ERROR\] Aborting; ---source include/search_pattern_in_file.inc # clean up & Restore --source ../include/log_file_cleanup.inc @@ -247,16 +228,16 @@ let SEARCH_PATTERN=\[ERROR\] Aborting; --echo # 12. With ibdata*, without ib_logfile2 --remove_file $bugdir/ib_logfile2 --list_files $bugdir ---error 1 ---exec $MYSQLD $args -let SEARCH_PATTERN=Resizing redo log from \d+\*\d+ to \d+\*\d+ pages, LSN=\d+; +--source include/start_mysqld.inc +eval $check_yes_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=Resizing redo log from 2\*\d+ to 3\*\d+ pages, LSN=\d+; --source include/search_pattern_in_file.inc +--let $restart_parameters= +--source include/start_mysqld.inc + --echo # Cleanup -# Remove ibtmp* which are re-generated after each mysqld invocation -# skip auto generated auto.cnf from list_files ---remove_files_wildcard $bugdir auto.cnf ---remove_files_wildcard $bugdir ibtmp* --list_files $bugdir --remove_files_wildcard $bugdir --rmdir $bugdir From 2f00b73a4bc4a87be54ced24969fddc796258e43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 3 Feb 2017 12:25:42 +0200 Subject: [PATCH 143/258] MDEV-11985 Make innodb_read_only shutdown more robust If InnoDB is started in innodb_read_only mode such that recovered incomplete transactions exist at startup (but the redo logs are clean), an assertion will fail at shutdown, because there would exist some non-prepared transactions. logs_empty_and_mark_files_at_shutdown(): Do not wait for incomplete transactions to finish if innodb_read_only or innodb_force_recovery>=3. Wait for purge to finish in only one place. trx_sys_close(): Relax the assertion that would fail first. trx_free_prepared(): Also free recovered TRX_STATE_ACTIVE transactions if innodb_read_only or innodb_force_recovery>=3. Also, revert my earlier fix to MySQL 5.7 because this fix is more generic: Bug#20874411 INNODB SHUTDOWN HANGS IF INNODB_FORCE_RECOVERY>=3 SKIPPED ANY ROLLBACK trx_undo_fake_prepared(): Remove. trx_sys_any_active_transactions(): Revert the changes. --- .../suite/innodb/r/read_only_recovery.result | 36 +++++++++ .../suite/innodb/t/read_only_recovery.test | 39 ++++++++++ storage/innobase/log/log0log.cc | 14 +--- storage/innobase/trx/trx0sys.cc | 74 +++---------------- storage/innobase/trx/trx0trx.cc | 6 +- storage/innobase/trx/trx0undo.cc | 28 ++++++- 6 files changed, 118 insertions(+), 79 deletions(-) create mode 100644 mysql-test/suite/innodb/r/read_only_recovery.result create mode 100644 mysql-test/suite/innodb/t/read_only_recovery.test diff --git a/mysql-test/suite/innodb/r/read_only_recovery.result b/mysql-test/suite/innodb/r/read_only_recovery.result new file mode 100644 index 00000000000..7fcbfddf33e --- /dev/null +++ b/mysql-test/suite/innodb/r/read_only_recovery.result @@ -0,0 +1,36 @@ +connect con1, localhost, root; +CREATE TABLE t(a INT PRIMARY KEY) ENGINE=InnoDB; +BEGIN; +INSERT INTO t VALUES(1),(2); +DELETE FROM t WHERE a=2; +connection default; +# Normal MariaDB shutdown would roll back the above transaction. +# We want the transaction to remain open, so we will kill the server +# after ensuring that any non-transactional files are clean. +FLUSH TABLES; +# Ensure that the above incomplete transaction becomes durable. +SET GLOBAL innodb_flush_log_at_trx_commit=1; +BEGIN; +INSERT INTO t VALUES(0); +ROLLBACK; +# Kill and restart: --innodb-force-recovery=3 +disconnect con1; +SELECT * FROM t; +a +SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +SELECT * FROM t; +a +1 +# Starting with MariaDB 10.2, innodb_read_only implies READ UNCOMMITTED. +# In earlier versions, this would return the last committed version +# (empty table)! +SELECT * FROM t; +a +1 +SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +SELECT * FROM t; +a +1 +SELECT * FROM t; +a +DROP TABLE t; diff --git a/mysql-test/suite/innodb/t/read_only_recovery.test b/mysql-test/suite/innodb/t/read_only_recovery.test new file mode 100644 index 00000000000..b111d96debe --- /dev/null +++ b/mysql-test/suite/innodb/t/read_only_recovery.test @@ -0,0 +1,39 @@ +--source include/have_innodb.inc +# need to restart server +--source include/not_embedded.inc + +--connect(con1, localhost, root) +CREATE TABLE t(a INT PRIMARY KEY) ENGINE=InnoDB; +BEGIN; +# Generate insert_undo log. +INSERT INTO t VALUES(1),(2); +# Generate update_undo log. +DELETE FROM t WHERE a=2; +--connection default +--echo # Normal MariaDB shutdown would roll back the above transaction. +--echo # We want the transaction to remain open, so we will kill the server +--echo # after ensuring that any non-transactional files are clean. +FLUSH TABLES; +--echo # Ensure that the above incomplete transaction becomes durable. +SET GLOBAL innodb_flush_log_at_trx_commit=1; +BEGIN; +INSERT INTO t VALUES(0); +ROLLBACK; +--let $restart_parameters= --innodb-force-recovery=3 +--source include/kill_and_restart_mysqld.inc +--disconnect con1 +SELECT * FROM t; +SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +SELECT * FROM t; +--let $restart_parameters= --innodb-read-only +--source include/restart_mysqld.inc +--echo # Starting with MariaDB 10.2, innodb_read_only implies READ UNCOMMITTED. +--echo # In earlier versions, this would return the last committed version +--echo # (empty table)! +SELECT * FROM t; +SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +SELECT * FROM t; +--let $restart_parameters= +--source include/restart_mysqld.inc +SELECT * FROM t; +DROP TABLE t; diff --git a/storage/innobase/log/log0log.cc b/storage/innobase/log/log0log.cc index 3c92e9572df..2a905615ac1 100644 --- a/storage/innobase/log/log0log.cc +++ b/storage/innobase/log/log0log.cc @@ -2134,7 +2134,8 @@ loop: shutdown, because the InnoDB layer may have committed or prepared transactions and we don't want to lose them. */ - if (ulint total_trx = srv_was_started + if (ulint total_trx = srv_was_started && !srv_read_only_mode + && srv_force_recovery < SRV_FORCE_NO_TRX_UNDO ? trx_sys_any_active_transactions() : 0) { if (srv_print_verbose_log && count > 600) { @@ -2144,13 +2145,6 @@ loop: count = 0; } - /* Wake up purge threads to die - they have MYSQL_THD's and - thus might keep open transactions. In particular, this is - needed in embedded server and when one uses UNINSTALL PLUGIN. - In the normal server shutdown purge threads should've been - already notified by the thd_destructor_proxy thread. */ - srv_purge_wakeup(); - goto loop; } @@ -2196,15 +2190,13 @@ wait_suspend_loop: thread_name = "fil_crypt_thread"; goto wait_suspend_loop; case SRV_PURGE: + case SRV_WORKER: srv_purge_wakeup(); thread_name = "purge thread"; goto wait_suspend_loop; case SRV_MASTER: thread_name = "master thread"; goto wait_suspend_loop; - case SRV_WORKER: - thread_name = "worker threads"; - goto wait_suspend_loop; } /* At this point only page_cleaner should be active. We wait diff --git a/storage/innobase/trx/trx0sys.cc b/storage/innobase/trx/trx0sys.cc index bb29fb167b2..94ea858f729 100644 --- a/storage/innobase/trx/trx0sys.cc +++ b/storage/innobase/trx/trx0sys.cc @@ -1096,7 +1096,9 @@ trx_sys_close(void) } /* Only prepared transactions may be left in the system. Free them. */ - ut_a(UT_LIST_GET_LEN(trx_sys->rw_trx_list) == trx_sys->n_prepared_trx); + ut_a(UT_LIST_GET_LEN(trx_sys->rw_trx_list) == trx_sys->n_prepared_trx + || srv_read_only_mode + || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO); for (trx_t* trx = UT_LIST_GET_FIRST(trx_sys->rw_trx_list); trx != NULL; @@ -1151,33 +1153,6 @@ trx_sys_close(void) trx_sys = NULL; } -/** @brief Convert an undo log to TRX_UNDO_PREPARED state on shutdown. - -If any prepared ACTIVE transactions exist, and their rollback was -prevented by innodb_force_recovery, we convert these transactions to -XA PREPARE state in the main-memory data structures, so that shutdown -will proceed normally. These transactions will again recover as ACTIVE -on the next restart, and they will be rolled back unless -innodb_force_recovery prevents it again. - -@param[in] trx transaction -@param[in,out] undo undo log to convert to TRX_UNDO_PREPARED */ -static -void -trx_undo_fake_prepared( - const trx_t* trx, - trx_undo_t* undo) -{ - ut_ad(srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO); - ut_ad(trx_state_eq(trx, TRX_STATE_ACTIVE)); - ut_ad(trx->is_recovered); - - if (undo != NULL) { - ut_ad(undo->state == TRX_UNDO_ACTIVE); - undo->state = TRX_UNDO_PREPARED; - } -} - /********************************************************************* Check if there are any active (non-prepared) transactions. @return total number of active transactions or 0 if none */ @@ -1185,46 +1160,15 @@ ulint trx_sys_any_active_transactions(void) /*=================================*/ { + ulint total_trx = 0; + trx_sys_mutex_enter(); - ulint total_trx = UT_LIST_GET_LEN(trx_sys->mysql_trx_list); + total_trx = UT_LIST_GET_LEN(trx_sys->rw_trx_list) + + UT_LIST_GET_LEN(trx_sys->mysql_trx_list); - if (total_trx == 0) { - total_trx = UT_LIST_GET_LEN(trx_sys->rw_trx_list); - ut_a(total_trx >= trx_sys->n_prepared_trx); - - if (total_trx > trx_sys->n_prepared_trx - && srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO) { - for (trx_t* trx = UT_LIST_GET_FIRST( - trx_sys->rw_trx_list); - trx != NULL; - trx = UT_LIST_GET_NEXT(trx_list, trx)) { - if (!trx_state_eq(trx, TRX_STATE_ACTIVE) - || !trx->is_recovered) { - continue; - } - /* This was a recovered transaction - whose rollback was disabled by - the innodb_force_recovery setting. - Pretend that it is in XA PREPARE - state so that shutdown will work. */ - trx_undo_fake_prepared( - trx, trx->rsegs.m_redo.insert_undo); - trx_undo_fake_prepared( - trx, trx->rsegs.m_redo.update_undo); - trx_undo_fake_prepared( - trx, trx->rsegs.m_noredo.insert_undo); - trx_undo_fake_prepared( - trx, trx->rsegs.m_noredo.update_undo); - trx->state = TRX_STATE_PREPARED; - trx_sys->n_prepared_trx++; - trx_sys->n_prepared_recovered_trx++; - } - } - - ut_a(total_trx >= trx_sys->n_prepared_trx); - total_trx -= trx_sys->n_prepared_trx; - } + ut_a(total_trx >= trx_sys->n_prepared_trx); + total_trx -= trx_sys->n_prepared_trx; trx_sys_mutex_exit(); diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc index 3d1ac5172b3..acb73e0ad33 100644 --- a/storage/innobase/trx/trx0trx.cc +++ b/storage/innobase/trx/trx0trx.cc @@ -632,7 +632,11 @@ trx_free_prepared( /*==============*/ trx_t* trx) /*!< in, own: trx object */ { - ut_a(trx_state_eq(trx, TRX_STATE_PREPARED)); + ut_a(trx_state_eq(trx, TRX_STATE_PREPARED) + || (trx_state_eq(trx, TRX_STATE_ACTIVE) + && trx->is_recovered + && (srv_read_only_mode + || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO))); ut_a(trx->magic_n == TRX_MAGIC_N); lock_trx_release_locks(trx); diff --git a/storage/innobase/trx/trx0undo.cc b/storage/innobase/trx/trx0undo.cc index be60b9b4aaa..aaf0e397607 100644 --- a/storage/innobase/trx/trx0undo.cc +++ b/storage/innobase/trx/trx0undo.cc @@ -2015,7 +2015,19 @@ trx_undo_free_prepared( ut_ad(srv_shutdown_state == SRV_SHUTDOWN_EXIT_THREADS); if (trx->rsegs.m_redo.update_undo) { - ut_a(trx->rsegs.m_redo.update_undo->state == TRX_UNDO_PREPARED); + switch (trx->rsegs.m_redo.update_undo->state) { + case TRX_UNDO_PREPARED: + break; + case TRX_UNDO_ACTIVE: + /* lock_trx_release_locks() assigns + trx->is_recovered=false */ + ut_a(srv_read_only_mode + || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO); + break; + default: + ut_error; + } + UT_LIST_REMOVE(trx->rsegs.m_redo.rseg->update_undo_list, trx->rsegs.m_redo.update_undo); trx_undo_mem_free(trx->rsegs.m_redo.update_undo); @@ -2024,7 +2036,19 @@ trx_undo_free_prepared( } if (trx->rsegs.m_redo.insert_undo) { - ut_a(trx->rsegs.m_redo.insert_undo->state == TRX_UNDO_PREPARED); + switch (trx->rsegs.m_redo.insert_undo->state) { + case TRX_UNDO_PREPARED: + break; + case TRX_UNDO_ACTIVE: + /* lock_trx_release_locks() assigns + trx->is_recovered=false */ + ut_a(srv_read_only_mode + || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO); + break; + default: + ut_error; + } + UT_LIST_REMOVE(trx->rsegs.m_redo.rseg->insert_undo_list, trx->rsegs.m_redo.insert_undo); trx_undo_mem_free(trx->rsegs.m_redo.insert_undo); From c16c9e8e76fc04cd051dc7eeb5589184fc349e21 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Mon, 6 Feb 2017 22:12:53 -0800 Subject: [PATCH 144/258] Fixed bug mdev-11999. This patch complements the patch for bug 11138. Without this patch some table-less queries with window functions could cause crashes due to a memory overwrite. --- mysql-test/r/win.result | 13 +++++++++++++ mysql-test/t/win.test | 12 ++++++++++++ sql/sql_select.cc | 24 +++++++++++++----------- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index c84c98c6032..48bdb6a6cd8 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2545,3 +2545,16 @@ row_number() over (partition by 2) select row_number() over (partition by 4 order by 1+2); row_number() over (partition by 4 order by 1+2) 1 +# +# MDEV-11999: execution of prepared statement for +# tableless query with window functions +# +prepare stmt from +"select row_number() over (partition by 4 order by 1+2)"; +execute stmt; +row_number() over (partition by 4 order by 1+2) +1 +execute stmt; +row_number() over (partition by 4 order by 1+2) +1 +deallocate prepare stmt; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index 430304e80e6..060f579421a 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1547,3 +1547,15 @@ select row_number() over (), sum(5) over (); select row_number() over (order by 2); select row_number() over (partition by 2); select row_number() over (partition by 4 order by 1+2); + +--echo # +--echo # MDEV-11999: execution of prepared statement for +--echo # tableless query with window functions +--echo # + +prepare stmt from +"select row_number() over (partition by 4 order by 1+2)"; +execute stmt; +execute stmt; +deallocate prepare stmt; + diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 10e03413eca..ad7c095f353 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1439,15 +1439,6 @@ JOIN::optimize_inner() { DBUG_PRINT("info",("No tables")); error= 0; - if (select_lex->have_window_funcs()) - { - if (!join_tab && - !(join_tab= (JOIN_TAB*) thd->alloc(sizeof(JOIN_TAB)))) - DBUG_RETURN(1); - need_tmp= 1; - } - if (make_aggr_tables_info()) - DBUG_RETURN(1); goto setup_subq_exit; } error= -1; // Error is sent to client @@ -2135,7 +2126,17 @@ JOIN::optimize_inner() setup_subq_exit: /* Choose an execution strategy for this JOIN. */ if (!tables_list || !table_count) + { choose_tableless_subquery_plan(); + if (select_lex->have_window_funcs()) + { + if (!(join_tab= (JOIN_TAB*) thd->alloc(sizeof(JOIN_TAB)))) + DBUG_RETURN(1); + need_tmp= 1; + } + if (make_aggr_tables_info()) + DBUG_RETURN(1); + } /* Even with zero matching rows, subqueries in the HAVING clause may need to be evaluated if there are aggregate functions in the query. @@ -2778,8 +2779,9 @@ JOIN::create_postjoin_aggr_table(JOIN_TAB *tab, List *table_fields, tmp_table_param.using_outer_summary_function= tab->tmp_table_param->using_outer_summary_function; tab->join= this; - DBUG_ASSERT(tab > tab->join->join_tab || !top_join_tab_count); - (tab - 1)->next_select= sub_select_postjoin_aggr; + DBUG_ASSERT(tab > tab->join->join_tab || !tables_list); + if (tables_list) + (tab - 1)->next_select= sub_select_postjoin_aggr; tab->aggr= new (thd->mem_root) AGGR_OP(tab); if (!tab->aggr) goto err; From 2aa47d9849e72cab1724b768f11aaa5d953c7153 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Tue, 31 Jan 2017 12:25:25 +0200 Subject: [PATCH 145/258] MDEV-11035: Restore removed disallow-writes for Galera Galera disallow-writes feature was lost in InnoDB 5.7 merge to 10.2. This patch restores this feature and fixes test failure on test galera.galera_var_innodb_disallow_writes. --- storage/innobase/handler/ha_innodb.cc | 6 +++-- storage/innobase/os/os0file.cc | 37 ++++++++++++++++++++++++--- storage/innobase/srv/srv0srv.cc | 4 +-- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index b353be635f5..a87dba0d944 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -21585,10 +21585,11 @@ innobase_disallow_writes_update( { *(my_bool*)var_ptr = *(my_bool*)save; ut_a(srv_allow_writes_event); - if (*(my_bool*)var_ptr) + if (*(my_bool*)var_ptr) { os_event_reset(srv_allow_writes_event); - else + } else { os_event_set(srv_allow_writes_event); + } } static MYSQL_SYSVAR_BOOL(disallow_writes, innobase_disallow_writes, @@ -21596,6 +21597,7 @@ static MYSQL_SYSVAR_BOOL(disallow_writes, innobase_disallow_writes, "Tell InnoDB to stop any writes to disk", NULL, innobase_disallow_writes_update, FALSE); #endif /* WITH_INNODB_DISALLOW_WRITES */ + static MYSQL_SYSVAR_BOOL(random_read_ahead, srv_random_read_ahead, PLUGIN_VAR_NOCMDARG, "Whether to use read ahead for random access within an extent.", diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index 488a9ff88dc..bf726e95cb3 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -1227,6 +1227,7 @@ os_file_create_tmpfile( const char* path) { FILE* file = NULL; + WAIT_ALLOW_WRITES(); int fd = innobase_mysql_tmpfile(path); if (fd >= 0) { @@ -2552,6 +2553,7 @@ os_file_flush_func( { int ret; + WAIT_ALLOW_WRITES(); ret = os_file_fsync_posix(file); if (ret == 0) { @@ -2603,6 +2605,10 @@ os_file_create_simple_func( int create_flag; const char* mode_str = NULL; + if (create_mode != OS_FILE_OPEN && create_mode != OS_FILE_OPEN_RAW) { + WAIT_ALLOW_WRITES(); + } + ut_a(!(create_mode & OS_FILE_ON_ERROR_SILENT)); ut_a(!(create_mode & OS_FILE_ON_ERROR_NO_EXIT)); @@ -2718,7 +2724,10 @@ os_file_create_directory( const char* pathname, bool fail_if_exists) { - int rcode = mkdir(pathname, 0770); + int rcode; + + WAIT_ALLOW_WRITES(); + rcode = mkdir(pathname, 0770); if (!(rcode == 0 || (errno == EEXIST && !fail_if_exists))) { /* failure */ @@ -3051,6 +3060,10 @@ os_file_create_simple_no_error_handling_func( os_file_t file; int create_flag; + if (create_mode != OS_FILE_OPEN && create_mode != OS_FILE_OPEN_RAW) { + WAIT_ALLOW_WRITES(); + } + ut_a(!(create_mode & OS_FILE_ON_ERROR_SILENT)); ut_a(!(create_mode & OS_FILE_ON_ERROR_NO_EXIT)); @@ -3124,7 +3137,10 @@ os_file_delete_if_exists_func( *exist = true; } - int ret = unlink(name); + int ret; + WAIT_ALLOW_WRITES(); + + ret = unlink(name); if (ret != 0 && errno == ENOENT) { if (exist != NULL) { @@ -3146,7 +3162,10 @@ bool os_file_delete_func( const char* name) { - int ret = unlink(name); + int ret; + WAIT_ALLOW_WRITES(); + + ret = unlink(name); if (ret != 0) { os_file_handle_error_no_exit(name, "delete", FALSE); @@ -3182,7 +3201,10 @@ os_file_rename_func( ut_ad(exists); #endif /* UNIV_DEBUG */ - int ret = rename(oldpath, newpath); + int ret; + WAIT_ALLOW_WRITES(); + + ret = rename(oldpath, newpath); if (ret != 0) { os_file_handle_error_no_exit(oldpath, "rename", FALSE); @@ -3367,6 +3389,7 @@ bool os_file_set_eof( FILE* file) /*!< in: file to be truncated */ { + WAIT_ALLOW_WRITES(); return(!ftruncate(fileno(file), ftell(file))); } @@ -4128,6 +4151,10 @@ os_file_create_func( DWORD create_flag; DWORD share_mode = FILE_SHARE_READ; + if (create_mode != OS_FILE_OPEN && create_mode != OS_FILE_OPEN_RAW) { + WAIT_ALLOW_WRITES(); + } + on_error_no_exit = create_mode & OS_FILE_ON_ERROR_NO_EXIT ? true : false; @@ -4937,6 +4964,8 @@ os_file_write_page( ut_ad(type.validate()); ut_ad(n > 0); + WAIT_ALLOW_WRITES(); + ssize_t n_bytes = os_file_pwrite(type, file, (byte*)buf, n, offset, &err); if ((ulint) n_bytes != n && !os_has_said_disk_full) { diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index 6fab9b12a69..eff78a0b350 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -1942,9 +1942,7 @@ loop: if (sync_array_print_long_waits(&waiter, &sema) && sema == old_sema && os_thread_eq(waiter, old_waiter)) { #if defined(WITH_WSREP) && defined(WITH_INNODB_DISALLOW_WRITES) - if (true) { - // JAN: TODO: MySQL 5.7 - //if (srv_allow_writes_event->is_set) { + if (os_event_is_set(srv_allow_writes_event)) { #endif /* WITH_WSREP */ fatal_cnt++; #if defined(WITH_WSREP) && defined(WITH_INNODB_DISALLOW_WRITES) From c5fc3a903c836c53983896866a64a2f3feda0dcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Tue, 7 Feb 2017 10:57:02 +0200 Subject: [PATCH 146/258] MDEV-12004 InnoDB wrongly thinks that a column is indexed after failed ADD UNIQUE INDEX check_col_exists_in_indexes(): Add the parameter only_committed. When considering committed indexes, evaluate index->is_committed(). Else, evaluate index->to_be_dropped. rollback_inplace_alter_table(): Invoke check_col_exists_in_indexes() with only_committed=true. --- storage/innobase/handler/handler0alter.cc | 37 ++++++++++++++++------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index a2fbb47c46d..42c05efeba9 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2016, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -6569,9 +6569,10 @@ innobase_online_rebuild_log_free( /** For each user column, which is part of an index which is not going to be dropped, it checks if the column number of the column is same as col_no argument passed. -@param[in] table table object -@param[in] col_no column number of the column which is to be checked -@param[in] is_v if this is a virtual column +@param[in] table table +@param[in] col_no column number +@param[in] is_v if this is a virtual column +@param[in] only_committed whether to consider only committed indexes @retval true column exists @retval false column does not exist, true if column is system column or it is in the index. */ @@ -6580,17 +6581,21 @@ bool check_col_exists_in_indexes( const dict_table_t* table, ulint col_no, - bool is_v) + bool is_v, + bool only_committed = false) { /* This function does not check system columns */ if (!is_v && dict_table_get_nth_col(table, col_no)->mtype == DATA_SYS) { return(true); } - for (dict_index_t* index = dict_table_get_first_index(table); index; + for (const dict_index_t* index = dict_table_get_first_index(table); + index; index = dict_table_get_next_index(index)) { - if (index->to_be_dropped) { + if (only_committed + ? !index->is_committed() + : index->to_be_dropped) { continue; } @@ -6769,14 +6774,24 @@ func_exit: we do this by checking every existing column, if any current index would index them */ for (ulint i = 0; i < dict_table_get_n_cols(prebuilt->table); i++) { - if (!check_col_exists_in_indexes(prebuilt->table, i, false)) { - prebuilt->table->cols[i].ord_part = 0; + dict_col_t& col = prebuilt->table->cols[i]; + if (!col.ord_part) { + continue; + } + if (!check_col_exists_in_indexes(prebuilt->table, i, false, + true)) { + col.ord_part = 0; } } for (ulint i = 0; i < dict_table_get_n_v_cols(prebuilt->table); i++) { - if (!check_col_exists_in_indexes(prebuilt->table, i, true)) { - prebuilt->table->v_cols[i].m_col.ord_part = 0; + dict_col_t& col = prebuilt->table->v_cols[i].m_col; + if (!col.ord_part) { + continue; + } + if (!check_col_exists_in_indexes(prebuilt->table, i, true, + true)) { + col.ord_part = 0; } } From b40a1fbc9394637b4038b7862906be19623480b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Tue, 24 Jan 2017 10:29:29 +0200 Subject: [PATCH 147/258] MDEV-11782 WIP: Clean up the code, and add a test. LOG_CHECKPOINT_ARRAY_END, LOG_CHECKPOINT_SIZE: Remove. Change some error messages to refer to MariaDB 10.2.2 instead of MySQL 5.7.9. recv_find_max_checkpoint_0(): Do not abort when decrypting one of the checkpoint pages fails. --- .../r/innodb_encrypt_log_corruption.result | 97 +++++++++++++++++++ .../t/innodb_encrypt_log_corruption.opt | 5 + .../t/innodb_encrypt_log_corruption.test | 14 +++ .../suite/innodb/r/log_corruption.result | 17 ++-- mysql-test/suite/innodb/t/log_corruption.test | 25 ++--- storage/innobase/include/log0log.h | 12 +-- storage/innobase/log/log0log.cc | 3 - storage/innobase/log/log0recv.cc | 15 ++- 8 files changed, 149 insertions(+), 39 deletions(-) create mode 100644 mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result create mode 100644 mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.opt create mode 100644 mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test diff --git a/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result b/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result new file mode 100644 index 00000000000..35d73cda0ec --- /dev/null +++ b/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result @@ -0,0 +1,97 @@ +# redo log from before MariaDB 10.2.2/MySQL 5.7.9 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10\.2\.2\./ in mysqld.1.err +# redo log from before MariaDB 10.2.2, with corrupted log checkpoint +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10\.2\.2, and we did not find a valid checkpoint/ in mysqld.1.err +FOUND /Plugin 'InnoDB' registration as a STORAGE ENGINE failed/ in mysqld.1.err +# redo log from before MariaDB 10.2.2, with corrupted log block +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10\.2\.2, and it appears corrupted/ in mysqld.1.err +# redo log from "after" MariaDB 10.2.2, but with invalid header checksum +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Invalid redo log header checksum/ in mysqld.1.err +# distant future redo log format, with valid header checksum +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Unsupported redo log format. The redo log was created with malicious intentions, or perhaps\. Please follow the instructions at http://dev.mysql.com/doc/refman/5.7/en/upgrading-downgrading.html/ in mysqld.1.err +# valid header, but old-format checkpoint blocks +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: No valid checkpoint found .corrupted redo log/ in mysqld.1.err +# valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2, invalid block checksum +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 3362026715 found: 144444122/ in mysqld.1.err +FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err +# --innodb-force-recovery=6 (skip the entire redo log) +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +InnoDB YES Supports transactions, row-level locking, foreign keys and encryption for tables YES YES YES +FOUND /\[Note\] InnoDB: .* started; log sequence number 0/ in mysqld.1.err +# valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2, invalid block number +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err +# --innodb-force-recovery=6 (skip the entire redo log) +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +InnoDB YES Supports transactions, row-level locking, foreign keys and encryption for tables YES YES YES +# Test a corrupted MLOG_FILE_NAME record. +# valid header, valid checkpoint 1, all-zero (invalid) checkpoint 2 +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Log scan progressed past the checkpoint lsn 1213964/ in mysqld.1.err +FOUND /InnoDB: ############### CORRUPT LOG RECORD FOUND ##################/ in mysqld.1.err +FOUND /InnoDB: Log record type 55, page 151:488\. Log parsing proceeded successfully up to 1213973\. Previous log record type 56, is multi 0 Recv offset 9, prev 0/ in mysqld.1.err +FOUND /len 22. hex 38000000000012860cb7809781e80006626f67757300. asc 8 bogus / in mysqld.1.err +FOUND /InnoDB: Set innodb_force_recovery to ignore this error/ in mysqld.1.err +# Test a corrupted MLOG_FILE_NAME record. +# valid header, invalid checkpoint 1, valid checkpoint 2, invalid block +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 2454333373 found: 150151/ in mysqld.1.err +# valid header, invalid checkpoint 1, valid checkpoint 2, invalid log record +SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS +FOUND /len 22; hex 38000000000012860cb7809781e800066269676f7400; asc 8 bigot ;/ in mysqld.1.err +# Minimal MariaDB 10.1.21 encrypted redo log +# FIXME: Upgrade from a clean encrypted redo log should actually work! +SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); +1 +0 +ib_buffer_pool +ib_logfile0 +ib_logfile1 +ibdata1 diff --git a/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.opt b/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.opt new file mode 100644 index 00000000000..8070b5a6182 --- /dev/null +++ b/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.opt @@ -0,0 +1,5 @@ +--innodb-encrypt-log=ON +--plugin-load-add=$FILE_KEY_MANAGEMENT_SO +--loose-file-key-management +--loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/logkey.txt +--file-key-management-encryption-algorithm=aes_cbc diff --git a/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test b/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test new file mode 100644 index 00000000000..c4cd233e4ac --- /dev/null +++ b/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test @@ -0,0 +1,14 @@ +--let $no_cleanup=1 +--source ../../innodb/t/log_corruption.test + +--echo # FIXME: Upgrade from a clean encrypted redo log should actually work! + +SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); + +--let $restart_parameters= +--source include/restart_mysqld.inc + +--list_files $bugdir +--remove_files_wildcard $bugdir +--rmdir $bugdir diff --git a/mysql-test/suite/innodb/r/log_corruption.result b/mysql-test/suite/innodb/r/log_corruption.result index 1397334984c..ad06398e4e2 100644 --- a/mysql-test/suite/innodb/r/log_corruption.result +++ b/mysql-test/suite/innodb/r/log_corruption.result @@ -1,24 +1,23 @@ -# redo log from before MySQL 5.7.9 +# redo log from before MariaDB 10.2.2/MySQL 5.7.9 SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS -FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\.7\.9\./ in mysqld.1.err -# redo log from before MySQL 5.7.9, with corrupted log checkpoint +FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10\.2\.2\./ in mysqld.1.err +# redo log from before MariaDB 10.2.2, with corrupted log checkpoint SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS -FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\.7\.9, and we did not find a valid checkpoint/ in mysqld.1.err +FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10\.2\.2, and we did not find a valid checkpoint/ in mysqld.1.err FOUND /Plugin 'InnoDB' registration as a STORAGE ENGINE failed/ in mysqld.1.err -NOT FOUND /Unknown/unsupported storage engine: InnoDB/ in mysqld.1.err -# redo log from before MySQL 5.7.9, with corrupted log block +# redo log from before MariaDB 10.2.2, with corrupted log block SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS -FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\.7\.9, and it appears corrupted/ in mysqld.1.err -# redo log from "after" MySQL 5.7.9, but with invalid header checksum +FOUND /InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10\.2\.2, and it appears corrupted/ in mysqld.1.err +# redo log from "after" MariaDB 10.2.2, but with invalid header checksum SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); @@ -92,7 +91,7 @@ WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS FOUND /InnoDB: Redo log crypto: getting mysqld crypto key from key version failed err = 4294967295/ in mysqld.1.err -FOUND /InnoDB: Reading checkpoint encryption info failed/ in mysqld.1.err +FOUND /InnoDB: Decrypting checkpoint failed/ in mysqld.1.err ib_buffer_pool ib_logfile0 ib_logfile1 diff --git a/mysql-test/suite/innodb/t/log_corruption.test b/mysql-test/suite/innodb/t/log_corruption.test index f7212d36c06..0f59f64ebdf 100644 --- a/mysql-test/suite/innodb/t/log_corruption.test +++ b/mysql-test/suite/innodb/t/log_corruption.test @@ -14,7 +14,7 @@ call mtr.add_suppression("InnoDB: MLOG_FILE_NAME incorrect"); call mtr.add_suppression("InnoDB: ############### CORRUPT LOG RECORD FOUND"); call mtr.add_suppression("InnoDB: Found corrupted log"); call mtr.add_suppression("InnoDB: Redo log crypto: getting mysqld crypto key from key version failed"); -call mtr.add_suppression("InnoDB: Reading checkpoint encryption info failed"); +call mtr.add_suppression("InnoDB: Decrypting checkpoint failed"); --enable_query_log let bugdir= $MYSQLTEST_VARDIR/tmp/log_corruption; @@ -90,7 +90,7 @@ binmode OUT; print OUT chr(0) x 1048576; close OUT or die; -# Create a redo log from before MySQL 5.7.9 +# Create a redo log from before MariaDB 10.2.2/MySQL 5.7.9 die unless open OUT, ">", "$ENV{bugdir}/ib_logfile0"; binmode OUT; print OUT pack("x[9]nx[5]", 0x1286), " ", chr(0) x 492; @@ -102,30 +102,28 @@ print OUT chr(0) x 1046016; close OUT or die; EOF ---echo # redo log from before MySQL 5.7.9 +--echo # redo log from before MariaDB 10.2.2/MySQL 5.7.9 --let $restart_parameters= $dirs --source include/restart_mysqld.inc eval $check_no_innodb; --source include/shutdown_mysqld.inc -let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\\.7\\.9\\.; +let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10\\.2\\.2\\.; --source include/search_pattern_in_file.inc ---echo # redo log from before MySQL 5.7.9, with corrupted log checkpoint +--echo # redo log from before MariaDB 10.2.2, with corrupted log checkpoint --move_file $bugdir/ib_logfile0 $bugdir/ib_logfile --copy_file $bugdir/ib_logfile1 $bugdir/ib_logfile0 --source include/start_mysqld.inc eval $check_no_innodb; --source include/shutdown_mysqld.inc -let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\\.7\\.9, and we did not find a valid checkpoint; +let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10\\.2\\.2, and we did not find a valid checkpoint; --source include/search_pattern_in_file.inc let SEARCH_PATTERN=Plugin 'InnoDB' registration as a STORAGE ENGINE failed; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=Unknown/unsupported storage engine: InnoDB; ---source include/search_pattern_in_file.inc ---echo # redo log from before MySQL 5.7.9, with corrupted log block +--echo # redo log from before MariaDB 10.2.2, with corrupted log block --remove_file $bugdir/ib_logfile0 --move_file $bugdir/ib_logfile $bugdir/ib_logfile0 perl; @@ -139,10 +137,10 @@ EOF --source include/start_mysqld.inc eval $check_no_innodb; --source include/shutdown_mysqld.inc -let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5\\.7\\.9, and it appears corrupted; +let SEARCH_PATTERN=InnoDB: Upgrade after a crash is not supported. This redo log was created before MariaDB 10\\.2\\.2, and it appears corrupted; --source include/search_pattern_in_file.inc ---echo # redo log from "after" MySQL 5.7.9, but with invalid header checksum +--echo # redo log from "after" MariaDB 10.2.2, but with invalid header checksum perl; die unless open OUT, "+<", "$ENV{bugdir}/ib_logfile0"; binmode OUT; @@ -337,12 +335,14 @@ print OUT pack("H*", "80000c380016000c000000015cf22e8aff355642045605c22b97f7cba9 close OUT or die; EOF +--let $restart_parameters= $dirs --innodb-force-recovery=5 --source include/start_mysqld.inc +if (!$no_cleanup) { eval $check_no_innodb; --source include/shutdown_mysqld.inc --let SEARCH_PATTERN= InnoDB: Redo log crypto: getting mysqld crypto key from key version failed err = 4294967295 --source include/search_pattern_in_file.inc ---let SEARCH_PATTERN= InnoDB: Reading checkpoint encryption info failed +--let SEARCH_PATTERN= InnoDB: Decrypting checkpoint failed --source include/search_pattern_in_file.inc --list_files $bugdir @@ -350,3 +350,4 @@ eval $check_no_innodb; --rmdir $bugdir --let $restart_parameters= --source include/start_mysqld.inc +} diff --git a/storage/innobase/include/log0log.h b/storage/innobase/include/log0log.h index 87d22946106..9ba7ca48edc 100644 --- a/storage/innobase/include/log0log.h +++ b/storage/innobase/include/log0log.h @@ -539,18 +539,16 @@ or the MySQL version that created the redo log file. */ Stored in LOG_HEADER_FORMAT. */ #define LOG_HEADER_FORMAT_CURRENT 1 -// JAN: TODO: Shoud 32 here be LOG_HEADER_CREATOR_END ? -// Problem: Log format 5.6 == 5.7 ? -#define LOG_CHECKPOINT_ARRAY_END (32 + 32 * 8) -#define LOG_CRYPT_VER (20 + LOG_CHECKPOINT_ARRAY_END) +/* @} */ + +/** MariaDB Server 10.1 encrypted redo log offsets */ +/* @{ */ +#define LOG_CRYPT_VER (20 + 32 * 9) #define LOG_CRYPT_MAX_ENTRIES (5) #define LOG_CRYPT_ENTRY_SIZE (4 + 4 + 2 * MY_AES_BLOCK_SIZE) #define LOG_CRYPT_SIZE (1 + 1 + \ (LOG_CRYPT_MAX_ENTRIES * \ LOG_CRYPT_ENTRY_SIZE)) - -#define LOG_CHECKPOINT_SIZE (20 + LOG_CHECKPOINT_ARRAY_END + \ - LOG_CRYPT_SIZE) /* @} */ #define LOG_CHECKPOINT_1 OS_FILE_LOG_BLOCK_SIZE diff --git a/storage/innobase/log/log0log.cc b/storage/innobase/log/log0log.cc index 2a905615ac1..1fe87f1250e 100644 --- a/storage/innobase/log/log0log.cc +++ b/storage/innobase/log/log0log.cc @@ -1612,9 +1612,6 @@ log_group_checkpoint( ut_ad(!srv_read_only_mode); ut_ad(log_mutex_own()); -#if LOG_CHECKPOINT_SIZE > OS_FILE_LOG_BLOCK_SIZE -# error "LOG_CHECKPOINT_SIZE > OS_FILE_LOG_BLOCK_SIZE" -#endif DBUG_PRINT("ib_log", ("checkpoint " UINT64PF " at " LSN_PF " written to group " ULINTPF, diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index bc8b8ffd1dd..f861ff8fd10 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -796,9 +796,8 @@ recv_find_max_checkpoint_0( ut_fold_binary(buf + LOG_CHECKPOINT_LSN, CHECKSUM_2 - LOG_CHECKPOINT_LSN)) != mach_read_from_4(buf + CHECKSUM_2)) { - DBUG_PRINT("ib_log", - ("invalid pre-5.7.9 checkpoint " ULINTPF, - field)); + DBUG_LOG("ib_log", + "invalid pre-10.2.2 checkpoint " << field); continue; } @@ -813,8 +812,8 @@ recv_find_max_checkpoint_0( buf + LOG_CHECKPOINT_NO); if (!log_crypt_read_checkpoint_buf(buf)) { - ib::error() << "Reading checkpoint encryption info failed."; - return DB_ERROR; + ib::warn() << "Decrypting checkpoint failed"; + continue; } DBUG_PRINT("ib_log", @@ -834,14 +833,14 @@ recv_find_max_checkpoint_0( } ib::error() << "Upgrade after a crash is not supported." - " This redo log was created before MySQL 5.7.9," + " This redo log was created before MariaDB 10.2.2," " and we did not find a valid checkpoint." " Please follow the instructions at" " " REFMAN "upgrading.html"; return(DB_ERROR); } -/** Determine if a pre-5.7.9 redo log is clean. +/** Determine if a pre-MySQL 5.7.9/MariaDB 10.2.2 redo log is clean. @param[in] lsn checkpoint LSN @return error code @retval DB_SUCCESS if the redo log is clean @@ -861,7 +860,7 @@ recv_log_format_0_recover(lsn_t lsn) static const char* NO_UPGRADE_RECOVERY_MSG = "Upgrade after a crash is not supported." - " This redo log was created before MySQL 5.7.9"; + " This redo log was created before MariaDB 10.2.2"; static const char* NO_UPGRADE_RTFM_MSG = ". Please follow the instructions at " REFMAN "upgrading.html"; From 92bbf4ad0477e09bcc86907696cd114ef42e6914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 6 Feb 2017 18:44:35 +0200 Subject: [PATCH 148/258] MDEV-11782 WIP: Support upgrade from MariaDB 10.1. recv_log_format_0_recover(): Invoke log_decrypt_after_read() after reading the old-format redo log buffer. With this change, we will upgrade to an encrypted redo log that is misleadingly carrying a MySQL 5.7.9 compatible format tag while the log blocks (other than the header and the checkpoint blocks) are in an incompatible, encrypted format. That needs to be fixed by introducing a new redo log format tag that indicates that the entire redo log is encrypted. --- .../suite/encryption/r/innodb_encrypt_log_corruption.result | 3 +-- .../suite/encryption/t/innodb_encrypt_log_corruption.test | 2 -- storage/innobase/log/log0recv.cc | 2 ++ 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result b/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result index 35d73cda0ec..16a5c91a953 100644 --- a/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result +++ b/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result @@ -86,11 +86,10 @@ AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS FOUND /len 22; hex 38000000000012860cb7809781e800066269676f7400; asc 8 bigot ;/ in mysqld.1.err # Minimal MariaDB 10.1.21 encrypted redo log -# FIXME: Upgrade from a clean encrypted redo log should actually work! SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); 1 -0 +1 ib_buffer_pool ib_logfile0 ib_logfile1 diff --git a/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test b/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test index c4cd233e4ac..85ce09e0901 100644 --- a/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test +++ b/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test @@ -1,8 +1,6 @@ --let $no_cleanup=1 --source ../../innodb/t/log_corruption.test ---echo # FIXME: Upgrade from a clean encrypted redo log should actually work! - SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index f861ff8fd10..803ce99e707 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -872,6 +872,8 @@ recv_log_format_0_recover(lsn_t lsn) % univ_page_size.physical()), OS_FILE_LOG_BLOCK_SIZE, buf, NULL); + log_decrypt_after_read(buf, OS_FILE_LOG_BLOCK_SIZE); + if (log_block_calc_checksum_format_0(buf) != log_block_get_checksum(buf)) { ib::error() << NO_UPGRADE_RECOVERY_MSG From abe6aca8d46a570a46904ef95e77148ad2270518 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Tue, 7 Feb 2017 17:32:50 +0400 Subject: [PATCH 149/258] MDEV-11554 innodb_gis.precise fails in buildbot on Power. Usual '8' turns into 7.9999999 on Power. Test case fixed. --- mysql-test/suite/innodb_gis/t/precise.test | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/innodb_gis/t/precise.test b/mysql-test/suite/innodb_gis/t/precise.test index 43cd906782e..2689ec5ef4c 100644 --- a/mysql-test/suite/innodb_gis/t/precise.test +++ b/mysql-test/suite/innodb_gis/t/precise.test @@ -65,7 +65,7 @@ select ST_DISTANCE(ST_geomfromtext('linestring(0 0, 3 6, 6 3, 0 0)'), ST_geomfro # Operations tests ---replace_result 23.85542168674699 23.855421686746986 +--replace_result 23.85542168674699 23.855421686746986 7.999999999999999 8 select ST_astext(ST_Intersection(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))'))); --replace_result 23.85542168674699 23.855421686746986 select ST_astext(ST_Intersection(ST_GeomFromText('LINESTRING(0 0, 50 45, 40 50, 0 0)'), ST_GeomFromText('LINESTRING(50 5, 55 10, 0 45, 50 5)'))); @@ -73,11 +73,13 @@ select ST_astext(ST_Intersection(ST_GeomFromText('LINESTRING(0 0, 50 45, 40 50)' select ST_astext(ST_Intersection(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('POINT(20 20)'))); select ST_astext(ST_Intersection(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('LINESTRING(-10 -10, 200 200)'))); select ST_astext(ST_Intersection(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); +--replace_result 7.999999999999999 8 select ST_astext(ST_UNION(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); select ST_astext(ST_intersection(ST_geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), ST_geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))); select ST_astext(ST_symdifference(ST_geomfromtext('polygon((0 0, 1 0, 0 1, 0 0))'), ST_geomfromtext('polygon((0 0, 1 1, 0 2, 0 0))'))); +--replace_result 7.999999999999999 8 select ST_astext(ST_UNION(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); # Buffer() tests From 163ac07b9308a74761eadf50710aa26d3a933bda Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Wed, 8 Feb 2017 06:47:39 +0400 Subject: [PATCH 150/258] MDEV-12020 ctype tests are non-deterministic due to missing sorting --- mysql-test/r/ctype_utf8.result | 2 +- mysql-test/r/ctype_utf8mb4.result | 10 +++++----- mysql-test/t/ctype_utf8.test | 2 +- mysql-test/t/ctype_utf8mb4.test | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 5410d803a3c..9a5e57574b4 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -10494,7 +10494,7 @@ DELETE FROM t1; LOAD DATA INFILE '../../std_data/loaddata/mdev9824.txt' INTO TABLE t1 CHARACTER SET utf8 LINES TERMINATED BY 'ёё' IGNORE 1 LINES; Warnings: Warning 1638 Non-ASCII separator arguments are not fully supported -SELECT c1 FROM t1; +SELECT c1 FROM t1 ORDER BY c1; c1 b c diff --git a/mysql-test/r/ctype_utf8mb4.result b/mysql-test/r/ctype_utf8mb4.result index 23e6f0aec26..b80fbe36f42 100644 --- a/mysql-test/r/ctype_utf8mb4.result +++ b/mysql-test/r/ctype_utf8mb4.result @@ -2323,16 +2323,16 @@ insert into t1 values (0xF0BFBFBF); insert into t1 values (0xF08F8080); Warnings: Warning 1366 Incorrect string value: '\xF0\x8F\x80\x80' for column 'utf8mb4' at row 1 -select hex(utf8mb4) from t1; +select hex(utf8mb4) from t1 order by binary utf8mb4; hex(utf8mb4) +3F F0908080 F0BFBFBF -3F delete from t1; Testing [F2..F3][80..BF][80..BF][80..BF] insert into t1 values (0xF2808080); insert into t1 values (0xF2BFBFBF); -select hex(utf8mb4) from t1; +select hex(utf8mb4) from t1 order by binary utf8mb4; hex(utf8mb4) F2808080 F2BFBFBF @@ -2343,11 +2343,11 @@ insert into t1 values (0xF48F8080); insert into t1 values (0xF4908080); Warnings: Warning 1366 Incorrect string value: '\xF4\x90\x80\x80' for column 'utf8mb4' at row 1 -select hex(utf8mb4) from t1; +select hex(utf8mb4) from t1 order by binary utf8mb4; hex(utf8mb4) +3F F4808080 F48F8080 -3F drop table t1; # # Check strnxfrm() with odd length diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test index 0b0e5dc37b2..0ac0bcc1ddb 100644 --- a/mysql-test/t/ctype_utf8.test +++ b/mysql-test/t/ctype_utf8.test @@ -2000,7 +2000,7 @@ LOAD DATA INFILE '../../std_data/loaddata/mdev9824.txt' INTO TABLE t1 CHARACTER SELECT c1 FROM t1; DELETE FROM t1; LOAD DATA INFILE '../../std_data/loaddata/mdev9824.txt' INTO TABLE t1 CHARACTER SET utf8 LINES TERMINATED BY 'ёё' IGNORE 1 LINES; -SELECT c1 FROM t1; +SELECT c1 FROM t1 ORDER BY c1; DROP TABLE t1; --echo # diff --git a/mysql-test/t/ctype_utf8mb4.test b/mysql-test/t/ctype_utf8mb4.test index 55aad5b1454..dfed66e7951 100644 --- a/mysql-test/t/ctype_utf8mb4.test +++ b/mysql-test/t/ctype_utf8mb4.test @@ -1491,20 +1491,20 @@ create table t1 (utf8mb4 char(1) character set utf8mb4); insert into t1 values (0xF0908080); insert into t1 values (0xF0BFBFBF); insert into t1 values (0xF08F8080); -select hex(utf8mb4) from t1; +select hex(utf8mb4) from t1 order by binary utf8mb4; delete from t1; --echo Testing [F2..F3][80..BF][80..BF][80..BF] insert into t1 values (0xF2808080); insert into t1 values (0xF2BFBFBF); -select hex(utf8mb4) from t1; +select hex(utf8mb4) from t1 order by binary utf8mb4; delete from t1; --echo Testing [F4][80..8F][80..BF][80..BF] insert into t1 values (0xF4808080); insert into t1 values (0xF48F8080); insert into t1 values (0xF4908080); -select hex(utf8mb4) from t1; +select hex(utf8mb4) from t1 order by binary utf8mb4; drop table t1; From 7b27465e10c0bad648d193af8062b78b10c2b1c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Tue, 7 Feb 2017 15:55:01 +0200 Subject: [PATCH 151/258] MDEV-11974: MariaDB 10.2 encryption does not support spatial indexes Encryption stores used key_version to FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION (offset 26) field. Spatial indexes store RTREE Split Sequence Number (FIL_RTREE_SPLIT_SEQ_NUM) in the same field. Both values can't be stored in same field. Thus, current encryption implementation does not support encrypting spatial indexes. fil_space_encrypt(): Do not encrypt page if page type is FIL_PAGE_RTREE (this is required for background encryption innodb-encrypt-tables=ON). create_table_info_t::check_table_options() Do not allow creating table with ENCRYPTED=YES if table contains spatial index. --- .../encryption/r/innodb-spatial-index.result | 42 +++++++++++ .../encryption/t/innodb-spatial-index.opt | 4 ++ .../encryption/t/innodb-spatial-index.test | 72 +++++++++++++++++++ storage/innobase/fil/fil0crypt.cc | 9 +-- storage/innobase/handler/ha_innodb.cc | 15 ++++ 5 files changed, 138 insertions(+), 4 deletions(-) create mode 100644 mysql-test/suite/encryption/r/innodb-spatial-index.result create mode 100644 mysql-test/suite/encryption/t/innodb-spatial-index.opt create mode 100644 mysql-test/suite/encryption/t/innodb-spatial-index.test diff --git a/mysql-test/suite/encryption/r/innodb-spatial-index.result b/mysql-test/suite/encryption/r/innodb-spatial-index.result new file mode 100644 index 00000000000..7ad0af72bcd --- /dev/null +++ b/mysql-test/suite/encryption/r/innodb-spatial-index.result @@ -0,0 +1,42 @@ +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB +ENCRYPTED=YES; +ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options") +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB; +ALTER TABLE t1 ENCRYPTED=YES; +ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options") +DROP TABLE t1; +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL) ENCRYPTED=YES ENGINE=INNODB; +CREATE SPATIAL INDEX b on t1(coordinate); +ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options") +ALTER TABLE t1 ADD SPATIAL INDEX b(coordinate); +ERROR HY000: Can't create table `test`.`#sql-temporary` (errno: 140 "Wrong create options") +DROP TABLE t1; +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL) ENCRYPTED=DEFAULT ENGINE=INNODB; +CREATE SPATIAL INDEX b on t1(coordinate); +INSERT INTO t1 values(1, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); +ALTER TABLE t1 DROP INDEX b; +INSERT INTO t1 values(2, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); +ALTER TABLE t1 ADD SPATIAL INDEX b(coordinate); +INSERT INTO t1 values(3, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); +DROP TABLE t1; +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB; +CREATE TABLE t2 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB PAGE_COMPRESSED=YES; +INSERT INTO t1 values(1, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); +INSERT INTO t2 values(1, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); +# Success! +SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION > 0; +NAME +mysql/innodb_table_stats +mysql/innodb_index_stats +test/t1 +test/t2 +NULL +SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0; +NAME +DROP TABLE t1, t2; diff --git a/mysql-test/suite/encryption/t/innodb-spatial-index.opt b/mysql-test/suite/encryption/t/innodb-spatial-index.opt new file mode 100644 index 00000000000..d1f1bb9c555 --- /dev/null +++ b/mysql-test/suite/encryption/t/innodb-spatial-index.opt @@ -0,0 +1,4 @@ +--innodb-encrypt-tables +--innodb-encryption-rotate-key-age=15 +--innodb-encryption-threads=4 +--innodb-tablespaces-encryption diff --git a/mysql-test/suite/encryption/t/innodb-spatial-index.test b/mysql-test/suite/encryption/t/innodb-spatial-index.test new file mode 100644 index 00000000000..de78461c765 --- /dev/null +++ b/mysql-test/suite/encryption/t/innodb-spatial-index.test @@ -0,0 +1,72 @@ +--source include/have_innodb.inc +--source include/have_file_key_management_plugin.inc + +# +# MDEV-11974: MariaDB 10.2 encryption does not support spatial indexes +# + +# +# (1) Do not allow creating table with ENCRYPTED=YES +# +# +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +--error ER_CANT_CREATE_TABLE +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB +ENCRYPTED=YES; + +# +# (2) Alter table +# +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB; +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +--error ER_CANT_CREATE_TABLE +ALTER TABLE t1 ENCRYPTED=YES; +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +DROP TABLE t1; + +# +# Index creation +# +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL) ENCRYPTED=YES ENGINE=INNODB; +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +--error ER_CANT_CREATE_TABLE +CREATE SPATIAL INDEX b on t1(coordinate); +--replace_regex /#sql-[0-9a-f_]*`/#sql-temporary`/ +--error ER_CANT_CREATE_TABLE +ALTER TABLE t1 ADD SPATIAL INDEX b(coordinate); +DROP TABLE t1; + +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL) ENCRYPTED=DEFAULT ENGINE=INNODB; +CREATE SPATIAL INDEX b on t1(coordinate); +INSERT INTO t1 values(1, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); +ALTER TABLE t1 DROP INDEX b; +INSERT INTO t1 values(2, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); +ALTER TABLE t1 ADD SPATIAL INDEX b(coordinate); +INSERT INTO t1 values(3, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); +DROP TABLE t1; +# +# (3) Default encryption should still work +# + +CREATE TABLE t1 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB; +CREATE TABLE t2 (pk INT PRIMARY KEY AUTO_INCREMENT, +c VARCHAR(256), coordinate POINT NOT NULL, SPATIAL index(coordinate)) ENGINE=INNODB PAGE_COMPRESSED=YES; + +INSERT INTO t1 values(1, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); +INSERT INTO t2 values(1, 'secret', ST_GeomFromText('POINT(903994614 180726515)')); + +--let $wait_timeout=600 +--let $wait_condition=SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0; +--source include/wait_condition.inc + +--echo # Success! + +SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION > 0; +SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0; + +DROP TABLE t1, t2; \ No newline at end of file diff --git a/storage/innobase/fil/fil0crypt.cc b/storage/innobase/fil/fil0crypt.cc index 7f545cb4060..ac1978f2673 100644 --- a/storage/innobase/fil/fil0crypt.cc +++ b/storage/innobase/fil/fil0crypt.cc @@ -629,10 +629,11 @@ fil_space_encrypt( ulint orig_page_type = mach_read_from_2(src_frame+FIL_PAGE_TYPE); - if (orig_page_type==FIL_PAGE_TYPE_FSP_HDR - || orig_page_type==FIL_PAGE_TYPE_XDES) { - /* File space header or extent descriptor do not need to be - encrypted. */ + if (orig_page_type == FIL_PAGE_TYPE_FSP_HDR || + orig_page_type == FIL_PAGE_TYPE_XDES || + orig_page_type == FIL_PAGE_RTREE) { + /* File space header, extent descriptor or spatial index + are not encrypted. */ return src_frame; } diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index a87dba0d944..83f2e53cc83 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -12415,6 +12415,21 @@ create_table_info_t::check_table_options() enum row_type row_format = m_form->s->row_type; ha_table_option_struct *options= m_form->s->option_struct; fil_encryption_t encrypt = (fil_encryption_t)options->encryption; + bool should_encrypt = (encrypt == FIL_SPACE_ENCRYPTION_ON); + + /* Currently we do not support encryption for + spatial indexes thus do not allow creating table with forced + encryption */ + for(ulint i = 0; i < m_form->s->keys; i++) { + const KEY* key = m_form->key_info + i; + if (key->flags & HA_SPATIAL && should_encrypt) { + push_warning_printf(m_thd, Sql_condition::WARN_LEVEL_WARN, + HA_ERR_UNSUPPORTED, + "InnoDB: ENCRYPTED=ON not supported for table because " + "it contains spatial index."); + return "ENCRYPTED"; + } + } if (encrypt != FIL_SPACE_ENCRYPTION_DEFAULT && !m_allow_file_per_table) { push_warning( From a75633b5bdd88a239b2227de237d2f23003d8ea8 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Thu, 2 Feb 2017 13:52:33 +0100 Subject: [PATCH 152/258] MDEV-11681: PARTITION BY LIST COLUMNS with default partition: Assertion `part_info->num_list_values' failed in get_part_iter_for_interval_cols_via_map process adge case with only default partition --- mysql-test/r/partition_list.result | 24 ++++++++++++++++++++++++ mysql-test/t/partition_list.test | 23 +++++++++++++++++++++++ sql/sql_partition.cc | 3 +++ 3 files changed, 50 insertions(+) diff --git a/mysql-test/r/partition_list.result b/mysql-test/r/partition_list.result index e22fc11e5bb..2e95f882217 100644 --- a/mysql-test/r/partition_list.result +++ b/mysql-test/r/partition_list.result @@ -310,3 +310,27 @@ create table t1 (a char(1)) partition by list (ascii(ucase(a))) (partition p1 values in (2)); ERROR HY000: This partition function is not allowed +# +# MDEV-11681: PARTITION BY LIST COLUMNS with default partition: +# Assertion `part_info->num_list_values' failed in +# get_part_iter_for_interval_cols_via_map +# +CREATE TABLE t1 (f int) PARTITION BY LIST COLUMNS (f) (PARTITION pdef DEFAULT); +insert into t1 values (1),(2); +select * from t1 where f = 1; +f +1 +drop table t1; +CREATE TABLE t1 (f int, d int) PARTITION BY LIST COLUMNS (f,d) (PARTITION pdef DEFAULT); +insert into t1 values (1,1),(2,2); +select * from t1 where f = 1 and d = 1 ; +f d +1 1 +drop table t1; +CREATE TABLE t1 (f int) PARTITION BY LIST (f) (PARTITION pdef DEFAULT); +insert into t1 values (1),(2); +select * from t1 where f = 1; +f +1 +drop table t1; +#end of 10.2 tests diff --git a/mysql-test/t/partition_list.test b/mysql-test/t/partition_list.test index 8d2ec88e0f4..e2b6aff300f 100644 --- a/mysql-test/t/partition_list.test +++ b/mysql-test/t/partition_list.test @@ -186,3 +186,26 @@ create table t1 (a char(1)) partition by list (ascii(ucase(a))) (partition p1 values in (2)); +--echo # +--echo # MDEV-11681: PARTITION BY LIST COLUMNS with default partition: +--echo # Assertion `part_info->num_list_values' failed in +--echo # get_part_iter_for_interval_cols_via_map +--echo # +CREATE TABLE t1 (f int) PARTITION BY LIST COLUMNS (f) (PARTITION pdef DEFAULT); +insert into t1 values (1),(2); +select * from t1 where f = 1; + +drop table t1; + +CREATE TABLE t1 (f int, d int) PARTITION BY LIST COLUMNS (f,d) (PARTITION pdef DEFAULT); +insert into t1 values (1,1),(2,2); +select * from t1 where f = 1 and d = 1 ; + +drop table t1; +CREATE TABLE t1 (f int) PARTITION BY LIST (f) (PARTITION pdef DEFAULT); +insert into t1 values (1),(2); +select * from t1 where f = 1; + +drop table t1; + +--echo #end of 10.2 tests diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 972ab3aa1f1..4e71e792a08 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -7703,6 +7703,9 @@ int get_part_iter_for_interval_cols_via_map(partition_info *part_info, } else if (part_info->part_type == LIST_PARTITION) { + if (part_info->has_default_partititon() && + part_info->num_parts == 1) + DBUG_RETURN(-1); //only DEFAULT partition get_col_endpoint= get_partition_id_cols_list_for_endpoint; part_iter->get_next= get_next_partition_id_list; part_iter->part_info= part_info; From 9fa20716b6dc47e28a8c99c5ecd5795c9088d811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 8 Feb 2017 10:06:18 +0200 Subject: [PATCH 153/258] Remove some more error log spam. Do not effectively set DEBUG_DBUG='d' by setting DEBUG_DBUG='-d,...'. Instead, restore the saved value of DEBUG_DBUG. Also, split the test innodb_fts.innodb_fts_misc_debug into innodb_fts.crash_recovery and innodb_fts.misc_debug, and enable these tests for --valgrind, the latter test for --embedded, and the former tests for the non-debug server. --- .../innodb/r/innodb-wl5522-debug-zip.result | 35 +++--- .../suite/innodb/r/innodb_bug11754376.result | 1 - .../suite/innodb/r/innodb_bug56947.result | 1 - .../innodb/t/innodb-wl5522-debug-zip.test | 35 +++--- .../suite/innodb/t/innodb_bug11754376.test | 2 - .../suite/innodb/t/innodb_bug56947.test | 1 - ...isc_debug.result => crash_recovery.result} | 24 +--- .../r/innobase_drop_fts_index_table.result | 6 - .../r/innodb_fts_result_cache_limit.result | 3 +- .../suite/innodb_fts/r/misc_debug.result | 19 +++ ...ts_misc_debug.test => crash_recovery.test} | 109 ++---------------- .../t/innobase_drop_fts_index_table.test | 19 --- .../t/innodb_fts_result_cache_limit.test | 3 +- mysql-test/suite/innodb_fts/t/misc_debug.test | 41 +++++++ 14 files changed, 110 insertions(+), 189 deletions(-) rename mysql-test/suite/innodb_fts/r/{innodb_fts_misc_debug.result => crash_recovery.result} (77%) delete mode 100644 mysql-test/suite/innodb_fts/r/innobase_drop_fts_index_table.result create mode 100644 mysql-test/suite/innodb_fts/r/misc_debug.result rename mysql-test/suite/innodb_fts/t/{innodb_fts_misc_debug.test => crash_recovery.test} (55%) delete mode 100644 mysql-test/suite/innodb_fts/t/innobase_drop_fts_index_table.test create mode 100644 mysql-test/suite/innodb_fts/t/misc_debug.test diff --git a/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result b/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result index cb01e5d2465..5cd4a0c93e4 100644 --- a/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result +++ b/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result @@ -25,7 +25,6 @@ SELECT * FROM test_wl5522.t1; ERROR HY000: Tablespace has been discarded for table `t1` ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Lost connection to MySQL server during query -SET SESSION debug_dbug="-d,ib_import_before_commit_crash"; SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash"; SELECT COUNT(*) FROM test_wl5522.t1; ERROR HY000: Tablespace has been discarded for table `t1` @@ -34,7 +33,6 @@ ERROR HY000: Lost connection to MySQL server during query unlink: t1.ibd unlink: t1.cfg # Restart and reconnect to the server -SET SESSION debug_dbug="-d,ib_import_before_checkpoint_crash"; DROP TABLE test_wl5522.t1; SET SESSION innodb_strict_mode=1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb @@ -65,10 +63,11 @@ ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; SELECT COUNT(*) FROM test_wl5522.t1; ERROR HY000: Tablespace has been discarded for table `t1` restore: t1 .ibd and .cfg files +SET @saved_debug_dbug = @@SESSION.debug_dbug; SET SESSION debug_dbug="+d,ib_import_internal_error"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: While updating the of index GEN_CLUST_INDEX - Generic error -SET SESSION debug_dbug="-d,ib_import_internal_error"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; DROP TABLE test_wl5522.t1; @@ -82,36 +81,36 @@ SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Too many concurrent transactions restore: t1 .ibd and .cfg files -SET SESSION debug_dbug="-d,ib_import_reset_space_and_lsn_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Got error 44 't1.ibd -SET SESSION debug_dbug="-d,ib_import_open_tablespace_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_check_bitmap_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_cluster_root_adjust_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_cluster_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_cluster_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_sec_root_adjust_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_set_max_rowid_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_set_max_rowid_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; unlink: t1.ibd unlink: t1.cfg DROP TABLE test_wl5522.t1; @@ -455,7 +454,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -468,7 +467,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption -SET SESSION debug_dbug="-d,buf_page_is_corrupt_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -481,7 +480,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index corrupt: Externally stored column(5) has a reference length of 19 in the cluster index GEN_CLUST_INDEX -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -494,7 +493,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_3"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -507,7 +506,7 @@ SET SESSION debug_dbug="+d,ib_import_create_index_failure_1"; ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1); Warnings: Warning 1814 Tablespace has been discarded for table `t1` -SET SESSION debug_dbug="-d,ib_import_create_index_failure_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -520,7 +519,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,fil_space_create_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Got error 11 't1.ibd -SET SESSION debug_dbug="-d,fil_space_create_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -533,7 +532,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Got error 39 't1.ibd -SET SESSION debug_dbug="-d,dict_tf_to_fsp_flags_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -546,7 +545,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption -SET SESSION debug_dbug="-d,fsp_flags_is_valid_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg diff --git a/mysql-test/suite/innodb/r/innodb_bug11754376.result b/mysql-test/suite/innodb/r/innodb_bug11754376.result index 034e4f07403..b9f2a169a73 100644 --- a/mysql-test/suite/innodb/r/innodb_bug11754376.result +++ b/mysql-test/suite/innodb/r/innodb_bug11754376.result @@ -1,4 +1,3 @@ CREATE TABLE bug11754376 (c INT) ENGINE=INNODB; SET SESSION DEBUG_DBUG='+d,test_normalize_table_name_low'; DROP TABLE bug11754376; -SET SESSION DEBUG_DBUG='-d,test_normalize_table_name_low'; diff --git a/mysql-test/suite/innodb/r/innodb_bug56947.result b/mysql-test/suite/innodb/r/innodb_bug56947.result index 878450144a2..4248013b088 100644 --- a/mysql-test/suite/innodb/r/innodb_bug56947.result +++ b/mysql-test/suite/innodb/r/innodb_bug56947.result @@ -3,7 +3,6 @@ create table bug56947(a int not null) engine = innodb; SET DEBUG_DBUG='+d,ib_rebuild_cannot_rename'; alter table bug56947 add unique index (a); ERROR HY000: Got error 11 "xxx" from storage engine InnoDB -SET DEBUG_DBUG='-d,ib_rebuild_cannot_rename'; check table bug56947; Table Op Msg_type Msg_text test.bug56947 check status OK diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test b/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test index 2858fa7c8e1..c807d5fbe2b 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test +++ b/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test @@ -85,7 +85,6 @@ ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; --source include/wait_until_connected_again.inc --disable_reconnect -SET SESSION debug_dbug="-d,ib_import_before_commit_crash"; #### Before commit crash # Check that the DD is consistent after recovery @@ -118,7 +117,6 @@ EOF --source include/wait_until_connected_again.inc --disable_reconnect -SET SESSION debug_dbug="-d,ib_import_before_checkpoint_crash"; #### Before checkpoint crash # After the above test the results are non-deterministic, recreate the table @@ -165,6 +163,7 @@ ib_restore_tablespaces("test_wl5522", "t1"); EOF # Test failure after reset of space id and LSN in the tablespace +SET @saved_debug_dbug = @@SESSION.debug_dbug; SET SESSION debug_dbug="+d,ib_import_internal_error"; --replace_regex /'.*t1.cfg'/'t1.cfg'/ @@ -172,7 +171,7 @@ SET SESSION debug_dbug="+d,ib_import_internal_error"; --error ER_INTERNAL_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_internal_error"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -214,7 +213,7 @@ do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF -SET SESSION debug_dbug="-d,ib_import_reset_space_and_lsn_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Test failure after attempting a tablespace open SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; @@ -223,7 +222,7 @@ SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; --error ER_GET_ERRMSG ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_open_tablespace_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -238,7 +237,7 @@ SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_check_bitmap_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -252,7 +251,7 @@ SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_cluster_root_adjust_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -266,7 +265,7 @@ SET SESSION debug_dbug="+d,ib_import_cluster_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_cluster_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -280,7 +279,7 @@ SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_sec_root_adjust_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -294,7 +293,7 @@ SET SESSION debug_dbug="+d,ib_import_set_max_rowid_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_set_max_rowid_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Left over from the failed IMPORT perl; @@ -481,7 +480,7 @@ SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1"; --error ER_INTERNAL_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -514,7 +513,7 @@ SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; --error ER_INTERNAL_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,buf_page_is_corrupt_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -544,7 +543,7 @@ SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2"; --error ER_INNODB_INDEX_CORRUPT ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -574,7 +573,7 @@ SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_3"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -595,7 +594,7 @@ SET SESSION debug_dbug="+d,ib_import_create_index_failure_1"; ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1); -SET SESSION debug_dbug="-d,ib_import_create_index_failure_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -626,7 +625,7 @@ SET SESSION debug_dbug="+d,fil_space_create_failure"; --error ER_GET_ERRMSG ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,fil_space_create_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -657,7 +656,7 @@ SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure"; --error ER_GET_ERRMSG ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,dict_tf_to_fsp_flags_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -689,7 +688,7 @@ SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure"; --error ER_INTERNAL_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,fsp_flags_is_valid_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; diff --git a/mysql-test/suite/innodb/t/innodb_bug11754376.test b/mysql-test/suite/innodb/t/innodb_bug11754376.test index b740b7e08fe..a7f35c1a960 100644 --- a/mysql-test/suite/innodb/t/innodb_bug11754376.test +++ b/mysql-test/suite/innodb/t/innodb_bug11754376.test @@ -12,5 +12,3 @@ CREATE TABLE bug11754376 (c INT) ENGINE=INNODB; SET SESSION DEBUG_DBUG='+d,test_normalize_table_name_low'; DROP TABLE bug11754376; - -SET SESSION DEBUG_DBUG='-d,test_normalize_table_name_low'; diff --git a/mysql-test/suite/innodb/t/innodb_bug56947.test b/mysql-test/suite/innodb/t/innodb_bug56947.test index 7883cafe291..84c5e70e1b5 100644 --- a/mysql-test/suite/innodb/t/innodb_bug56947.test +++ b/mysql-test/suite/innodb/t/innodb_bug56947.test @@ -11,7 +11,6 @@ SET DEBUG_DBUG='+d,ib_rebuild_cannot_rename'; --replace_regex /"[^"]*"/"xxx"/ --error ER_GET_ERRNO alter table bug56947 add unique index (a); -SET DEBUG_DBUG='-d,ib_rebuild_cannot_rename'; check table bug56947; drop table bug56947; diff --git a/mysql-test/suite/innodb_fts/r/innodb_fts_misc_debug.result b/mysql-test/suite/innodb_fts/r/crash_recovery.result similarity index 77% rename from mysql-test/suite/innodb_fts/r/innodb_fts_misc_debug.result rename to mysql-test/suite/innodb_fts/r/crash_recovery.result index b09fe632116..e21631471d2 100644 --- a/mysql-test/suite/innodb_fts/r/innodb_fts_misc_debug.result +++ b/mysql-test/suite/innodb_fts/r/crash_recovery.result @@ -15,9 +15,7 @@ INSERT INTO articles (title,body) VALUES BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); -SET SESSION debug_dbug="+d,crash_commit_before"; -COMMIT; -ERROR HY000: Lost connection to MySQL server during query +# Kill and restart INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); CREATE FULLTEXT INDEX idx ON articles (title,body); @@ -38,9 +36,7 @@ INSERT INTO articles (title,body) VALUES BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); -SET SESSION debug_dbug="+d,crash_commit_before"; -COMMIT; -ERROR HY000: Lost connection to MySQL server during query +# Kill and restart INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); SELECT * FROM articles @@ -71,9 +67,7 @@ INSERT INTO articles VALUES BEGIN; INSERT INTO articles VALUES (100, 200, 'MySQL Tutorial','DBMS stands for DataBase ...'); -SET SESSION debug_dbug="+d,crash_commit_before"; -COMMIT; -ERROR HY000: Lost connection to MySQL server during query +# Kill and restart INSERT INTO articles VALUES (8, 12, 'MySQL Tutorial','DBMS stands for DataBase ...'); SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE); @@ -82,15 +76,3 @@ id FTS_DOC_ID title body 1 10 MySQL Tutorial DBMS stands for DataBase ... 8 12 MySQL Tutorial DBMS stands for DataBase ... DROP TABLE articles; -CREATE TABLE articles ( -id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, -title VARCHAR(200), -body TEXT, -FULLTEXT (title,body) -) ENGINE=InnoDB; -SET SESSION debug_dbug="+d,ib_dict_create_index_tree_fail"; -CREATE FULLTEXT INDEX idx ON articles(body); -ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_dict_create_index_tree_fail"; -ALTER TABLE articles STATS_PERSISTENT=DEFAULT; -DROP TABLE articles; diff --git a/mysql-test/suite/innodb_fts/r/innobase_drop_fts_index_table.result b/mysql-test/suite/innodb_fts/r/innobase_drop_fts_index_table.result deleted file mode 100644 index 8c0658cbf0f..00000000000 --- a/mysql-test/suite/innodb_fts/r/innobase_drop_fts_index_table.result +++ /dev/null @@ -1,6 +0,0 @@ -CREATE TABLE t (a INT, b TEXT) engine=innodb; -SET debug_dbug='+d,alter_table_rollback_new_index'; -ALTER TABLE t ADD FULLTEXT INDEX (b(64)); -ERROR HY000: Unknown error -SET debug_dbug='-d,alter_table_rollback_new_index'; -DROP TABLE t; diff --git a/mysql-test/suite/innodb_fts/r/innodb_fts_result_cache_limit.result b/mysql-test/suite/innodb_fts/r/innodb_fts_result_cache_limit.result index b4fe5154cc3..40a38e62a1e 100644 --- a/mysql-test/suite/innodb_fts/r/innodb_fts_result_cache_limit.result +++ b/mysql-test/suite/innodb_fts/r/innodb_fts_result_cache_limit.result @@ -16,6 +16,7 @@ INSERT INTO t1 (a,b) VALUES ('MySQL from Tutorial','DBMS stands for DataBase ...') , ('when To Use MySQL Well','After that you went through a ...'), ('where will Optimizing MySQL','what In this tutorial we will show ...'); +SET @saved_debug_dbug = @@SESSION.debug_dbug; SET SESSION debug_dbug="+d,fts_instrument_result_cache_limit"; SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('mysql' IN BOOLEAN MODE); COUNT(*) @@ -26,6 +27,6 @@ SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('"mysql database"' IN BOOLEAN ERROR HY000: Table handler out of memory SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('"mysql database" @ 5' IN BOOLEAN MODE); ERROR HY000: Table handler out of memory -SET SESSION debug_dbug="-d,fts_instrument_result_cache_limit"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE t1; SET GLOBAL innodb_ft_result_cache_limit=default; diff --git a/mysql-test/suite/innodb_fts/r/misc_debug.result b/mysql-test/suite/innodb_fts/r/misc_debug.result new file mode 100644 index 00000000000..1fcc89b165b --- /dev/null +++ b/mysql-test/suite/innodb_fts/r/misc_debug.result @@ -0,0 +1,19 @@ +CREATE TABLE articles ( +id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, +title VARCHAR(200), +body TEXT, +FULLTEXT (title,body) +) ENGINE=InnoDB; +SET @saved_debug_dbug = @@SESSION.debug_dbug; +SET SESSION debug_dbug="+d,ib_dict_create_index_tree_fail"; +CREATE FULLTEXT INDEX idx ON articles(body); +ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space +SET SESSION debug_dbug=@saved_debug_dbug; +ALTER TABLE articles STATS_PERSISTENT=DEFAULT; +DROP TABLE articles; +CREATE TABLE t (a INT, b TEXT) engine=innodb; +SET debug_dbug='+d,alter_table_rollback_new_index'; +ALTER TABLE t ADD FULLTEXT INDEX (b(64)); +ERROR HY000: Unknown error +SET SESSION debug_dbug=@saved_debug_dbug; +DROP TABLE t; diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_misc_debug.test b/mysql-test/suite/innodb_fts/t/crash_recovery.test similarity index 55% rename from mysql-test/suite/innodb_fts/t/innodb_fts_misc_debug.test rename to mysql-test/suite/innodb_fts/t/crash_recovery.test index db1d226990f..ec055930672 100644 --- a/mysql-test/suite/innodb_fts/t/innodb_fts_misc_debug.test +++ b/mysql-test/suite/innodb_fts/t/crash_recovery.test @@ -1,20 +1,12 @@ -#------------------------------------------------------------------------------ -# Misc FTS test on debug servers only -#------------------------------------------------------------------------------ +# Crash recovery tests for FULLTEXT INDEX. +# Note: These tests used to be part of a larger test, innodb_fts_misc_debug +# or innodb_fts.misc_debug. The part of the test that actually needs debug +# instrumentation been moved to innodb_fts.misc_debug. + --source include/have_innodb.inc - -# Must have debug code to use SET SESSION debug ---source include/have_debug.inc - -# Valgrind would complain about memory leaks when we crash on purpose. ---source include/not_valgrind.inc - -# Embedded server does not support crashing +# The embedded server tests do not support restarting. --source include/not_embedded.inc -# Avoid CrashReporter popup on Mac ---source include/not_crashrep.inc - # Following are test for crash recovery on FTS index, the first scenario # is for bug Bug #14586855 INNODB: FAILING ASSERTION: (DICT_INDEX_GET_N_UNIQUE( # PLAN->INDEX) <= PLAN->N_EXAC @@ -46,27 +38,7 @@ BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); -# Request a crash on next execution of commit. -SET SESSION debug_dbug="+d,crash_commit_before"; -# -# Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -# -# Execute the statement that causes the crash. ---error 2013 -COMMIT; - ---source include/wait_until_disconnected.inc ---sleep 2 - -# Turn on reconnect ---enable_reconnect -# -# Call script that will poll the server waiting for it to be back online again ---source include/wait_until_connected_again.inc -# -# Turn off reconnect again ---disable_reconnect +--source include/kill_and_restart_mysqld.inc # This insert will re-initialize the Doc ID counter, it should not crash INSERT INTO articles (title,body) VALUES @@ -90,33 +62,12 @@ INSERT INTO articles (title,body) VALUES ('MySQL vs. YourSQL','In the following database comparison ...'), ('MySQL Security','When configured properly, MySQL ...'); -# Now let's crash the server with "crash_commit_before" BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); -# Request a crash on next execution of commit. -SET SESSION debug_dbug="+d,crash_commit_before"; -# -# Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -# -# Execute the statement that causes the crash. ---error 2013 -COMMIT; - ---source include/wait_until_disconnected.inc ---sleep 2 - -# Turn on reconnect ---enable_reconnect -# -# Call script that will poll the server waiting for it to be back online again ---source include/wait_until_connected_again.inc -# -# Turn off reconnect again ---disable_reconnect +--source include/kill_and_restart_mysqld.inc # This insert will re-initialize the Doc ID counter, it should not crash INSERT INTO articles (title,body) VALUES @@ -150,31 +101,12 @@ INSERT INTO articles VALUES (5, 6, 'MySQL vs. YourSQL','In the following database comparison ...'), (7, 4, 'MySQL Security','When configured properly, MySQL ...'); -# Now let's crash the server with "crash_commit_before" BEGIN; INSERT INTO articles VALUES (100, 200, 'MySQL Tutorial','DBMS stands for DataBase ...'); -# Request a crash on next execution of commit. -SET SESSION debug_dbug="+d,crash_commit_before"; -# -# Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect -# -# Execute the statement that causes the crash. ---error 2013 -COMMIT; - ---source include/wait_until_disconnected.inc ---sleep 2 - -# Turn on reconnect ---enable_reconnect -# -# Call script that will poll the server waiting for it to be back online again ---source include/wait_until_connected_again.inc -# +--source include/kill_and_restart_mysqld.inc # This would re-initialize the FTS index and do the re-tokenization # of above records @@ -184,26 +116,3 @@ SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE); DROP TABLE articles; - -# Following test is for Bug 14668777 - ASSERT ON IB_VECTOR_SIZE( -# TABLE->FTS->INDEXES, ALTER TABLE -CREATE TABLE articles ( - id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, - title VARCHAR(200), - body TEXT, - FULLTEXT (title,body) - ) ENGINE=InnoDB; - -# Abort the operation in dict_create_index_step by setting -# return status of dict_create_index_tree_step() to DB_OUT_OF_MEMORY -# The newly create dict_index_t should be removed from fts cache -SET SESSION debug_dbug="+d,ib_dict_create_index_tree_fail"; ---error ER_OUT_OF_RESOURCES -CREATE FULLTEXT INDEX idx ON articles(body); -SET SESSION debug_dbug="-d,ib_dict_create_index_tree_fail"; - -# This simply go through ha_innobase::commit_inplace_alter_table -# and do a fts_check_cached_index() -ALTER TABLE articles STATS_PERSISTENT=DEFAULT; - -DROP TABLE articles; diff --git a/mysql-test/suite/innodb_fts/t/innobase_drop_fts_index_table.test b/mysql-test/suite/innodb_fts/t/innobase_drop_fts_index_table.test deleted file mode 100644 index 9d60160c14e..00000000000 --- a/mysql-test/suite/innodb_fts/t/innobase_drop_fts_index_table.test +++ /dev/null @@ -1,19 +0,0 @@ -# -# Test innobase_drop_fts_index_table() -# - --- source include/have_innodb.inc -# Must have debug code to use SET SESSION debug --- source include/have_debug.inc --- source include/not_embedded.inc - -CREATE TABLE t (a INT, b TEXT) engine=innodb; - -SET debug_dbug='+d,alter_table_rollback_new_index'; - --- error ER_UNKNOWN_ERROR -ALTER TABLE t ADD FULLTEXT INDEX (b(64)); - -SET debug_dbug='-d,alter_table_rollback_new_index'; - -DROP TABLE t; diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_result_cache_limit.test b/mysql-test/suite/innodb_fts/t/innodb_fts_result_cache_limit.test index dc55712b47c..669808edbf6 100644 --- a/mysql-test/suite/innodb_fts/t/innodb_fts_result_cache_limit.test +++ b/mysql-test/suite/innodb_fts/t/innodb_fts_result_cache_limit.test @@ -27,6 +27,7 @@ INSERT INTO t1 (a,b) VALUES ('when To Use MySQL Well','After that you went through a ...'), ('where will Optimizing MySQL','what In this tutorial we will show ...'); +SET @saved_debug_dbug = @@SESSION.debug_dbug; SET SESSION debug_dbug="+d,fts_instrument_result_cache_limit"; # Simple term search @@ -44,7 +45,7 @@ SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('"mysql database"' IN BOOLEAN --error 128 SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('"mysql database" @ 5' IN BOOLEAN MODE); -SET SESSION debug_dbug="-d,fts_instrument_result_cache_limit"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE t1; diff --git a/mysql-test/suite/innodb_fts/t/misc_debug.test b/mysql-test/suite/innodb_fts/t/misc_debug.test new file mode 100644 index 00000000000..4b32afb848c --- /dev/null +++ b/mysql-test/suite/innodb_fts/t/misc_debug.test @@ -0,0 +1,41 @@ +# Miscellanous FULLTEXT INDEX tests for debug-instrumented servers. +# Note: These tests used to be part of a larger test, innodb_fts_misc_debug +# or innodb_fts.misc_debug. A large part of that test can be run on a +# non-debug server and has been renamed to innodb_fts.crash_recovery. + +--source include/have_innodb.inc +--source include/have_debug.inc + +# Following test is for Bug 14668777 - ASSERT ON IB_VECTOR_SIZE( +# TABLE->FTS->INDEXES, ALTER TABLE +CREATE TABLE articles ( + id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, + title VARCHAR(200), + body TEXT, + FULLTEXT (title,body) + ) ENGINE=InnoDB; + +# Abort the operation in dict_create_index_step by setting +# return status of dict_create_index_tree_step() to DB_OUT_OF_MEMORY +# The newly create dict_index_t should be removed from fts cache +SET @saved_debug_dbug = @@SESSION.debug_dbug; +SET SESSION debug_dbug="+d,ib_dict_create_index_tree_fail"; +--error ER_OUT_OF_RESOURCES +CREATE FULLTEXT INDEX idx ON articles(body); +SET SESSION debug_dbug=@saved_debug_dbug; + +# This simply go through ha_innobase::commit_inplace_alter_table +# and do a fts_check_cached_index() +ALTER TABLE articles STATS_PERSISTENT=DEFAULT; + +DROP TABLE articles; + +# This test used to be called innodb_fts.innobase_drop_fts_index_table: + +CREATE TABLE t (a INT, b TEXT) engine=innodb; +SET debug_dbug='+d,alter_table_rollback_new_index'; +-- error ER_UNKNOWN_ERROR +ALTER TABLE t ADD FULLTEXT INDEX (b(64)); +SET SESSION debug_dbug=@saved_debug_dbug; + +DROP TABLE t; From 3c411e3ad66d0b4ddee2563deb621db249b94432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 8 Feb 2017 12:48:25 +0200 Subject: [PATCH 154/258] Test fix for MDEV-6076 Persistent AUTO_INCREMENT for InnoDB Before killing the server, ensure that the redo log for the incomplete transaction is flushed, so that the AUTO_INCREMENT sequence will always be updated. Usually the INSERT transaction would not have persisted the sequence before the server was killed, but sometimes it could happen, causing result mismatch. Note: This test used to be called innodb_fts.innodb_fts_misc_debug. --- .../suite/innodb_fts/r/crash_recovery.result | 24 +++++++++++++++---- .../suite/innodb_fts/t/crash_recovery.test | 20 ++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/mysql-test/suite/innodb_fts/r/crash_recovery.result b/mysql-test/suite/innodb_fts/r/crash_recovery.result index e21631471d2..2ff867b70fe 100644 --- a/mysql-test/suite/innodb_fts/r/crash_recovery.result +++ b/mysql-test/suite/innodb_fts/r/crash_recovery.result @@ -15,6 +15,14 @@ INSERT INTO articles (title,body) VALUES BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); +# Make durable the AUTO_INCREMENT in the above incomplete transaction. +connect flush_redo_log,localhost,root,,; +SET GLOBAL innodb_flush_log_at_trx_commit=1; +BEGIN; +DELETE FROM articles LIMIT 1; +ROLLBACK; +disconnect flush_redo_log; +connection default; # Kill and restart INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); @@ -25,7 +33,7 @@ AGAINST ('Database' IN NATURAL LANGUAGE MODE); id title body 1 MySQL Tutorial DBMS stands for DataBase ... 5 MySQL vs. YourSQL In the following database comparison ... -7 MySQL Tutorial DBMS stands for DataBase ... +8 MySQL Tutorial DBMS stands for DataBase ... INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...') , ('How To Use MySQL Well','After you went through a ...'), @@ -36,6 +44,14 @@ INSERT INTO articles (title,body) VALUES BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); +# Make durable the AUTO_INCREMENT in the above incomplete transaction. +connect flush_redo_log,localhost,root,,; +SET GLOBAL innodb_flush_log_at_trx_commit=1; +BEGIN; +DELETE FROM articles LIMIT 1; +ROLLBACK; +disconnect flush_redo_log; +connection default; # Kill and restart INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); @@ -45,10 +61,10 @@ AGAINST ('Database' IN NATURAL LANGUAGE MODE); id title body 1 MySQL Tutorial DBMS stands for DataBase ... 5 MySQL vs. YourSQL In the following database comparison ... -7 MySQL Tutorial DBMS stands for DataBase ... 8 MySQL Tutorial DBMS stands for DataBase ... -12 MySQL vs. YourSQL In the following database comparison ... -14 MySQL Tutorial DBMS stands for DataBase ... +9 MySQL Tutorial DBMS stands for DataBase ... +13 MySQL vs. YourSQL In the following database comparison ... +16 MySQL Tutorial DBMS stands for DataBase ... DROP TABLE articles; CREATE TABLE articles ( id int PRIMARY KEY, diff --git a/mysql-test/suite/innodb_fts/t/crash_recovery.test b/mysql-test/suite/innodb_fts/t/crash_recovery.test index ec055930672..63c920a91ec 100644 --- a/mysql-test/suite/innodb_fts/t/crash_recovery.test +++ b/mysql-test/suite/innodb_fts/t/crash_recovery.test @@ -38,6 +38,15 @@ BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); +--echo # Make durable the AUTO_INCREMENT in the above incomplete transaction. +--connect (flush_redo_log,localhost,root,,) +SET GLOBAL innodb_flush_log_at_trx_commit=1; +BEGIN; +DELETE FROM articles LIMIT 1; +ROLLBACK; +--disconnect flush_redo_log +--connection default + --source include/kill_and_restart_mysqld.inc # This insert will re-initialize the Doc ID counter, it should not crash @@ -67,6 +76,15 @@ BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); +--echo # Make durable the AUTO_INCREMENT in the above incomplete transaction. +--connect (flush_redo_log,localhost,root,,) +SET GLOBAL innodb_flush_log_at_trx_commit=1; +BEGIN; +DELETE FROM articles LIMIT 1; +ROLLBACK; +--disconnect flush_redo_log +--connection default + --source include/kill_and_restart_mysqld.inc # This insert will re-initialize the Doc ID counter, it should not crash @@ -103,6 +121,8 @@ INSERT INTO articles VALUES BEGIN; +# Below we do not depend on the durability of the AUTO_INCREMENT sequence, +# so we can skip the above flush_redo_log trick. INSERT INTO articles VALUES (100, 200, 'MySQL Tutorial','DBMS stands for DataBase ...'); From bae2fc1f3813d33ac0d5afca73d34024acf97f98 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Wed, 8 Feb 2017 12:19:28 +0000 Subject: [PATCH 155/258] More verbose output for the Wix linker (light.exe) This is an attempt to workaround buildbot "1200 seconds without output, killing process" --- win/packaging/create_msi.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/packaging/create_msi.cmake.in b/win/packaging/create_msi.cmake.in index 1f847a39695..4b05e61decd 100644 --- a/win/packaging/create_msi.cmake.in +++ b/win/packaging/create_msi.cmake.in @@ -425,7 +425,7 @@ EXECUTE_PROCESS( ) EXECUTE_PROCESS( - COMMAND ${LIGHT_EXECUTABLE} -ext WixUIExtension -ext WixUtilExtension + COMMAND ${LIGHT_EXECUTABLE} -v -ext WixUIExtension -ext WixUtilExtension -ext WixFirewallExtension -sice:ICE61 mysql_server.wixobj extra.wixobj -out ${CPACK_PACKAGE_FILE_NAME}.msi ${EXTRA_LIGHT_ARGS} From 070a8754c44e29572d1fafbfece251ace23ba41d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 8 Feb 2017 15:42:15 +0200 Subject: [PATCH 156/258] MDEV-12024 InnoDB startup fails to wait for recv_writer_thread to finish recv_writer_thread(): Do not assign recv_writer_thread_active=true in order to avoid a race condition with recv_recovery_from_checkpoint_finish(). recv_init_crash_recovery_spaces(): Assign recv_writer_thread_active=true before creating recv_writer_thread. --- storage/innobase/include/log0recv.h | 4 +--- storage/innobase/log/log0recv.cc | 5 ++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/storage/innobase/include/log0recv.h b/storage/innobase/include/log0recv.h index acffa1b562b..b0ba72427a1 100644 --- a/storage/innobase/include/log0recv.h +++ b/storage/innobase/include/log0recv.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. 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 @@ -288,9 +289,6 @@ number (FIL_PAGE_LSN) is in the future. Initially FALSE, and set by recv_recovery_from_checkpoint_start(). */ extern bool recv_lsn_checks_on; -/** Flag indicating if recv_writer thread is active. */ -extern volatile bool recv_writer_thread_active; - /** Size of the parsing buffer; it must accommodate RECV_SCAN_SIZE many times! */ #define RECV_PARSING_BUF_SIZE (2 * 1024 * 1024) diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index 803ce99e707..befa7e58ccd 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -128,7 +128,7 @@ mysql_pfs_key_t recv_writer_thread_key; #endif /* UNIV_PFS_THREAD */ /** Flag indicating if recv_writer thread is active. */ -volatile bool recv_writer_thread_active = false; +static volatile bool recv_writer_thread_active; #ifndef DBUG_OFF /** Return string name of the redo log record type. @@ -559,8 +559,6 @@ DECLARE_THREAD(recv_writer_thread)( << os_thread_pf(os_thread_get_curr_id()); #endif /* UNIV_DEBUG_THREAD_CREATION */ - recv_writer_thread_active = true; - while (srv_shutdown_state == SRV_SHUTDOWN_NONE) { /* Wait till we get a signal to clean the LRU list. @@ -3167,6 +3165,7 @@ recv_init_crash_recovery_spaces(void) if (srv_force_recovery < SRV_FORCE_NO_LOG_REDO) { /* Spawn the background thread to flush dirty pages from the buffer pools. */ + recv_writer_thread_active = true; os_thread_create(recv_writer_thread, 0, 0); } From 66c6188a4b21d81b8d882386e0b059c4a6d05224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 9 Feb 2017 10:04:00 +0200 Subject: [PATCH 157/258] Relax assertions on shutdown after aborted startup. A proper InnoDB shutdown after aborted startup was introduced in commit 81b7fe9d383bdf68a622b95384f067ed68ba342c. Also related to this is MDEV-11985, making read-only shutdown more robust. If startup was aborted, there may exist recovered transactions that were not rolled back. Relax the assertions accordingly. --- mysql-test/suite/innodb/r/log_file_size.result | 11 +++++++++-- mysql-test/suite/innodb/t/log_file_size.test | 12 ++++++++++-- sql/sql_show.cc | 3 ++- storage/innobase/trx/trx0sys.cc | 2 ++ storage/innobase/trx/trx0trx.cc | 5 +++-- storage/innobase/trx/trx0undo.cc | 7 +++++-- 6 files changed, 31 insertions(+), 9 deletions(-) diff --git a/mysql-test/suite/innodb/r/log_file_size.result b/mysql-test/suite/innodb/r/log_file_size.result index b73862af7c4..3f8f99fe8c7 100644 --- a/mysql-test/suite/innodb/r/log_file_size.result +++ b/mysql-test/suite/innodb/r/log_file_size.result @@ -11,9 +11,16 @@ DELETE FROM t1; SELECT * FROM t1; a 42 -INSERT INTO t1 VALUES (123); +INSERT INTO t1 VALUES (0),(123); BEGIN; -DELETE FROM t1; +DELETE FROM t1 WHERE a>0; +# Persist the state of the above incomplete transaction by +# causing a redo log write for another transaction. +connect con1, localhost, root; +SET GLOBAL innodb_flush_log_at_trx_commit=1; +DELETE FROM t1 WHERE a=0; +disconnect con1; +connection default; # Kill the server SELECT * FROM t1; ERROR 42000: Unknown storage engine 'InnoDB' diff --git a/mysql-test/suite/innodb/t/log_file_size.test b/mysql-test/suite/innodb/t/log_file_size.test index 9d004991735..9145f2bf13c 100644 --- a/mysql-test/suite/innodb/t/log_file_size.test +++ b/mysql-test/suite/innodb/t/log_file_size.test @@ -49,7 +49,7 @@ let $restart_parameters = --innodb-log-files-in-group=3 --innodb-log-file-size=5 SELECT * FROM t1; -INSERT INTO t1 VALUES (123); +INSERT INTO t1 VALUES (0),(123); let MYSQLD_DATADIR= `select @@datadir`; let SEARCH_ABORT = NOT FOUND; @@ -57,7 +57,15 @@ let SEARCH_RANGE= -50000; let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; BEGIN; -DELETE FROM t1; +DELETE FROM t1 WHERE a>0; + +--echo # Persist the state of the above incomplete transaction by +--echo # causing a redo log write for another transaction. +--connect(con1, localhost, root) +SET GLOBAL innodb_flush_log_at_trx_commit=1; +DELETE FROM t1 WHERE a=0; +--disconnect con1 +--connection default --source include/kill_mysqld.inc diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 58fc2edc6f2..180856d9f16 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -7609,7 +7609,8 @@ TABLE *create_schema_table(THD *thd, TABLE_LIST *table_list) case MYSQL_TYPE_BLOB: if (!(item= new (mem_root) Item_blob(thd, fields_info->field_name, - fields_info->field_length))) + std::min(unsigned (strlen(fields_info->field_name)), + fields_info->field_length)))) { DBUG_RETURN(0); } diff --git a/storage/innobase/trx/trx0sys.cc b/storage/innobase/trx/trx0sys.cc index 94ea858f729..434e29bcf27 100644 --- a/storage/innobase/trx/trx0sys.cc +++ b/storage/innobase/trx/trx0sys.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. 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 @@ -1097,6 +1098,7 @@ trx_sys_close(void) /* Only prepared transactions may be left in the system. Free them. */ ut_a(UT_LIST_GET_LEN(trx_sys->rw_trx_list) == trx_sys->n_prepared_trx + || !srv_was_started || srv_read_only_mode || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO); diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc index acb73e0ad33..94caf5bd4c0 100644 --- a/storage/innobase/trx/trx0trx.cc +++ b/storage/innobase/trx/trx0trx.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2015, 2016, MariaDB Corporation. +Copyright (c) 2015, 2017, MariaDB Corporation. 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 @@ -635,7 +635,8 @@ trx_free_prepared( ut_a(trx_state_eq(trx, TRX_STATE_PREPARED) || (trx_state_eq(trx, TRX_STATE_ACTIVE) && trx->is_recovered - && (srv_read_only_mode + && (!srv_was_started + || srv_read_only_mode || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO))); ut_a(trx->magic_n == TRX_MAGIC_N); diff --git a/storage/innobase/trx/trx0undo.cc b/storage/innobase/trx/trx0undo.cc index aaf0e397607..4bc40680c4b 100644 --- a/storage/innobase/trx/trx0undo.cc +++ b/storage/innobase/trx/trx0undo.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. 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 @@ -2021,7 +2022,8 @@ trx_undo_free_prepared( case TRX_UNDO_ACTIVE: /* lock_trx_release_locks() assigns trx->is_recovered=false */ - ut_a(srv_read_only_mode + ut_a(!srv_was_started + || srv_read_only_mode || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO); break; default: @@ -2042,7 +2044,8 @@ trx_undo_free_prepared( case TRX_UNDO_ACTIVE: /* lock_trx_release_locks() assigns trx->is_recovered=false */ - ut_a(srv_read_only_mode + ut_a(!srv_was_started + || srv_read_only_mode || srv_force_recovery >= SRV_FORCE_NO_TRX_UNDO); break; default: From 0e6968c2441769e912b1cf743b158f48206f933e Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Thu, 9 Feb 2017 17:38:53 +0400 Subject: [PATCH 158/258] MDEV-11857 json_search() shows "Out of memory" with empty key. We should be ready for an empty key. --- mysql-test/t/func_json.test | 5 +++++ sql/item_jsonfunc.cc | 12 ++++++++---- strings/json_lib.c | 4 +++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test index 2ed5282abc0..9b4673d19a1 100644 --- a/mysql-test/t/func_json.test +++ b/mysql-test/t/func_json.test @@ -220,3 +220,8 @@ SELECT json_replace('1', '$[0][0]', 100); SELECT json_replace('[]', '$[0][0]', 100); SELECT json_set('[]', '$[0][0]', 100); SELECT json_set('[]', '$[0][0][0]', 100); + +# +# MDEV-11857 json_search() shows "Out of memory" with empty key. +# +SELECT JSON_search( '{"": "a"}', "one", 'a'); diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc index 73b0e6b0870..3cf7b55d6e3 100644 --- a/sql/item_jsonfunc.cc +++ b/sql/item_jsonfunc.cc @@ -147,8 +147,10 @@ static int json_nice(json_engine_t *je, String *nice_js, const uchar *key_start= je->s.c_str; const uchar *key_end; - while (json_read_keyname_chr(je) == 0) + do + { key_end= je->s.c_str; + } while (json_read_keyname_chr(je) == 0); if (je->s.error) goto error; @@ -892,8 +894,10 @@ static int check_contains(json_engine_t *js, json_engine_t *value) DBUG_ASSERT(value->state == JST_KEY); k_start= value->s.c_str; - while (json_read_keyname_chr(value) == 0) + do + { k_end= value->s.c_str; + } while (json_read_keyname_chr(value) == 0); if (value->s.error || json_read_value(value)) return FALSE; @@ -2527,10 +2531,10 @@ skip_search: { case JST_KEY: key_start= je.s.c_str; - while (json_read_keyname_chr(&je) == 0) + do { key_end= je.s.c_str; - } + } while (json_read_keyname_chr(&je) == 0); if (je.s.error || (n_keys > 0 && str->append(", ", 2)) || str->append("\"", 1) || diff --git a/strings/json_lib.c b/strings/json_lib.c index cc3a8adf0aa..213be62aa22 100644 --- a/strings/json_lib.c +++ b/strings/json_lib.c @@ -1701,8 +1701,10 @@ int json_get_path_next(json_engine_t *je, json_path_t *p) { case JST_KEY: p->last_step->key= je->s.c_str; - while (json_read_keyname_chr(je) == 0) + do + { p->last_step->key_end= je->s.c_str; + } while (json_read_keyname_chr(je) == 0); if (je->s.error) return 1; /* Now we have je.state == JST_VALUE, so let's handle it. */ From 5ffbd084f5dc1e7d05fd3172237ed50feef70b18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 9 Feb 2017 16:02:21 +0200 Subject: [PATCH 159/258] Revert an accidental commit to work around MDEV-11601. --- sql/sql_show.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 180856d9f16..58fc2edc6f2 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -7609,8 +7609,7 @@ TABLE *create_schema_table(THD *thd, TABLE_LIST *table_list) case MYSQL_TYPE_BLOB: if (!(item= new (mem_root) Item_blob(thd, fields_info->field_name, - std::min(unsigned (strlen(fields_info->field_name)), - fields_info->field_length)))) + fields_info->field_length))) { DBUG_RETURN(0); } From ddb284afaaf6046c4699c634e711c2bf620923d8 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 16 Jan 2017 18:47:53 +0100 Subject: [PATCH 160/258] MDEV-11601 Out-of-bounds string access in create_schema_table() in Item_partition_func_safe_string(THD *thd, const char *name_arg, uint length, CHARSET_INFO *cs= NULL), the 'name_arg' is the value of the string constant and 'length' is the length of this constant, so length == strlen(name_arg). --- sql/item.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/item.h b/sql/item.h index bb2f05b4c6d..bdea0289df9 100644 --- a/sql/item.h +++ b/sql/item.h @@ -3480,7 +3480,7 @@ class Item_blob :public Item_partition_func_safe_string { public: Item_blob(THD *thd, const char *name_arg, uint length): - Item_partition_func_safe_string(thd, name_arg, length, &my_charset_bin) + Item_partition_func_safe_string(thd, name_arg, strlen(name_arg), &my_charset_bin) { max_length= length; } enum Type type() const { return TYPE_HOLDER; } enum_field_types field_type() const { return MYSQL_TYPE_BLOB; } From 777422070ae31985045aec0555491f381996d615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 9 Feb 2017 15:57:21 +0200 Subject: [PATCH 161/258] Adjust a test that is not supposed to crash. This is follow-up to commit 1293e5e59b6b412156ef8a78f762c0b099a10b50. --- mysql-test/suite/innodb/t/log_file_size.test | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/mysql-test/suite/innodb/t/log_file_size.test b/mysql-test/suite/innodb/t/log_file_size.test index 9145f2bf13c..25988fc6fd8 100644 --- a/mysql-test/suite/innodb/t/log_file_size.test +++ b/mysql-test/suite/innodb/t/log_file_size.test @@ -1,11 +1,7 @@ # Test resizing the InnoDB redo log. - --source include/have_innodb.inc - -# Embedded server does not support crashing +# Embedded server tests do not support restarting --source include/not_embedded.inc -# Avoid CrashReporter popup on Mac ---source include/not_crashrep.inc # DBUG_EXECUTE_IF is needed --source include/have_debug.inc From 3ae038b732ce503fb839e9095355e05f5c6866f9 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Thu, 9 Feb 2017 17:55:58 +0400 Subject: [PATCH 162/258] MDEV-11857 json_search() shows "Out of memory" with empty key. Test result updated. --- mysql-test/r/func_json.result | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index bfee73c2eef..e72da47e4ae 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -552,3 +552,6 @@ json_set('[]', '$[0][0]', 100) SELECT json_set('[]', '$[0][0][0]', 100); json_set('[]', '$[0][0][0]', 100) [] +SELECT JSON_search( '{"": "a"}', "one", 'a'); +JSON_search( '{"": "a"}', "one", 'a') +"$." From 25aaecb240d20547791cbbc06f1ccb3630782cd5 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Fri, 10 Feb 2017 01:05:27 +0400 Subject: [PATCH 163/258] MDEV-11858 json_merge() concatenates instead of merging. Fix json_merge implementation. --- mysql-test/r/func_json.result | 12 + mysql-test/suite/json/r/json_no_table.result | 28 +-- mysql-test/t/func_json.test | 9 + sql/item_jsonfunc.cc | 251 +++++++++++++++---- strings/json_lib.c | 7 - 5 files changed, 236 insertions(+), 71 deletions(-) diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index e72da47e4ae..bdee7cb9f7f 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -555,3 +555,15 @@ json_set('[]', '$[0][0][0]', 100) SELECT JSON_search( '{"": "a"}', "one", 'a'); JSON_search( '{"": "a"}', "one", 'a') "$." +select json_merge('{"a":"b"}', '{"a":"c"}') ; +json_merge('{"a":"b"}', '{"a":"c"}') +{"a": ["b", "c"]} +select json_merge('{"a":{"x":"b"}}', '{"a":"c"}') ; +json_merge('{"a":{"x":"b"}}', '{"a":"c"}') +{"a": [{"x": "b"}, "c"]} +select json_merge('{"a":{"u":12, "x":"b"}}', '{"a":{"x":"c"}}') ; +json_merge('{"a":{"u":12, "x":"b"}}', '{"a":{"x":"c"}}') +{"a": {"u": 12, "x": ["b", "c"]}} +select json_merge('{"a":{"u":12, "x":"b", "r":1}}', '{"a":{"x":"c", "r":2}}') ; +json_merge('{"a":{"u":12, "x":"b", "r":1}}', '{"a":{"x":"c", "r":2}}') +{"a": {"u": 12, "x": ["b", "c"], "r": [1, 2]}} diff --git a/mysql-test/suite/json/r/json_no_table.result b/mysql-test/suite/json/r/json_no_table.result index 3201d0fc432..9ea5e94c96e 100644 --- a/mysql-test/suite/json/r/json_no_table.result +++ b/mysql-test/suite/json/r/json_no_table.result @@ -819,7 +819,7 @@ select json_merge( '[1, 2]', '[3, 4' ); json_merge( '[1, 2]', '[3, 4' ) NULL Warnings: -Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_merge' +Warning 4037 Unexpected end of JSON text in argument 2 to function 'json_merge' error ER_INVALID_JSON_TEXT_IN_PARAM select json_merge( '[1, 2', '[3, 4]' ); json_merge( '[1, 2', '[3, 4]' ) @@ -855,31 +855,31 @@ json_merge( '{ "a": 2 }', '[1, 2]' ) [{"a": 2}, 1, 2] select json_merge( '{"a": 1, "b": 2 }', '{"b": 3, "d": 4 }' ); json_merge( '{"a": 1, "b": 2 }', '{"b": 3, "d": 4 }' ) -{"a": 1, "b": 2, "b": 3, "d": 4} +{"a": 1, "b": [2, 3], "d": 4} select json_merge( '{"a": 1, "b": 2 }', '{"b": [3, 4], "d": 4 }' ); json_merge( '{"a": 1, "b": 2 }', '{"b": [3, 4], "d": 4 }' ) -{"a": 1, "b": 2, "b": [3, 4], "d": 4} +{"a": 1, "b": [2, 3, 4], "d": 4} select json_merge( '{"a": 1, "b": [2, 3] }', '{"b": 4, "d": 4 }' ); json_merge( '{"a": 1, "b": [2, 3] }', '{"b": 4, "d": 4 }' ) -{"a": 1, "b": [2, 3], "b": 4, "d": 4} +{"a": 1, "b": [2, 3, 4], "d": 4} select json_merge( '{"a": 1, "b": 2 }', '{"b": {"e": 7, "f": 8}, "d": 4 }' ); json_merge( '{"a": 1, "b": 2 }', '{"b": {"e": 7, "f": 8}, "d": 4 }' ) -{"a": 1, "b": 2, "b": {"e": 7, "f": 8}, "d": 4} +{"a": 1, "b": [2, {"e": 7, "f": 8}], "d": 4} select json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": 2 }' ); json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": 2 }' ) -{"b": {"e": 7, "f": 8}, "d": 4, "a": 1, "b": 2} +{"b": [{"e": 7, "f": 8}, 2], "d": 4, "a": 1} select json_merge( '{"a": 1, "b": [2, 9] }', '{"b": [10, 11], "d": 4 }' ); json_merge( '{"a": 1, "b": [2, 9] }', '{"b": [10, 11], "d": 4 }' ) -{"a": 1, "b": [2, 9], "b": [10, 11], "d": 4} +{"a": 1, "b": [2, 9, 10, 11], "d": 4} select json_merge( '{"a": 1, "b": [2, 9] }', '{"b": {"e": 7, "f": 8}, "d": 4 }' ); json_merge( '{"a": 1, "b": [2, 9] }', '{"b": {"e": 7, "f": 8}, "d": 4 }' ) -{"a": 1, "b": [2, 9], "b": {"e": 7, "f": 8}, "d": 4} +{"a": 1, "b": [2, 9, {"e": 7, "f": 8}], "d": 4} select json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": [2, 9] }' ); json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{"a": 1, "b": [2, 9] }' ) -{"b": {"e": 7, "f": 8}, "d": 4, "a": 1, "b": [2, 9]} +{"b": [{"e": 7, "f": 8}, 2, 9], "d": 4, "a": 1} select json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{ "a": 1, "b": {"e": 20, "g": 21 } }' ); json_merge( '{"b": {"e": 7, "f": 8}, "d": 4 }', '{ "a": 1, "b": {"e": 20, "g": 21 } }' ) -{"b": {"e": 7, "f": 8}, "d": 4, "a": 1, "b": {"e": 20, "g": 21}} +{"b": {"e": [7, 20], "f": 8, "g": 21}, "d": 4, "a": 1} select json_merge( '1', '2', '3' ); json_merge( '1', '2', '3' ) [1, 2, 3] @@ -898,7 +898,7 @@ json_merge '{ "d": false, "b": { "g": 3, "d": 5 }, "f": [ 1, 2 ] }', '{ "m": true, "b": { "h": 8, "d": 4 }, "e": [ 3, 4 ] }' ) -{"a": true, "b": {"c": 3, "d": 4}, "e": [1, 2], "d": false, "b": {"g": 3, "d": 5}, "f": [1, 2], "m": true, "b": {"h": 8, "d": 4}, "e": [3, 4]} +{"a": true, "b": {"c": 3, "d": [4, 5, 4], "g": 3, "h": 8}, "e": [1, 2, 3, 4], "d": false, "f": [1, 2], "m": true} SELECT JSON_MERGE ( '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', @@ -920,7 +920,7 @@ JSON_MERGE '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '{ "b": [ false, 34 ] }' ) -{"a": "foo", "b": [true, {"c": 123}], "b": [false, 34]} +{"a": "foo", "b": [true, {"c": 123}, false, 34]} SELECT JSON_MERGE ( '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', @@ -931,7 +931,7 @@ JSON_MERGE '{ "a" : "foo", "b" : [ true, { "c" : 123 } ] }', '{ "b": "bar" }' ) -{"a": "foo", "b": [true, {"c": 123}], "b": "bar"} +{"a": "foo", "b": [true, {"c": 123}, "bar"]} SELECT JSON_MERGE ( '{ "a" : { "b" : 1 } }', @@ -942,7 +942,7 @@ JSON_MERGE '{ "a" : { "b" : 1 } }', '{ "a" : { "c" : 1 } }' ) -{"a": {"b": 1}, "a": {"c": 1}} +{"a": {"b": 1, "c": 1}} # ---------------------------------------------------------------------- # Test of JSON_TYPE function. # ---------------------------------------------------------------------- diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test index 9b4673d19a1..aedc65159c5 100644 --- a/mysql-test/t/func_json.test +++ b/mysql-test/t/func_json.test @@ -225,3 +225,12 @@ SELECT json_set('[]', '$[0][0][0]', 100); # MDEV-11857 json_search() shows "Out of memory" with empty key. # SELECT JSON_search( '{"": "a"}', "one", 'a'); + +# +# MDEV-11858 json_merge() concatenates instead of merging. +# + +select json_merge('{"a":"b"}', '{"a":"c"}') ; +select json_merge('{"a":{"x":"b"}}', '{"a":"c"}') ; +select json_merge('{"a":{"u":12, "x":"b"}}', '{"a":{"x":"c"}}') ; +select json_merge('{"a":{"u":12, "x":"b", "r":1}}', '{"a":{"x":"c", "r":2}}') ; diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc index 3cf7b55d6e3..ae885dc7702 100644 --- a/sql/item_jsonfunc.cc +++ b/sql/item_jsonfunc.cc @@ -1721,6 +1721,203 @@ err_return: } +static int do_merge(String *str, json_engine_t *je1, json_engine_t *je2) +{ + if (json_read_value(je1) || json_read_value(je2)) + return 1; + + if (je1->value_type == JSON_VALUE_OBJECT && + je2->value_type == JSON_VALUE_OBJECT) + { + json_engine_t sav_je1= *je1; + json_engine_t sav_je2= *je2; + + int first_key= 1; + json_string_t key_name; + + json_string_set_cs(&key_name, je1->s.cs); + + if (str->append("{", 1)) + return 3; + while (json_scan_next(je1) == 0 && + je1->state != JST_OBJ_END) + { + const uchar *key_start, *key_end; + /* Loop through the Json_1 keys and compare with the Json_2 keys. */ + DBUG_ASSERT(je1->state == JST_KEY); + key_start= je1->s.c_str; + do + { + key_end= je1->s.c_str; + } while (json_read_keyname_chr(je1) == 0); + + if (je1->s.error) + return 1; + + if (first_key) + first_key= 0; + else + { + if (str->append(", ", 2)) + return 3; + *je2= sav_je2; + } + + if (str->append("\"", 1) || + append_simple(str, key_start, key_end - key_start) || + str->append("\":", 2)) + return 3; + + while (json_scan_next(je2) == 0 && + je2->state != JST_OBJ_END) + { + int ires; + DBUG_ASSERT(je2->state == JST_KEY); + json_string_set_str(&key_name, key_start, key_end); + if (!json_key_matches(je2, &key_name)) + { + if (je2->s.error || json_skip_key(je2)) + return 2; + continue; + } + + /* Json_2 has same key as Json_1. Merge them. */ + if ((ires= do_merge(str, je1, je2))) + return ires; + goto merged_j1; + } + if (je2->s.error) + return 2; + + key_start= je1->s.c_str; + /* Just append the Json_1 key value. */ + if (json_skip_key(je1)) + return 1; + if (append_simple(str, key_start, je1->s.c_str - key_start)) + return 3; + +merged_j1: + continue; + } + + *je2= sav_je2; + /* + Now loop through the Json_2 keys. + Skip if there is same key in Json_1 + */ + while (json_scan_next(je2) == 0 && + je2->state != JST_OBJ_END) + { + const uchar *key_start, *key_end; + DBUG_ASSERT(je2->state == JST_KEY); + key_start= je2->s.c_str; + do + { + key_end= je2->s.c_str; + } while (json_read_keyname_chr(je2) == 0); + + if (je2->s.error) + return 1; + + *je1= sav_je1; + while (json_scan_next(je1) == 0 && + je1->state != JST_OBJ_END) + { + DBUG_ASSERT(je1->state == JST_KEY); + json_string_set_str(&key_name, key_start, key_end); + if (!json_key_matches(je1, &key_name)) + { + if (je1->s.error || json_skip_key(je1)) + return 2; + continue; + } + if (json_skip_key(je2) || + json_skip_level(je1)) + return 1; + goto continue_j2; + } + + if (je1->s.error) + return 2; + + if (first_key) + first_key= 0; + else if (str->append(", ", 2)) + return 3; + + if (json_skip_key(je2)) + return 1; + + if (str->append("\"", 1) || + append_simple(str, key_start, je2->s.c_str - key_start)) + return 3; + +continue_j2: + continue; + } + + if (str->append("}", 1)) + return 3; + } + else + { + const uchar *end1, *beg1, *end2, *beg2; + + beg1= je1->value_begin; + + /* Merge as a single array. */ + if (je1->value_type == JSON_VALUE_ARRAY) + { + if (json_skip_level(je1)) + return 1; + end1= je1->s.c_str - je1->sav_c_len; + } + else + { + if (str->append("[", 1)) + return 3; + if (je1->value_type == JSON_VALUE_OBJECT) + { + if (json_skip_level(je1)) + return 1; + end1= je1->s.c_str; + } + else + end1= je1->value_end; + } + + if (str->append((const char*) beg1, end1 - beg1), + str->append(", ", 2)) + return 3; + + if (json_value_scalar(je2)) + { + beg2= je2->value_begin; + end2= je2->value_end; + } + else + { + if (je2->value_type == JSON_VALUE_OBJECT) + beg2= je2->value_begin; + else + beg2= je2->s.c_str; + if (json_skip_level(je2)) + return 2; + end2= je2->s.c_str; + } + + if (str->append((const char*) beg2, end2 - beg2)) + return 3; + + if (je2->value_type != JSON_VALUE_ARRAY && + str->append("]", 1)) + return 3; + } + + return 0; +} + + String *Item_func_json_merge::val_str(String *str) { DBUG_ASSERT(fixed == 1); @@ -1733,6 +1930,9 @@ String *Item_func_json_merge::val_str(String *str) for (n_arg=1; n_arg < arg_count; n_arg++) { + str->set_charset(js1->charset()); + str->length(0); + js2= args[n_arg]->val_str(&tmp_js2); if (args[n_arg]->null_value) goto null_return; @@ -1743,58 +1943,9 @@ String *Item_func_json_merge::val_str(String *str) json_scan_start(&je2, js2->charset(),(const uchar *) js2->ptr(), (const uchar *) js2->ptr() + js2->length()); - if (json_read_value(&je1) || json_read_value(&je2)) + if (do_merge(str, &je1, &je2)) goto error_return; - str->length(0); - if (je1.value_type == JSON_VALUE_OBJECT && - je2.value_type == JSON_VALUE_OBJECT) - { - /* Wrap as a single objects. */ - if (json_skip_level(&je1)) - goto error_return; - if (str->append(js1->ptr(), - ((const char *)je1.s.c_str - js1->ptr()) - je1.sav_c_len) || - str->append(", ", 2) || - str->append((const char *)je2.s.c_str, - js2->length() - ((const char *)je2.s.c_str - js2->ptr()))) - goto error_return; - } - else - { - const char *end1, *beg2; - - /* Merge as a single array. */ - if (je1.value_type == JSON_VALUE_ARRAY) - { - if (json_skip_level(&je1)) - goto error_return; - end1= (const char *) (je1.s.c_str - je1.sav_c_len); - } - else - { - if (str->append("[", 1)) - goto error_return; - end1= js1->end(); - } - - if (str->append(js1->ptr(), end1 - js1->ptr()), - str->append(", ", 2)) - goto error_return; - - if (je2.value_type == JSON_VALUE_ARRAY) - beg2= (const char *) je2.s.c_str; - else - beg2= js2->ptr(); - - if (str->append(beg2, js2->end() - beg2)) - goto error_return; - - if (je2.value_type != JSON_VALUE_ARRAY && - str->append("]", 1)) - goto error_return; - } - { /* Swap str and js1. */ if (str == &tmp_js1) diff --git a/strings/json_lib.c b/strings/json_lib.c index 213be62aa22..2a5d71a2133 100644 --- a/strings/json_lib.c +++ b/strings/json_lib.c @@ -1197,13 +1197,6 @@ int json_skip_to_level(json_engine_t *j, int level) int json_skip_key(json_engine_t *j) { - if (j->state == JST_KEY) - { - while (json_read_keyname_chr(j) == 0); - if (j->s.error) - return 1; - } - if (json_read_value(j)) return 1; From 766ab173297b061f54476e5148da0ef02901d44f Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Fri, 10 Feb 2017 01:24:54 +0400 Subject: [PATCH 164/258] MDEV-11544 innodb_gis.precise fails in buildbot on Power. Test fixed. --- mysql-test/suite/innodb_gis/t/precise.test | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/suite/innodb_gis/t/precise.test b/mysql-test/suite/innodb_gis/t/precise.test index 2689ec5ef4c..9174a100003 100644 --- a/mysql-test/suite/innodb_gis/t/precise.test +++ b/mysql-test/suite/innodb_gis/t/precise.test @@ -72,6 +72,7 @@ select ST_astext(ST_Intersection(ST_GeomFromText('LINESTRING(0 0, 50 45, 40 50, select ST_astext(ST_Intersection(ST_GeomFromText('LINESTRING(0 0, 50 45, 40 50)'), ST_GeomFromText('LINESTRING(50 5, 55 10, 0 45)'))); select ST_astext(ST_Intersection(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('POINT(20 20)'))); select ST_astext(ST_Intersection(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('LINESTRING(-10 -10, 200 200)'))); +--replace_result 7.999999999999999 8 select ST_astext(ST_Intersection(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); --replace_result 7.999999999999999 8 select ST_astext(ST_UNION(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('LINESTRING(-10 -10, 200 200, 199 201, -11 -9)'))); From 78b5e8d6ca35be35cf2f10769c19cd7dacad09d2 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Thu, 9 Feb 2017 19:33:28 -0800 Subject: [PATCH 165/258] Fixed bug mdev-11745. Due to this bug many queries that contained a window function with MIN/MAX aggregation returned wrong results. Calculation of a MIN/MAX aggregate function uses cache objects and a comparator object that are created and set up in Item_sum_hybrid::fix_fields () by a call of Item_sum_hybrid::setup_hybrid(). The latter binds the objects to the first argument of the MIN/MAX function. Meanwhile window function perform aggregation over fields of a temporary table. So binding must be done rather to these fields. The earliest moment when setup the objects used in MIN/max functions can be done is after all calls of the method split_sum_func(). This patch introduces this late setup, but only for aggregate functions used in window functions. Probably it makes sense to use this late setup for all MIN/MAX objects. --- mysql-test/r/win.result | 196 +++++++++++++++++++++++++++++ mysql-test/r/win_empty_over.result | 6 +- mysql-test/t/win.test | 77 ++++++++++++ sql/item_sum.cc | 3 +- sql/item_sum.h | 3 + sql/item_windowfunc.cc | 1 + 6 files changed, 282 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index 48bdb6a6cd8..ba9ef003da1 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2558,3 +2558,199 @@ execute stmt; row_number() over (partition by 4 order by 1+2) 1 deallocate prepare stmt; +# +# MDEV-11745: window function with min/max +# +create table t1 (i int, b int); +insert into t1 values +(1,1),(2,1),(3,1),(4,4),(5,4),(6,4),(7,8),(8,8),(9,8),(10,8); +select b, min(i) over (partition by b) as f +from t1 as tt +order by i; +b f +1 1 +1 1 +1 1 +4 4 +4 4 +4 4 +8 7 +8 7 +8 7 +8 7 +select b, min(i) over (partition by b) as f +from (select * from t1) as tt +order by i; +b f +1 1 +1 1 +1 1 +4 4 +4 4 +4 4 +8 7 +8 7 +8 7 +8 7 +select b, min(i+10) over (partition by b) as f +from t1 as tt +order by i; +b f +1 11 +1 11 +1 11 +4 14 +4 14 +4 14 +8 17 +8 17 +8 17 +8 17 +select b, min(i) over (partition by b) as f +from (select i+10 as i, b from t1) as tt +order by i; +b f +1 11 +1 11 +1 11 +4 14 +4 14 +4 14 +8 17 +8 17 +8 17 +8 17 +select b, min(i+20) over (partition by b) as f +from (select i+10 as i, b from t1) as tt +order by i; +b f +1 31 +1 31 +1 31 +4 34 +4 34 +4 34 +8 37 +8 37 +8 37 +8 37 +select b, max(i) over (partition by b) as f +from t1 as tt +order by i; +b f +1 3 +1 3 +1 3 +4 6 +4 6 +4 6 +8 10 +8 10 +8 10 +8 10 +select b, max(i) over (partition by b) as f +from (select * from t1) as tt +order by i; +b f +1 3 +1 3 +1 3 +4 6 +4 6 +4 6 +8 10 +8 10 +8 10 +8 10 +select b, max(i+10) over (partition by b) as f +from t1 as tt +order by i; +b f +1 13 +1 13 +1 13 +4 16 +4 16 +4 16 +8 20 +8 20 +8 20 +8 20 +select b, max(i) over (partition by b) as f +from (select i+10 as i, b from t1) as tt +order by i; +b f +1 13 +1 13 +1 13 +4 16 +4 16 +4 16 +8 20 +8 20 +8 20 +8 20 +select b, max(i+20) over (partition by b) as f +from (select i+10 as i, b from t1) as tt +order by i; +b f +1 33 +1 33 +1 33 +4 36 +4 36 +4 36 +8 40 +8 40 +8 40 +8 40 +select max(i), max(i), sum(i), count(i) +from t1 as tt +group by b; +max(i) max(i) sum(i) count(i) +3 3 6 3 +6 6 15 3 +10 10 34 4 +select max(i), min(sum(i)) over (partition by count(i)) f +from t1 as tt +group by b; +max(i) f +3 6 +6 6 +10 34 +select max(i), min(sum(i)) over (partition by count(i)) f +from (select * from t1) as tt +group by b; +max(i) f +3 6 +6 6 +10 34 +select max(i+10), min(sum(i)+10) over (partition by count(i)) f +from t1 as tt +group by b; +max(i+10) f +13 16 +16 16 +20 44 +select max(i), max(i), sum(i), count(i) +from (select i+10 as i, b from t1) as tt +group by b; +max(i) max(i) sum(i) count(i) +13 13 36 3 +16 16 45 3 +20 20 74 4 +select max(i), min(sum(i)) over (partition by count(i)) f +from (select i+10 as i, b from t1) as tt +group by b; +max(i) f +13 36 +16 36 +20 74 +select max(i), min(i), min(max(i)-min(i)) over (partition by count(i)) f +from (select i+10 as i, b from t1) as tt +group by b; +max(i) min(i) f +13 11 2 +16 14 2 +20 17 3 +drop table t1; diff --git a/mysql-test/r/win_empty_over.result b/mysql-test/r/win_empty_over.result index 8df2c1f4329..a5ee74b943a 100644 --- a/mysql-test/r/win_empty_over.result +++ b/mysql-test/r/win_empty_over.result @@ -138,8 +138,8 @@ create view win_view as (select a, max(a + 1) over () from t1 where a = 1); select * from win_view; a max(a + 1) over () -1 3 -1 3 -1 3 +1 2 +1 2 +1 2 drop view win_view; drop table t1; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index 060f579421a..c231c1eeecf 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1559,3 +1559,80 @@ execute stmt; execute stmt; deallocate prepare stmt; +--echo # +--echo # MDEV-11745: window function with min/max +--echo # + +create table t1 (i int, b int); +insert into t1 values + (1,1),(2,1),(3,1),(4,4),(5,4),(6,4),(7,8),(8,8),(9,8),(10,8); + +select b, min(i) over (partition by b) as f + from t1 as tt +order by i; + +select b, min(i) over (partition by b) as f + from (select * from t1) as tt +order by i; + +select b, min(i+10) over (partition by b) as f + from t1 as tt +order by i; + +select b, min(i) over (partition by b) as f + from (select i+10 as i, b from t1) as tt +order by i; + +select b, min(i+20) over (partition by b) as f + from (select i+10 as i, b from t1) as tt +order by i; + +select b, max(i) over (partition by b) as f + from t1 as tt +order by i; + +select b, max(i) over (partition by b) as f + from (select * from t1) as tt +order by i; + +select b, max(i+10) over (partition by b) as f + from t1 as tt +order by i; + +select b, max(i) over (partition by b) as f + from (select i+10 as i, b from t1) as tt +order by i; + +select b, max(i+20) over (partition by b) as f + from (select i+10 as i, b from t1) as tt +order by i; + +select max(i), max(i), sum(i), count(i) + from t1 as tt +group by b; + +select max(i), min(sum(i)) over (partition by count(i)) f + from t1 as tt +group by b; + +select max(i), min(sum(i)) over (partition by count(i)) f + from (select * from t1) as tt +group by b; + +select max(i+10), min(sum(i)+10) over (partition by count(i)) f + from t1 as tt +group by b; + +select max(i), max(i), sum(i), count(i) + from (select i+10 as i, b from t1) as tt +group by b; + +select max(i), min(sum(i)) over (partition by count(i)) f + from (select i+10 as i, b from t1) as tt +group by b; + +select max(i), min(i), min(max(i)-min(i)) over (partition by count(i)) f + from (select i+10 as i, b from t1) as tt +group by b; + +drop table t1; diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 2ca1be31ae1..098b1ea8750 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -1161,7 +1161,8 @@ Item_sum_hybrid::fix_fields(THD *thd, Item **ref) case TIME_RESULT: DBUG_ASSERT(0); }; - setup_hybrid(thd, args[0], NULL); + if (!is_window_func_sum_expr()) + setup_hybrid(thd, args[0], NULL); /* MIN/MAX can return NULL for empty set indepedent of the used column */ maybe_null= 1; result_field=0; diff --git a/sql/item_sum.h b/sql/item_sum.h index a838bd0bc10..57375b29114 100644 --- a/sql/item_sum.h +++ b/sql/item_sum.h @@ -576,6 +576,8 @@ public: bool check_vcol_func_processor(void *arg); virtual void setup_window_func(THD *thd, Window_spec *window_spec) {} void mark_as_window_func_sum_expr() { window_func_sum_expr_flag= true; } + bool is_window_func_sum_expr() { return window_func_sum_expr_flag; } + virtual void setup_caches(THD *thd) {}; }; @@ -1053,6 +1055,7 @@ protected: void no_rows_in_result(); void restore_to_before_no_rows_in_result(); Field *create_tmp_field(bool group, TABLE *table); + void setup_caches(THD *thd) { setup_hybrid(thd, arguments()[0], NULL); } }; diff --git a/sql/item_windowfunc.cc b/sql/item_windowfunc.cc index a13967eaaad..fb2ad666018 100644 --- a/sql/item_windowfunc.cc +++ b/sql/item_windowfunc.cc @@ -150,6 +150,7 @@ void Item_window_func::split_sum_func(THD *thd, Ref_ptr_array ref_pointer_array, Item **p_item= &window_func()->arguments()[i]; (*p_item)->split_sum_func2(thd, ref_pointer_array, fields, p_item, flags); } + window_func()->setup_caches(thd); } From ee51f5823621acf5b703254f723690576a713585 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Wed, 12 Oct 2016 18:36:22 +0200 Subject: [PATCH 166/258] MDEV-10340: support COM_RESET_CONNECTION --- include/mysql.h.pp | 2 ++ include/mysql_com.h | 2 ++ mysql-test/r/mysqld--help.result | 2 +- .../sys_vars/r/sysvars_server_embedded.result | 4 ++-- .../sys_vars/r/sysvars_server_notembedded.result | 4 ++-- sql/sql_parse.cc | 14 ++++++++++++-- 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/include/mysql.h.pp b/include/mysql.h.pp index 9d93b9ad325..517516aeb30 100644 --- a/include/mysql.h.pp +++ b/include/mysql.h.pp @@ -9,6 +9,8 @@ enum enum_server_command COM_TABLE_DUMP, COM_CONNECT_OUT, COM_REGISTER_SLAVE, COM_STMT_PREPARE, COM_STMT_EXECUTE, COM_STMT_SEND_LONG_DATA, COM_STMT_CLOSE, COM_STMT_RESET, COM_SET_OPTION, COM_STMT_FETCH, COM_DAEMON, + COM_UNIMPLEMENTED, + COM_RESET_CONNECTION, COM_MDB_GAP_BEG, COM_MDB_GAP_END=250, COM_SLAVE_WORKER=251, diff --git a/include/mysql_com.h b/include/mysql_com.h index c399520022d..ba389933b15 100644 --- a/include/mysql_com.h +++ b/include/mysql_com.h @@ -111,6 +111,8 @@ enum enum_server_command COM_TABLE_DUMP, COM_CONNECT_OUT, COM_REGISTER_SLAVE, COM_STMT_PREPARE, COM_STMT_EXECUTE, COM_STMT_SEND_LONG_DATA, COM_STMT_CLOSE, COM_STMT_RESET, COM_SET_OPTION, COM_STMT_FETCH, COM_DAEMON, + COM_UNIMPLEMENTED, // COM_BINLOG_DUMP_GTID in MySQL + COM_RESET_CONNECTION, /* don't forget to update const char *command_name[] in sql_parse.cc */ COM_MDB_GAP_BEG, COM_MDB_GAP_END=250, diff --git a/mysql-test/r/mysqld--help.result b/mysql-test/r/mysqld--help.result index 5938da489f7..0819542727c 100644 --- a/mysql-test/r/mysqld--help.result +++ b/mysql-test/r/mysqld--help.result @@ -1392,7 +1392,7 @@ performance-schema-max-rwlock-instances -1 performance-schema-max-socket-classes 10 performance-schema-max-socket-instances -1 performance-schema-max-stage-classes 150 -performance-schema-max-statement-classes 185 +performance-schema-max-statement-classes 187 performance-schema-max-table-handles -1 performance-schema-max-table-instances -1 performance-schema-max-thread-classes 50 diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result index 968312124dc..ace6beb9b69 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result @@ -2867,9 +2867,9 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES SESSION_VALUE NULL -GLOBAL_VALUE 185 +GLOBAL_VALUE 187 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 185 +DEFAULT_VALUE 187 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of statement instruments. diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result index 8ee6ce6492c..dca5b74b840 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result @@ -3063,9 +3063,9 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES SESSION_VALUE NULL -GLOBAL_VALUE 185 +GLOBAL_VALUE 187 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 185 +DEFAULT_VALUE 187 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of statement instruments. diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 53482454491..ab1781edfac 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -171,8 +171,8 @@ const LEX_STRING command_name[257]={ { C_STRING_WITH_LEN("Set option") }, //27 { C_STRING_WITH_LEN("Fetch") }, //28 { C_STRING_WITH_LEN("Daemon") }, //29 - { 0, 0 }, //30 - { 0, 0 }, //31 + { C_STRING_WITH_LEN("Unimpl get tid") }, //30 + { C_STRING_WITH_LEN("Reset connection") },//31 { 0, 0 }, //32 { 0, 0 }, //33 { 0, 0 }, //34 @@ -525,6 +525,7 @@ void init_update_queries(void) server_command_flags[COM_STMT_SEND_LONG_DATA]= CF_SKIP_WSREP_CHECK; server_command_flags[COM_REGISTER_SLAVE]= CF_SKIP_WSREP_CHECK; server_command_flags[COM_MULTI]= CF_SKIP_WSREP_CHECK | CF_NO_COM_MULTI; + server_command_flags[CF_NO_COM_MULTI]= CF_NO_COM_MULTI; /* Initialize the sql command flags array. */ memset(sql_command_flags, 0, sizeof(sql_command_flags)); @@ -1671,6 +1672,14 @@ bool dispatch_command(enum enum_server_command command, THD *thd, break; } #endif + case COM_RESET_CONNECTION: + { + thd->status_var.com_other++; + thd->change_user(); + thd->clear_error(); // if errors from rollback + my_ok(thd, 0, 0, 0); + break; + } case COM_CHANGE_USER: { int auth_rc; @@ -2307,6 +2316,7 @@ com_multi_end: case COM_TIME: // Impossible from client case COM_DELAYED_INSERT: case COM_END: + case COM_UNIMPLEMENTED: default: my_message(ER_UNKNOWN_COM_ERROR, ER_THD(thd, ER_UNKNOWN_COM_ERROR), MYF(0)); From ae3072c0af04ac5b18a81425a8aacb796126f8a2 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Thu, 9 Feb 2017 12:08:57 +0100 Subject: [PATCH 167/258] MDEV-10554: Assertion `!derived->first_select()->exclude_from_table_unique_test || derived->outer_select()-> exclude_from_table_unique_test' failed in TABLE_LIST::set_check_merged() Mark and check excluded because of merging derived tables and views. --- mysql-test/r/derived.result | 18 ++++++++++++++++++ mysql-test/t/derived.test | 21 +++++++++++++++++++++ sql/sql_lex.cc | 2 ++ sql/sql_lex.h | 1 + sql/table.cc | 4 +++- 5 files changed, 45 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/derived.result b/mysql-test/r/derived.result index 9e550284163..a4c994f8745 100644 --- a/mysql-test/r/derived.result +++ b/mysql-test/r/derived.result @@ -1064,3 +1064,21 @@ DROP TABLE t1; # # End of 10.1 tests # +# +# MDEV-10554: Assertion `!derived->first_select()-> +# exclude_from_table_unique_test || derived->outer_select()-> +# exclude_from_table_unique_test' +# failed in TABLE_LIST::set_check_merged() +# +CREATE TABLE t1 (f INT); +CREATE ALGORITHM = TEMPTABLE VIEW v1 AS SELECT * FROM ( SELECT * FROM t1 ) AS sq; +PREPARE stmt FROM 'SELECT * FROM v1'; +EXECUTE stmt; +f +EXECUTE stmt; +f +drop view v1; +drop table t1; +# +# End of 10.2 tests +# diff --git a/mysql-test/t/derived.test b/mysql-test/t/derived.test index 28781ad6fdb..318cf584348 100644 --- a/mysql-test/t/derived.test +++ b/mysql-test/t/derived.test @@ -910,3 +910,24 @@ DROP TABLE t1; --echo # --echo # End of 10.1 tests --echo # + +--echo # +--echo # MDEV-10554: Assertion `!derived->first_select()-> +--echo # exclude_from_table_unique_test || derived->outer_select()-> +--echo # exclude_from_table_unique_test' +--echo # failed in TABLE_LIST::set_check_merged() +--echo # + +CREATE TABLE t1 (f INT); +CREATE ALGORITHM = TEMPTABLE VIEW v1 AS SELECT * FROM ( SELECT * FROM t1 ) AS sq; + +PREPARE stmt FROM 'SELECT * FROM v1'; +EXECUTE stmt; +EXECUTE stmt; + +drop view v1; +drop table t1; + +--echo # +--echo # End of 10.2 tests +--echo # diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index c028d49d620..71dad4279c2 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -2375,6 +2375,8 @@ void st_select_lex_unit::exclude_level() if (next) next->prev= prev; } + // Mark it excluded + prev= NULL; } diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 8f5deb8e7bd..c4a21bfb074 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -698,6 +698,7 @@ public: st_select_lex* return_after_parsing() { return return_to; } void exclude_level(); void exclude_tree(); + bool is_excluded() { return prev == NULL; } /* UNION methods */ bool prepare(THD *thd, select_result *result, ulong additional_options); diff --git a/sql/table.cc b/sql/table.cc index 4242b870d55..c839062ea4a 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -5485,7 +5485,8 @@ void TABLE_LIST::set_check_merged() It is not simple to check all, but at least this should be checked: this select is not excluded or the exclusion came from above. */ - DBUG_ASSERT(!derived->first_select()->exclude_from_table_unique_test || + DBUG_ASSERT(derived->is_excluded() || + !derived->first_select()->exclude_from_table_unique_test || derived->outer_select()-> exclude_from_table_unique_test); } @@ -5498,6 +5499,7 @@ void TABLE_LIST::set_check_materialized() if (view) derived= &view->unit; DBUG_ASSERT(derived); + DBUG_ASSERT(!derived->is_excluded()); if (!derived->first_select()->exclude_from_table_unique_test) derived->set_unique_exclude(); else From 25f6d1dad70a5f5b35692a23586a46c066f8f26d Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Thu, 9 Feb 2017 18:19:03 +0100 Subject: [PATCH 168/258] Unused code removed. --- sql/sql_lex.cc | 2 ++ sql/sql_lex.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 71dad4279c2..4e29c31a774 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -2380,6 +2380,7 @@ void st_select_lex_unit::exclude_level() } +#if 0 /* Exclude subtree of current unit from tree of SELECTs @@ -2405,6 +2406,7 @@ void st_select_lex_unit::exclude_tree() if (next) next->prev= prev; } +#endif /* diff --git a/sql/sql_lex.h b/sql/sql_lex.h index c4a21bfb074..b61ef993d7f 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -697,7 +697,7 @@ public: } st_select_lex* return_after_parsing() { return return_to; } void exclude_level(); - void exclude_tree(); + // void exclude_tree(); // it is not used for long time bool is_excluded() { return prev == NULL; } /* UNION methods */ From 185d140f191f550d030550f6718103a89eb64212 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Mon, 19 Dec 2016 16:28:19 -0500 Subject: [PATCH 169/258] MDEV-7635: Renamed standards_compliant_cte to standard_compliant_cte --- mysql-test/r/cte_recursive.result | 10 +++++----- mysql-test/r/mysqld--help.result | 8 ++++---- .../sys_vars/r/sysvars_server_embedded.result | 4 ++-- .../r/sysvars_server_notembedded.result | 4 ++-- mysql-test/t/cte_recursive.test | 18 +++++++++--------- sql/share/errmsg-utf8.txt | 2 +- sql/sql_class.h | 2 +- sql/sql_cte.cc | 6 +++--- sql/sql_lex.h | 2 +- sql/sql_select.cc | 2 +- sql/sys_vars.cc | 8 ++++---- 11 files changed, 33 insertions(+), 33 deletions(-) diff --git a/mysql-test/r/cte_recursive.result b/mysql-test/r/cte_recursive.result index 20ca5c8f8cb..0624099e365 100644 --- a/mysql-test/r/cte_recursive.result +++ b/mysql-test/r/cte_recursive.result @@ -955,7 +955,7 @@ where folks.id = ma.id and (mother not in (select id from ancestor_ids)) select generation, name from ancestor_ids a, folks where a.id = folks.id; ERROR HY000: Restrictions imposed on recursive definitions are violated for table 'ancestor_ids' -set standards_compliant_cte=0; +set standard_compliant_cte=0; with recursive ancestor_ids (id, generation) as @@ -999,7 +999,7 @@ generation name 2 Grandma Sally 2 Grandpa Ben 3 Grandgrandma Martha -set standards_compliant_cte=1; +set standard_compliant_cte=1; with recursive coupled_ancestor_ids (id) as @@ -1023,7 +1023,7 @@ n.father is not null and n.mother is not null select p.* from coupled_ancestor_ids a, folks p where a.id = p.id; ERROR HY000: Restrictions imposed on recursive definitions are violated for table 'coupled_ancestor_ids' -set statement standards_compliant_cte=0 for +set statement standard_compliant_cte=0 for with recursive coupled_ancestor_ids (id) as @@ -1073,7 +1073,7 @@ where p.id = a.id ) select * from ancestors; ERROR HY000: Restrictions imposed on recursive definitions are violated for table 'ancestor_ids' -set statement standards_compliant_cte=0 for +set statement standard_compliant_cte=0 for with recursive ancestor_ids (id) as @@ -1156,7 +1156,7 @@ where p.id = a.id ) select * from ancestors; ERROR HY000: Restrictions imposed on recursive definitions are violated for table 'ancestor_ids' -set statement standards_compliant_cte=0 for +set statement standard_compliant_cte=0 for with recursive ancestor_ids (id, generation) as diff --git a/mysql-test/r/mysqld--help.result b/mysql-test/r/mysqld--help.result index 0819542727c..9ebd0f37444 100644 --- a/mysql-test/r/mysqld--help.result +++ b/mysql-test/r/mysqld--help.result @@ -1068,9 +1068,9 @@ The following options may be given as the first argument: NO_ENGINE_SUBSTITUTION, PAD_CHAR_TO_FULL_LENGTH --stack-trace Print a symbolic stack trace on failure (Defaults to on; use --skip-stack-trace to disable.) - --standards-compliant-cte - Allow only standards compiant CTE - (Defaults to on; use --skip-standards-compliant-cte to disable.) + --standard-compliant-cte + Allow only CTEs compliant to SQL standard + (Defaults to on; use --skip-standard-compliant-cte to disable.) --stored-program-cache=# The soft upper limit for number of cached stored routines for one connection. @@ -1470,7 +1470,7 @@ slow-query-log FALSE sort-buffer-size 2097152 sql-mode NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION stack-trace TRUE -standards-compliant-cte TRUE +standard-compliant-cte TRUE stored-program-cache 256 strict-password-validation TRUE symbolic-links FALSE diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result index ace6beb9b69..d9ca81542cc 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result @@ -3803,14 +3803,14 @@ NUMERIC_BLOCK_SIZE NULL ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME STANDARDS_COMPLIANT_CTE +VARIABLE_NAME STANDARD_COMPLIANT_CTE SESSION_VALUE ON GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT Allow only standards compiant CTE +VARIABLE_COMMENT Allow only CTEs compliant to SQL standard NUMERIC_MIN_VALUE NULL NUMERIC_MAX_VALUE NULL NUMERIC_BLOCK_SIZE NULL diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result index dca5b74b840..fd5102d8a60 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result @@ -4559,14 +4559,14 @@ NUMERIC_BLOCK_SIZE NULL ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED -VARIABLE_NAME STANDARDS_COMPLIANT_CTE +VARIABLE_NAME STANDARD_COMPLIANT_CTE SESSION_VALUE ON GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT Allow only standards compiant CTE +VARIABLE_COMMENT Allow only CTEs compliant to SQL standard NUMERIC_MIN_VALUE NULL NUMERIC_MAX_VALUE NULL NUMERIC_BLOCK_SIZE NULL diff --git a/mysql-test/t/cte_recursive.test b/mysql-test/t/cte_recursive.test index aacafcb73ec..334599f1653 100644 --- a/mysql-test/t/cte_recursive.test +++ b/mysql-test/t/cte_recursive.test @@ -787,7 +787,7 @@ as select * from ancestors; ---ERROR ER_NOT_STANDARDS_COMPLIANT_RECURSIVE +--ERROR ER_NOT_STANDARD_COMPLIANT_RECURSIVE with recursive ancestor_ids (id, generation) as @@ -805,7 +805,7 @@ as select generation, name from ancestor_ids a, folks where a.id = folks.id; -set standards_compliant_cte=0; +set standard_compliant_cte=0; --ERROR ER_WITH_COL_WRONG_LIST with recursive @@ -844,9 +844,9 @@ as select generation, name from ancestor_ids a, folks where a.id = folks.id; -set standards_compliant_cte=1; +set standard_compliant_cte=1; ---ERROR ER_NOT_STANDARDS_COMPLIANT_RECURSIVE +--ERROR ER_NOT_STANDARD_COMPLIANT_RECURSIVE with recursive coupled_ancestor_ids (id) as @@ -870,7 +870,7 @@ as select p.* from coupled_ancestor_ids a, folks p where a.id = p.id; -set statement standards_compliant_cte=0 for +set statement standard_compliant_cte=0 for with recursive coupled_ancestor_ids (id) as @@ -894,7 +894,7 @@ as select p.* from coupled_ancestor_ids a, folks p where a.id = p.id; ---ERROR ER_NOT_STANDARDS_COMPLIANT_RECURSIVE +--ERROR ER_NOT_STANDARD_COMPLIANT_RECURSIVE with recursive ancestor_ids (id) as @@ -915,7 +915,7 @@ as ) select * from ancestors; -set statement standards_compliant_cte=0 for +set statement standard_compliant_cte=0 for with recursive ancestor_ids (id) as @@ -958,7 +958,7 @@ as ) select * from ancestors; ---ERROR ER_NOT_STANDARDS_COMPLIANT_RECURSIVE +--ERROR ER_NOT_STANDARD_COMPLIANT_RECURSIVE with recursive ancestor_ids (id, generation) as @@ -983,7 +983,7 @@ as ) select * from ancestors; -set statement standards_compliant_cte=0 for +set statement standard_compliant_cte=0 for with recursive ancestor_ids (id, generation) as diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt index b526760b8de..ebf86d6066c 100644 --- a/sql/share/errmsg-utf8.txt +++ b/sql/share/errmsg-utf8.txt @@ -7355,7 +7355,7 @@ ER_UNACCEPTABLE_MUTUAL_RECURSION eng "Unacceptable mutual recursion with anchored table '%s'" ER_REF_TO_RECURSIVE_WITH_TABLE_IN_DERIVED eng "Reference to recursive WITH table '%s' in materialized derived" -ER_NOT_STANDARDS_COMPLIANT_RECURSIVE +ER_NOT_STANDARD_COMPLIANT_RECURSIVE eng "Restrictions imposed on recursive definitions are violated for table '%s'"R_WRONG_WINDOW_SPEC_NAME ER_WRONG_WINDOW_SPEC_NAME eng "Window specification with name '%s' is not defined" diff --git a/sql/sql_class.h b/sql/sql_class.h index 295474d0d62..37758f25170 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -635,7 +635,7 @@ typedef struct system_variables my_bool old_alter_table; my_bool old_passwords; my_bool big_tables; - my_bool only_standards_compliant_cte; + my_bool only_standard_compliant_cte; my_bool query_cache_strip_comments; my_bool sql_log_slow; my_bool sql_log_bin; diff --git a/sql/sql_cte.cc b/sql/sql_cte.cc index 42cc20647a4..d8cd92ed10b 100644 --- a/sql/sql_cte.cc +++ b/sql/sql_cte.cc @@ -1048,7 +1048,7 @@ bool TABLE_LIST::is_with_table_recursive_reference() false otherwise */ -bool st_select_lex::check_unrestricted_recursive(bool only_standards_compliant) +bool st_select_lex::check_unrestricted_recursive(bool only_standard_compliant) { With_element *with_elem= get_with_element(); if (!with_elem ||!with_elem->is_recursive) @@ -1077,9 +1077,9 @@ bool st_select_lex::check_unrestricted_recursive(bool only_standards_compliant) with_elem->get_mutually_recursive()); /* Report an error on unrestricted specification if this is required */ - if (only_standards_compliant && with_elem->is_unrestricted()) + if (only_standard_compliant && with_elem->is_unrestricted()) { - my_error(ER_NOT_STANDARDS_COMPLIANT_RECURSIVE, + my_error(ER_NOT_STANDARD_COMPLIANT_RECURSIVE, MYF(0), with_elem->query_name->str); return true; } diff --git a/sql/sql_lex.h b/sql/sql_lex.h index b61ef993d7f..4a87ca095c4 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -1129,7 +1129,7 @@ public: return master_unit()->with_element; } With_element *find_table_def_in_with_clauses(TABLE_LIST *table); - bool check_unrestricted_recursive(bool only_standards_compliant); + bool check_unrestricted_recursive(bool only_standard_compliant); bool check_subqueries_with_recursive_references(); void collect_grouping_fields(THD *thd); void check_cond_extraction_for_grouping_fields(Item *cond, diff --git a/sql/sql_select.cc b/sql/sql_select.cc index ad7c095f353..865d852d371 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -858,7 +858,7 @@ JOIN::prepare(TABLE_LIST *tables_init, With_element *with_elem= select_lex->get_with_element(); if (with_elem && select_lex->check_unrestricted_recursive( - thd->variables.only_standards_compliant_cte)) + thd->variables.only_standard_compliant_cte)) DBUG_RETURN(-1); select_lex->check_subqueries_with_recursive_references(); diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index fa723e2707f..5bf8eb9d7cd 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -3186,10 +3186,10 @@ static Sys_var_charptr Sys_ssl_crlpath( READ_ONLY GLOBAL_VAR(opt_ssl_crlpath), SSL_OPT(OPT_SSL_CRLPATH), IN_FS_CHARSET, DEFAULT(0)); -static Sys_var_mybool Sys_standards_compliant_cte( - "standards_compliant_cte", - "Allow only standards compiant CTE", - SESSION_VAR(only_standards_compliant_cte), CMD_LINE(OPT_ARG), +static Sys_var_mybool Sys_standard_compliant_cte( + "standard_compliant_cte", + "Allow only CTEs compliant to SQL standard", + SESSION_VAR(only_standard_compliant_cte), CMD_LINE(OPT_ARG), DEFAULT(TRUE)); From 3435e8a51552c3c73feab4b1c731dd8da225618c Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Mon, 19 Dec 2016 17:32:45 -0500 Subject: [PATCH 170/258] MDEV-7635: Part 1 innodb_autoinc_lock_mode = 2 innodb_buffer_pool_dump_at_shutdown = ON innodb_buffer_pool_dump_pct = 25 innodb_buffer_pool_load_at_startup = ON innodb_checksum_algorithm = CRC32 innodb_file_format = Barracuda innodb_large_prefix = ON innodb_log_compressed_pages = ON innodb_purge_threads = 4 innodb_strict_mode = ON binlog_annotate_row_events = ON binlog_format = MIXED binlog-row-event-max-size = 8192 group_concat_max_len = 1M lock_wait_timeout = 86400 log_slow_admin_statements = ON log_slow_slave_statements = ON log_warnings = 2 max_allowed_packet = 16M replicate_annotate_row_events = ON slave_net_timeout = 60 sync_binlog = 1 aria_recover = BACKUP,QUICK myisam_recover_options = BACKUP,QUICK --- mysql-test/extra/rpl_tests/rpl_log.test | 2 +- .../extra/rpl_tests/rpl_row_annotate.test | 4 + mysql-test/extra/rpl_tests/rpl_row_basic.test | 1 + ...l_show_log_events_with_varying_options.inc | 2 +- mysql-test/include/alter_table_mdev539.inc | 2 + mysql-test/mysql-test-run.pl | 1 + mysql-test/r/alter_table_mdev539_maria.result | 1 + .../r/alter_table_mdev539_myisam.result | 1 + mysql-test/r/bootstrap.result | 2 + mysql-test/r/bug39022.result | 1 + mysql-test/r/ctype_binary.result | 2 +- mysql-test/r/ctype_cp1251.result | 2 +- mysql-test/r/ctype_cp932_binlog_row.result | 1 + mysql-test/r/ctype_latin1.result | 2 +- mysql-test/r/ctype_ucs.result | 2 +- mysql-test/r/ctype_utf16.result | 10 +- mysql-test/r/ctype_utf32.result | 4 +- mysql-test/r/ctype_utf8.result | 10 +- mysql-test/r/delete.result | 1 + mysql-test/r/filesort_debug.result | 1 + mysql-test/r/func_gconcat.result | 2 +- mysql-test/r/innodb_mysql_lock.result | 1 + mysql-test/r/limit_rows_examined.result | 1 + mysql-test/r/log_slow.result | 4 +- mysql-test/r/log_state.result | 1 + mysql-test/r/mix2_myisam.result | 1 + mysql-test/r/mrr_icp_extra.result | 1 + mysql-test/r/multi_update.result | 2 + mysql-test/r/myisam.result | 2 + mysql-test/r/myisam_enable_keys-10506.result | 1 + mysql-test/r/myisam_recover.result | 1 + mysql-test/r/mysqlbinlog_row_big.result | 2 +- .../r/mysqlbinlog_row_compressed.result | 150 +- mysql-test/r/mysqlbinlog_row_minimal.result | 150 +- mysql-test/r/mysqld--help.result | 34 +- mysql-test/r/order_by.result | 1 + mysql-test/r/partition_innodb.result | 1 + mysql-test/r/partition_innodb_plugin.result | 1 + mysql-test/r/row-checksum-old.result | 8 +- mysql-test/r/row-checksum.result | 8 +- mysql-test/r/set_statement_debug.result | 1 + mysql-test/r/statistics.result | 200 +-- mysql-test/r/subselect.result | 1 + mysql-test/r/subselect_no_exists_to_in.result | 1 + mysql-test/r/subselect_no_mat.result | 1 + mysql-test/r/subselect_no_opts.result | 1 + mysql-test/r/subselect_no_scache.result | 1 + mysql-test/r/subselect_no_semijoin.result | 1 + mysql-test/r/union.result | 2 +- mysql-test/r/variables.result | 6 +- mysql-test/r/xa.result | 1 + mysql-test/suite/archive/repair.result | 1 + mysql-test/suite/archive/repair.test | 2 + .../suite/binlog/r/binlog_checkpoint.result | 2 + .../suite/binlog/r/binlog_database.result | 2 + .../binlog/r/binlog_implicit_commit.result | 22 + .../suite/binlog/r/binlog_innodb.result | 7 + .../suite/binlog/r/binlog_innodb_row.result | 3 + .../suite/binlog/r/binlog_mdev342.result | 1 + .../binlog/r/binlog_mixed_load_data.result | 1 + .../binlog/r/binlog_mysqlbinlog_row.result | 542 ++++++- .../r/binlog_mysqlbinlog_row_innodb.result | 1438 ++++++++++++++++- .../r/binlog_mysqlbinlog_row_myisam.result | 1438 ++++++++++++++++- .../r/binlog_mysqlbinlog_row_trans.result | 36 + .../suite/binlog/r/binlog_row_annotate.result | 64 +- .../suite/binlog/r/binlog_row_binlog.result | 225 ++- .../binlog/r/binlog_row_ctype_ucs.result | 19 + .../suite/binlog/r/binlog_row_drop_tbl.result | 1 + .../binlog/r/binlog_row_drop_tmp_tbl.result | 1 + .../binlog/r/binlog_row_insert_select.result | 1 + .../r/binlog_row_mix_innodb_myisam.result | 45 + .../r/binlog_row_mysqlbinlog_options.result | 44 + .../suite/binlog/r/binlog_stm_binlog.result | 4 + .../binlog/r/binlog_stm_drop_tmp_tbl.result | 1 + .../suite/binlog/r/binlog_stm_row.result | 1 + .../binlog/r/binlog_truncate_myisam.result | 2 + .../suite/binlog/r/binlog_xa_recover.result | 7 + mysql-test/suite/csv/csv.result | 1 + mysql-test/suite/csv/csv.test | 1 + .../r/galera_forced_binlog_format.result | 2 + .../suite/galera/r/galera_log_bin.result | 10 +- mysql-test/suite/galera/t/galera_log_bin.test | 4 +- .../suite/innodb/r/innodb_bug42419.result | 1 + .../innodb/r/innodb_defrag_binlog.result | 2 + mysql-test/suite/innodb/r/mdev-117.result | 1 + mysql-test/suite/innodb/r/row_lock.result | 2 + .../innodb/t/innodb-wl5522-debug-zip.test | 1 + .../suite/innodb/t/innodb_bug42419.test | 2 + .../suite/innodb/t/innodb_trx_weight.test | 2 + mysql-test/suite/innodb/t/mdev-117.test | 2 + mysql-test/suite/innodb/t/row_lock.test | 3 + mysql-test/suite/maria/maria-recover.result | 2 +- mysql-test/suite/maria/maria.result | 1 + mysql-test/suite/maria/maria.test | 2 + mysql-test/suite/maria/maria3.result | 2 +- .../suite/maria/maria_notembedded.result | 1 + mysql-test/suite/maria/maria_notembedded.test | 2 + .../optimizer_unfixed_bugs/r/bug41029.result | 2 +- .../suite/parts/r/partition_mdev6067.result | 3 + mysql-test/suite/perfschema/disabled.def | 2 + .../suite/perfschema/r/binlog_mix.result | 6 + .../suite/perfschema/r/binlog_row.result | 6 + .../suite/plugins/r/audit_null_debug.result | 1 + mysql-test/suite/plugins/r/qc_info.result | 2 +- .../suite/plugins/r/qc_info_priv.result | 2 +- .../suite/plugins/t/audit_null_debug.test | 1 + mysql-test/suite/rpl/disabled.def | 3 + .../suite/rpl/r/create_or_replace_mix.result | 5 + .../suite/rpl/r/create_or_replace_row.result | 11 + .../rpl_auto_increment_update_failure.result | 30 + .../suite/rpl/r/rpl_binlog_errors.result | 1 + .../rpl_domain_id_filter_master_crash.result | 6 + mysql-test/suite/rpl/r/rpl_gtid_basic.result | 2 + .../suite/rpl/r/rpl_gtid_errorhandling.result | 1 + mysql-test/suite/rpl/r/rpl_idempotency.result | 2 + .../suite/rpl/r/rpl_innodb_mixed_dml.result | 8 + .../rpl/r/rpl_mariadb_slave_capability.result | 10 +- .../r/rpl_mixed_drop_create_temp_table.result | 18 + .../rpl/r/rpl_mixed_mixing_engines.result | 180 ++- ...rpl_non_direct_mixed_mixing_engines.result | 332 +++- .../rpl_non_direct_row_mixing_engines.result | 1126 ++++++++++++- .../rpl/r/rpl_parallel_optimistic.result | 3 + mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result | 2 + .../suite/rpl/r/rpl_row_annotate_do.result | 11 +- .../suite/rpl/r/rpl_row_annotate_dont.result | 33 +- .../suite/rpl/r/rpl_row_basic_11bugs.result | 3 + .../suite/rpl/r/rpl_row_basic_2myisam.result | 3 + .../suite/rpl/r/rpl_row_basic_3innodb.result | 1 + .../suite/rpl/r/rpl_row_create_table.result | 13 + .../r/rpl_row_drop_create_temp_table.result | 126 ++ .../suite/rpl/r/rpl_row_find_row_debug.result | 2 +- .../suite/rpl/r/rpl_row_idempotency.result | 2 + .../rpl/r/rpl_row_loaddata_concurrent.result | 2 + mysql-test/suite/rpl/r/rpl_row_log.result | 11 + .../suite/rpl/r/rpl_row_log_innodb.result | 11 + .../suite/rpl/r/rpl_row_mixing_engines.result | 1126 ++++++++++++- .../r/rpl_row_rollback_to_savepoint.result | 29 + .../rpl/r/rpl_row_show_relaylog_events.result | 37 +- mysql-test/suite/rpl/r/rpl_row_to_stmt.result | 2 + mysql-test/suite/rpl/r/rpl_slave_skip.result | 5 +- mysql-test/suite/rpl/r/rpl_stm_log.result | 1 + .../r/rpl_stm_mix_show_relaylog_events.result | 16 +- .../rpl/r/rpl_switch_stm_row_mixed.result | 2 +- .../suite/rpl/r/rpl_temp_table_mix_row.result | 4 + .../suite/rpl/r/rpl_temporary_error2.result | 1 + .../t/rpl_domain_id_filter_master_crash.test | 3 + .../suite/rpl/t/rpl_gtid_errorhandling.test | 2 + mysql-test/suite/rpl/t/rpl_idempotency.test | 2 + .../rpl/t/rpl_mariadb_slave_capability.test | 2 +- .../suite/rpl/t/rpl_parallel_optimistic.test | 4 + .../suite/rpl/t/rpl_row_basic_2myisam.test | 4 + .../suite/rpl/t/rpl_row_idempotency.test | 3 + mysql-test/suite/rpl/t/rpl_row_until.test | 2 +- mysql-test/suite/rpl/t/rpl_slave_skip.test | 2 +- .../suite/rpl/t/rpl_temporary_error2.test | 2 + .../r/aria_recover_options_basic.result | 10 +- .../r/binlog_annotate_row_events_basic.result | 12 +- .../sys_vars/r/binlog_format_basic.result | 2 +- .../r/group_concat_max_len_basic.result | 12 +- .../innodb_log_compressed_pages_basic.result | 4 +- .../sys_vars/r/lock_wait_timeout_basic.result | 16 +- .../sys_vars/r/log_warnings_basic.result | 16 +- .../r/max_allowed_packet_basic.result | 32 +- .../sys_vars/r/max_allowed_packet_func.result | 2 +- .../r/myisam_recover_options_basic.result | 10 +- ...replicate_annotate_row_events_basic.result | 10 +- .../sys_vars/r/slave_net_timeout_basic.result | 4 +- .../suite/sys_vars/r/sync_binlog_basic.result | 8 +- .../suite/sys_vars/r/sysvars_aria.result | 4 +- .../suite/sys_vars/r/sysvars_innodb.result | 4 +- .../sys_vars/r/sysvars_server_embedded.result | 56 +- .../r/sysvars_server_notembedded.result | 62 +- mysql-test/t/bug39022.test | 2 + mysql-test/t/delete.test | 2 + mysql-test/t/filesort_debug.test | 2 + mysql-test/t/func_gconcat.test | 2 +- mysql-test/t/innodb_mysql_lock.test | 2 + mysql-test/t/limit_rows_examined.test | 2 + mysql-test/t/log_state.test | 2 + mysql-test/t/mix2_myisam.test | 3 + mysql-test/t/mrr_icp_extra.test | 3 + mysql-test/t/myisam.test | 3 + mysql-test/t/myisam_enable_keys-10506.test | 3 + mysql-test/t/myisam_recover.test | 2 + mysql-test/t/order_by.test | 2 + mysql-test/t/partition_innodb.test | 2 + mysql-test/t/partition_innodb_plugin.test | 1 + mysql-test/t/row-checksum.test | 2 +- mysql-test/t/set_statement_debug.test | 2 + .../t/set_statement_notembedded_binlog.test | 1 + mysql-test/t/subselect.test | 2 + mysql-test/t/xa.test | 2 + sql/mysqld.cc | 4 +- sql/slave.h | 2 +- sql/sys_vars.cc | 22 +- storage/innobase/handler/ha_innodb.cc | 2 +- storage/maria/ha_maria.cc | 2 +- storage/myisam/ha_myisam.cc | 2 +- .../rpl/r/rpl_row_basic_3tokudb.result | 1 + .../rpl/r/rpl_row_log_tokudb.result | 11 + .../rpl/r/rpl_tokudb_mixed_dml.result | 8 + .../tokudb/mysql-test/tokudb_bugs/r/xa.result | 1 + .../tokudb/mysql-test/tokudb_bugs/t/xa.test | 2 + storage/xtradb/handler/ha_innodb.cc | 27 +- 204 files changed, 7551 insertions(+), 665 deletions(-) diff --git a/mysql-test/extra/rpl_tests/rpl_log.test b/mysql-test/extra/rpl_tests/rpl_log.test index 01e8497e4de..d2f605e0f96 100644 --- a/mysql-test/extra/rpl_tests/rpl_log.test +++ b/mysql-test/extra/rpl_tests/rpl_log.test @@ -43,7 +43,7 @@ source include/show_binlog_events.inc; let $binlog_limit= 3; source include/show_binlog_events.inc; -let $binlog_limit= 2,4; +let $binlog_limit= 2,5; source include/show_binlog_events.inc; let $binlog_limit=; flush logs; diff --git a/mysql-test/extra/rpl_tests/rpl_row_annotate.test b/mysql-test/extra/rpl_tests/rpl_row_annotate.test index 0614ca97f1d..b7ab4f4eade 100644 --- a/mysql-test/extra/rpl_tests/rpl_row_annotate.test +++ b/mysql-test/extra/rpl_tests/rpl_row_annotate.test @@ -182,4 +182,8 @@ DROP DATABASE test1; sync_slave_with_master; --enable_query_log +use test; +connection slave; +call mtr.add_suppression("Can't find record in 't3'"); + --source include/rpl_end.inc diff --git a/mysql-test/extra/rpl_tests/rpl_row_basic.test b/mysql-test/extra/rpl_tests/rpl_row_basic.test index f45c8824b10..2e1007b1c04 100644 --- a/mysql-test/extra/rpl_tests/rpl_row_basic.test +++ b/mysql-test/extra/rpl_tests/rpl_row_basic.test @@ -411,6 +411,7 @@ SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* error.* 1535"); call mtr.add_suppression("Slave SQL.*Could not execute Delete_rows event on table test.t1.* error.* 1032"); call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t.. cannot be converted from type.*, error.* 1677"); +call mtr.add_suppression("Can't find record in 't1'"); --let $rpl_only_running_threads= 1 --source include/rpl_reset.inc diff --git a/mysql-test/extra/rpl_tests/rpl_show_log_events_with_varying_options.inc b/mysql-test/extra/rpl_tests/rpl_show_log_events_with_varying_options.inc index 4e68a1560f8..988ffcc1bc1 100644 --- a/mysql-test/extra/rpl_tests/rpl_show_log_events_with_varying_options.inc +++ b/mysql-test/extra/rpl_tests/rpl_show_log_events_with_varying_options.inc @@ -4,7 +4,7 @@ --source extra/rpl_tests/rpl_show_binlog_events.inc --let $binlog_limit= 2 --source extra/rpl_tests/rpl_show_binlog_events.inc ---let $binlog_limit= 2,3 +--let $binlog_limit= 2,4 --source extra/rpl_tests/rpl_show_binlog_events.inc --let $binlog_limit= --let $binlog_file= diff --git a/mysql-test/include/alter_table_mdev539.inc b/mysql-test/include/alter_table_mdev539.inc index a246434b779..66b32473961 100644 --- a/mysql-test/include/alter_table_mdev539.inc +++ b/mysql-test/include/alter_table_mdev539.inc @@ -2,6 +2,8 @@ --echo # mdev-539: fast build of unique/primary indexes for MyISAM/Aria --echo # +call mtr.add_suppression("Can't find record in '.*'"); + --disable_warnings DROP DATABASE IF EXISTS dbt3_s001; --enable_warnings diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 1b6802e6b49..b2c98692a22 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -4382,6 +4382,7 @@ sub extract_warning_lines ($$) { qr|Checking table: '\..mtr.test_suppressions'|, qr|Table \./test/bug53592 has a primary key in InnoDB data dictionary, but not in MySQL|, qr|Table '\..mtr.test_suppressions' is marked as crashed and should be repaired|, + qr|Table 'test_suppressions' is marked as crashed and should be repaired|, qr|Can't open shared library|, qr|Couldn't load plugin named .*EXAMPLE.*|, qr|InnoDB: Error: table 'test/bug39438'|, diff --git a/mysql-test/r/alter_table_mdev539_maria.result b/mysql-test/r/alter_table_mdev539_maria.result index 769c8b11b00..0206f4070a0 100644 --- a/mysql-test/r/alter_table_mdev539_maria.result +++ b/mysql-test/r/alter_table_mdev539_maria.result @@ -3,6 +3,7 @@ set @@storage_engine= Aria; # # mdev-539: fast build of unique/primary indexes for MyISAM/Aria # +call mtr.add_suppression("Can't find record in '.*'"); DROP DATABASE IF EXISTS dbt3_s001; CREATE DATABASE dbt3_s001; use dbt3_s001; diff --git a/mysql-test/r/alter_table_mdev539_myisam.result b/mysql-test/r/alter_table_mdev539_myisam.result index bf2a3f49203..0339a64c9c7 100644 --- a/mysql-test/r/alter_table_mdev539_myisam.result +++ b/mysql-test/r/alter_table_mdev539_myisam.result @@ -3,6 +3,7 @@ set @@storage_engine= MyISAM; # # mdev-539: fast build of unique/primary indexes for MyISAM/Aria # +call mtr.add_suppression("Can't find record in '.*'"); DROP DATABASE IF EXISTS dbt3_s001; CREATE DATABASE dbt3_s001; use dbt3_s001; diff --git a/mysql-test/r/bootstrap.result b/mysql-test/r/bootstrap.result index bb80cf28b56..a4e42295c36 100644 --- a/mysql-test/r/bootstrap.result +++ b/mysql-test/r/bootstrap.result @@ -4,6 +4,8 @@ drop table t1; ERROR 42S02: Unknown table 'test.t1' set @my_max_allowed_packet= @@max_allowed_packet; set global max_allowed_packet=100*@@max_allowed_packet; +Warnings: +Warning 1292 Truncated incorrect max_allowed_packet value: '1677721600' set global max_allowed_packet=@my_max_allowed_packet; drop table t1; End of 5.1 tests diff --git a/mysql-test/r/bug39022.result b/mysql-test/r/bug39022.result index 3cdda9eeca4..599808ca7d7 100644 --- a/mysql-test/r/bug39022.result +++ b/mysql-test/r/bug39022.result @@ -1,6 +1,7 @@ # # Bug #39022: Mysql randomly crashing in lock_sec_rec_cons_read_sees # +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); CREATE TABLE t1(a TINYINT NOT NULL,b TINYINT,PRIMARY KEY(b)) ENGINE=innodb; CREATE TABLE t2(d TINYINT NOT NULL,UNIQUE KEY(d)) ENGINE=innodb; INSERT INTO t1 VALUES (13,0),(8,1),(9,2),(6,3), diff --git a/mysql-test/r/ctype_binary.result b/mysql-test/r/ctype_binary.result index 7fefa5754c3..90ff932fbc9 100644 --- a/mysql-test/r/ctype_binary.result +++ b/mysql-test/r/ctype_binary.result @@ -658,7 +658,7 @@ create table t1 as select group_concat(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` blob DEFAULT NULL + `c1` mediumblob DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select 1 as c1 union select 'a'; diff --git a/mysql-test/r/ctype_cp1251.result b/mysql-test/r/ctype_cp1251.result index 8902a30934f..205b0e1c93f 100644 --- a/mysql-test/r/ctype_cp1251.result +++ b/mysql-test/r/ctype_cp1251.result @@ -1067,7 +1067,7 @@ create table t1 as select group_concat(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` text CHARACTER SET cp1251 DEFAULT NULL + `c1` mediumtext CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select 1 as c1 union select 'a'; diff --git a/mysql-test/r/ctype_cp932_binlog_row.result b/mysql-test/r/ctype_cp932_binlog_row.result index 6eebea87928..b42489677f0 100644 --- a/mysql-test/r/ctype_cp932_binlog_row.result +++ b/mysql-test/r/ctype_cp932_binlog_row.result @@ -11,6 +11,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1(f1 blob) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES(X'8300') master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/r/ctype_latin1.result b/mysql-test/r/ctype_latin1.result index ddd2ecdbd95..80e5358d2df 100644 --- a/mysql-test/r/ctype_latin1.result +++ b/mysql-test/r/ctype_latin1.result @@ -1364,7 +1364,7 @@ create table t1 as select group_concat(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` text DEFAULT NULL + `c1` mediumtext DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select 1 as c1 union select 'a'; diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 0ac76e91c21..4d93eb2ee76 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -2267,7 +2267,7 @@ create table t1 as select group_concat(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(512) CHARACTER SET ucs2 DEFAULT NULL + `c1` mediumtext CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select 1 as c1 union select 'a'; diff --git a/mysql-test/r/ctype_utf16.result b/mysql-test/r/ctype_utf16.result index 09ba94bd12d..bd3ee12e524 100644 --- a/mysql-test/r/ctype_utf16.result +++ b/mysql-test/r/ctype_utf16.result @@ -1553,7 +1553,7 @@ SELECT space(date_add(101, INTERVAL CHAR('1' USING utf16) hour_second)); space(date_add(101, INTERVAL CHAR('1' USING utf16) hour_second)) NULL Warnings: -Warning 1301 Result of space() was larger than max_allowed_packet (4194304) - truncated +Warning 1301 Result of space() was larger than max_allowed_packet (16777216) - truncated # # Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT # @@ -1565,17 +1565,13 @@ SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1 GROUP BY id ORDER BY l DESC; id l -a 512 -Warnings: -Warning 1260 Row 1 was cut by GROUP_CONCAT() +a 1401 SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body UNION ALL SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1; id l -a 512 -Warnings: -Warning 1260 Row 1 was cut by GROUP_CONCAT() +a 1401 # # MDEV-6865 Merge Bug#18935421 RPAD DIES WITH CERTAIN PADSTR INTPUTS.. # diff --git a/mysql-test/r/ctype_utf32.result b/mysql-test/r/ctype_utf32.result index f5365dd0c31..5a86e56b704 100644 --- a/mysql-test/r/ctype_utf32.result +++ b/mysql-test/r/ctype_utf32.result @@ -1620,9 +1620,7 @@ SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1 GROUP BY id ORDER BY l DESC; id l -a 256 -Warnings: -Warning 1260 Row 1 was cut by GROUP_CONCAT() +a 1401 # # incorrect charset for val_str_ascii # diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 9a5e57574b4..810dc9b970d 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -3109,7 +3109,7 @@ create table t1 as select group_concat(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` text CHARACTER SET utf8 DEFAULT NULL + `c1` mediumtext CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select 1 as c1 union select 'a'; @@ -5411,17 +5411,13 @@ SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1 GROUP BY id ORDER BY l DESC; id l -a 1024 -Warnings: -Warning 1260 Row 2 was cut by GROUP_CONCAT() +a 1401 SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body UNION ALL SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1; id l -a 1024 -Warnings: -Warning 1260 Row 2 was cut by GROUP_CONCAT() +a 1401 # # MDEV-7814 Assertion `args[0]->fixed' fails in Item_func_conv_charset::Item_func_conv_charset # diff --git a/mysql-test/r/delete.result b/mysql-test/r/delete.result index 251ee4ab947..ed3683d52f9 100644 --- a/mysql-test/r/delete.result +++ b/mysql-test/r/delete.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Sort aborted.*"); drop table if exists t1,t2,t3,t11,t12; CREATE TABLE t1 (a tinyint(3), b tinyint(5)); INSERT INTO t1 VALUES (1,1); diff --git a/mysql-test/r/filesort_debug.result b/mysql-test/r/filesort_debug.result index 3eced35d58b..4aa40592be7 100644 --- a/mysql-test/r/filesort_debug.result +++ b/mysql-test/r/filesort_debug.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Sort aborted.*"); SET @old_debug= @@session.debug; # # Bug#36022 please log more information about "Sort aborted" queries diff --git a/mysql-test/r/func_gconcat.result b/mysql-test/r/func_gconcat.result index 17d0baa0f01..75d227b41d3 100644 --- a/mysql-test/r/func_gconcat.result +++ b/mysql-test/r/func_gconcat.result @@ -1164,7 +1164,7 @@ t2 CREATE TABLE `t2` ( `GROUP_CONCAT(UPPER(f1) ORDER BY f2)` mediumtext DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; -SET group_concat_max_len= DEFAULT; +SET group_concat_max_len= 1024; SELECT LENGTH(GROUP_CONCAT(f1 ORDER BY f2)) FROM t1; LENGTH(GROUP_CONCAT(f1 ORDER BY f2)) 1024 diff --git a/mysql-test/r/innodb_mysql_lock.result b/mysql-test/r/innodb_mysql_lock.result index 110fa50d544..584ab19b2ee 100644 --- a/mysql-test/r/innodb_mysql_lock.result +++ b/mysql-test/r/innodb_mysql_lock.result @@ -1,6 +1,7 @@ set @old_innodb_lock_wait_timeout=@@global.innodb_lock_wait_timeout; set global innodb_lock_wait_timeout=300; set session innodb_lock_wait_timeout=300; +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); # # Bug #22876 Four-way deadlock # diff --git a/mysql-test/r/limit_rows_examined.result b/mysql-test/r/limit_rows_examined.result index f22b4813050..fa979c4ec43 100644 --- a/mysql-test/r/limit_rows_examined.result +++ b/mysql-test/r/limit_rows_examined.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Sort aborted.*"); set @save_join_cache_level = @@join_cache_level; create table t1 (c1 char(2)); create table t2 (c2 char(2)); diff --git a/mysql-test/r/log_slow.result b/mysql-test/r/log_slow.result index 383ad10ba66..2e20a78a58c 100644 --- a/mysql-test/r/log_slow.result +++ b/mysql-test/r/log_slow.result @@ -9,10 +9,10 @@ select @@log_slow_verbosity; show variables like "log_slow%"; Variable_name Value -log_slow_admin_statements OFF +log_slow_admin_statements ON log_slow_filter admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk log_slow_rate_limit 1 -log_slow_slave_statements OFF +log_slow_slave_statements ON log_slow_verbosity set @org_slow_query_log= @@global.slow_query_log; set @@log_slow_filter= "filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk,admin"; diff --git a/mysql-test/r/log_state.result b/mysql-test/r/log_state.result index 8d79601d954..d4f98a6bde9 100644 --- a/mysql-test/r/log_state.result +++ b/mysql-test/r/log_state.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("options .* --log_slow_queries is not set"); SET @old_general_log= @@global.general_log; SET @old_general_log_file= @@global.general_log_file; SET @old_slow_query_log= @@global.slow_query_log; diff --git a/mysql-test/r/mix2_myisam.result b/mysql-test/r/mix2_myisam.result index 2971abb8a35..1ffebcd50be 100644 --- a/mysql-test/r/mix2_myisam.result +++ b/mysql-test/r/mix2_myisam.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Can't find record in .*"); SET SESSION STORAGE_ENGINE = MEMORY; drop table if exists t1,t2,t3,t4; drop database if exists mysqltest; diff --git a/mysql-test/r/mrr_icp_extra.result b/mysql-test/r/mrr_icp_extra.result index b27413a1a21..5706bf21895 100644 --- a/mysql-test/r/mrr_icp_extra.result +++ b/mysql-test/r/mrr_icp_extra.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Can't find record in .*"); set @mrr_icp_extra_tmp=@@optimizer_switch; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; SET NAMES latin1; diff --git a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result index 1ae05a8cff9..66f3b740079 100644 --- a/mysql-test/r/multi_update.result +++ b/mysql-test/r/multi_update.result @@ -589,6 +589,7 @@ a b include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t2,t1 SET t2.a=t1.a+2 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -602,6 +603,7 @@ ERROR 23000: Duplicate entry '4' for key 'PRIMARY' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 793a96bc4a3..54bb06b919a 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -1,3 +1,5 @@ +call mtr.add_suppression("Can't find record in '.*'"); +call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); drop table if exists t1,t2,t3; SET SQL_WARNINGS=1; CREATE TABLE t1 ( diff --git a/mysql-test/r/myisam_enable_keys-10506.result b/mysql-test/r/myisam_enable_keys-10506.result index e7ffba787f0..77a5ba8a6ea 100644 --- a/mysql-test/r/myisam_enable_keys-10506.result +++ b/mysql-test/r/myisam_enable_keys-10506.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Can't find record in '.*'"); CREATE TABLE t1 ( pk INT AUTO_INCREMENT, i INT, diff --git a/mysql-test/r/myisam_recover.result b/mysql-test/r/myisam_recover.result index 2e239cfc392..12184ad0ca6 100644 --- a/mysql-test/r/myisam_recover.result +++ b/mysql-test/r/myisam_recover.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); # # Tests for corrupted MyISAM tables and MyISAMMRG tables with corrupted # children.. diff --git a/mysql-test/r/mysqlbinlog_row_big.result b/mysql-test/r/mysqlbinlog_row_big.result index 32c6b4d40ed..a90ba9d79b6 100644 --- a/mysql-test/r/mysqlbinlog_row_big.result +++ b/mysql-test/r/mysqlbinlog_row_big.result @@ -96,6 +96,6 @@ FLUSH LOGS; # Cleanup. # # reset variable value to pass testcase checks -SET @@global.max_allowed_packet = 4194304; +SET @@global.max_allowed_packet = 16777216; DROP TABLE t1; remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out diff --git a/mysql-test/r/mysqlbinlog_row_compressed.result b/mysql-test/r/mysqlbinlog_row_compressed.result index a612433fc2f..e30557e08fa 100644 --- a/mysql-test/r/mysqlbinlog_row_compressed.result +++ b/mysql-test/r/mysqlbinlog_row_compressed.result @@ -56,9 +56,12 @@ CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMIN BEGIN /*!*/; # at 769 -# server id 1 end_log_pos 825 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 825 -# server id 1 end_log_pos 893 CRC32 XXX Write_compressed_rows: table id 30 flags: STMT_END_F +# at 843 +# server id 1 end_log_pos 843 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "") +# server id 1 end_log_pos 899 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 899 +# server id 1 end_log_pos 967 CRC32 XXX Write_compressed_rows: table id 30 flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -70,20 +73,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 893 -# server id 1 end_log_pos 966 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 967 +# server id 1 end_log_pos 1040 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 966 -# server id 1 end_log_pos 1008 CRC32 XXX GTID 0-1-4 +# at 1040 +# server id 1 end_log_pos 1082 CRC32 XXX GTID 0-1-4 /*!100001 SET @@session.gtid_seq_no=4*//*!*/; BEGIN /*!*/; -# at 1008 -# server id 1 end_log_pos 1064 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 1064 -# server id 1 end_log_pos 1131 CRC32 XXX Write_compressed_rows: table id 30 flags: STMT_END_F +# at 1082 +# at 1158 +# server id 1 end_log_pos 1158 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL) +# server id 1 end_log_pos 1214 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 1214 +# server id 1 end_log_pos 1281 CRC32 XXX Write_compressed_rows: table id 30 flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=11 /* INT meta=0 nullable=0 is_null=0 */ @@ -95,20 +101,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ -# at 1131 -# server id 1 end_log_pos 1204 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 1281 +# server id 1 end_log_pos 1354 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 1204 -# server id 1 end_log_pos 1246 CRC32 XXX GTID 0-1-5 +# at 1354 +# server id 1 end_log_pos 1396 CRC32 XXX GTID 0-1-5 /*!100001 SET @@session.gtid_seq_no=5*//*!*/; BEGIN /*!*/; -# at 1246 -# server id 1 end_log_pos 1302 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 1302 -# server id 1 end_log_pos 1368 CRC32 XXX Write_compressed_rows: table id 30 flags: STMT_END_F +# at 1396 +# at 1474 +# server id 1 end_log_pos 1474 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A") +# server id 1 end_log_pos 1530 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 1530 +# server id 1 end_log_pos 1596 CRC32 XXX Write_compressed_rows: table id 30 flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=12 /* INT meta=0 nullable=0 is_null=0 */ @@ -120,20 +129,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 1368 -# server id 1 end_log_pos 1441 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 1596 +# server id 1 end_log_pos 1669 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 1441 -# server id 1 end_log_pos 1483 CRC32 XXX GTID 0-1-6 +# at 1669 +# server id 1 end_log_pos 1711 CRC32 XXX GTID 0-1-6 /*!100001 SET @@session.gtid_seq_no=6*//*!*/; BEGIN /*!*/; -# at 1483 -# server id 1 end_log_pos 1539 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 1539 -# server id 1 end_log_pos 1606 CRC32 XXX Write_compressed_rows: table id 30 flags: STMT_END_F +# at 1711 +# at 1786 +# server id 1 end_log_pos 1786 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A") +# server id 1 end_log_pos 1842 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 1842 +# server id 1 end_log_pos 1909 CRC32 XXX Write_compressed_rows: table id 30 flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=13 /* INT meta=0 nullable=0 is_null=0 */ @@ -145,20 +157,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 1606 -# server id 1 end_log_pos 1679 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 1909 +# server id 1 end_log_pos 1982 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 1679 -# server id 1 end_log_pos 1721 CRC32 XXX GTID 0-1-7 +# at 1982 +# server id 1 end_log_pos 2024 CRC32 XXX GTID 0-1-7 /*!100001 SET @@session.gtid_seq_no=7*//*!*/; BEGIN /*!*/; -# at 1721 -# server id 1 end_log_pos 1777 CRC32 XXX Table_map: `test`.`t2` mapped to number num -# at 1777 -# server id 1 end_log_pos 1868 CRC32 XXX Write_compressed_rows: table id 31 flags: STMT_END_F +# at 2024 +# at 2078 +# server id 1 end_log_pos 2078 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 SELECT * FROM t1 +# server id 1 end_log_pos 2134 CRC32 XXX Table_map: `test`.`t2` mapped to number num +# at 2134 +# server id 1 end_log_pos 2225 CRC32 XXX Write_compressed_rows: table id 31 flags: STMT_END_F ### INSERT INTO `test`.`t2` ### SET ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -203,20 +218,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 1868 -# server id 1 end_log_pos 1941 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 2225 +# server id 1 end_log_pos 2298 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 1941 -# server id 1 end_log_pos 1983 CRC32 XXX GTID 0-1-8 +# at 2298 +# server id 1 end_log_pos 2340 CRC32 XXX GTID 0-1-8 /*!100001 SET @@session.gtid_seq_no=8*//*!*/; BEGIN /*!*/; -# at 1983 -# server id 1 end_log_pos 2039 CRC32 XXX Table_map: `test`.`t2` mapped to number num -# at 2039 -# server id 1 end_log_pos 2138 CRC32 XXX Update_compressed_rows: table id 31 flags: STMT_END_F +# at 2340 +# at 2406 +# server id 1 end_log_pos 2406 CRC32 XXX Annotate_rows: +#Q> UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL +# server id 1 end_log_pos 2462 CRC32 XXX Table_map: `test`.`t2` mapped to number num +# at 2462 +# server id 1 end_log_pos 2561 CRC32 XXX Update_compressed_rows: table id 31 flags: STMT_END_F ### UPDATE `test`.`t2` ### WHERE ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -280,20 +298,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 2138 -# server id 1 end_log_pos 2211 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 2561 +# server id 1 end_log_pos 2634 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 2211 -# server id 1 end_log_pos 2253 CRC32 XXX GTID 0-1-9 +# at 2634 +# server id 1 end_log_pos 2676 CRC32 XXX GTID 0-1-9 /*!100001 SET @@session.gtid_seq_no=9*//*!*/; BEGIN /*!*/; -# at 2253 -# server id 1 end_log_pos 2309 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 2309 -# server id 1 end_log_pos 2401 CRC32 XXX Delete_compressed_rows: table id 30 flags: STMT_END_F +# at 2676 +# at 2713 +# server id 1 end_log_pos 2713 CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 +# server id 1 end_log_pos 2769 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 2769 +# server id 1 end_log_pos 2861 CRC32 XXX Delete_compressed_rows: table id 30 flags: STMT_END_F ### DELETE FROM `test`.`t1` ### WHERE ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -338,20 +359,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 2401 -# server id 1 end_log_pos 2474 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 2861 +# server id 1 end_log_pos 2934 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 2474 -# server id 1 end_log_pos 2516 CRC32 XXX GTID 0-1-10 +# at 2934 +# server id 1 end_log_pos 2976 CRC32 XXX GTID 0-1-10 /*!100001 SET @@session.gtid_seq_no=10*//*!*/; BEGIN /*!*/; -# at 2516 -# server id 1 end_log_pos 2572 CRC32 XXX Table_map: `test`.`t2` mapped to number num -# at 2572 -# server id 1 end_log_pos 2657 CRC32 XXX Delete_compressed_rows: table id 31 flags: STMT_END_F +# at 2976 +# at 3013 +# server id 1 end_log_pos 3013 CRC32 XXX Annotate_rows: +#Q> DELETE FROM t2 +# server id 1 end_log_pos 3069 CRC32 XXX Table_map: `test`.`t2` mapped to number num +# at 3069 +# server id 1 end_log_pos 3154 CRC32 XXX Delete_compressed_rows: table id 31 flags: STMT_END_F ### DELETE FROM `test`.`t2` ### WHERE ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -396,13 +420,13 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 2657 -# server id 1 end_log_pos 2730 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 3154 +# server id 1 end_log_pos 3227 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 2730 -# server id 1 end_log_pos 2778 CRC32 XXX Rotate to master-bin.000002 pos: 4 +# at 3227 +# server id 1 end_log_pos 3275 CRC32 XXX Rotate to master-bin.000002 pos: 4 DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; diff --git a/mysql-test/r/mysqlbinlog_row_minimal.result b/mysql-test/r/mysqlbinlog_row_minimal.result index 2fb721d4103..bb23acc6484 100644 --- a/mysql-test/r/mysqlbinlog_row_minimal.result +++ b/mysql-test/r/mysqlbinlog_row_minimal.result @@ -54,9 +54,12 @@ CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMIN BEGIN /*!*/; # at 816 -# server id 1 end_log_pos 872 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 872 -# server id 1 end_log_pos 941 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F +# at 890 +# server id 1 end_log_pos 890 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "") +# server id 1 end_log_pos 946 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 946 +# server id 1 end_log_pos 1015 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -68,20 +71,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 941 -# server id 1 end_log_pos 1014 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 1015 +# server id 1 end_log_pos 1088 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 1014 -# server id 1 end_log_pos 1056 CRC32 XXX GTID 0-1-4 +# at 1088 +# server id 1 end_log_pos 1130 CRC32 XXX GTID 0-1-4 /*!100001 SET @@session.gtid_seq_no=4*//*!*/; BEGIN /*!*/; -# at 1056 -# server id 1 end_log_pos 1112 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 1112 -# server id 1 end_log_pos 1180 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F +# at 1130 +# at 1206 +# server id 1 end_log_pos 1206 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL) +# server id 1 end_log_pos 1262 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 1262 +# server id 1 end_log_pos 1330 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=11 /* INT meta=0 nullable=0 is_null=0 */ @@ -93,20 +99,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ -# at 1180 -# server id 1 end_log_pos 1253 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 1330 +# server id 1 end_log_pos 1403 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 1253 -# server id 1 end_log_pos 1295 CRC32 XXX GTID 0-1-5 +# at 1403 +# server id 1 end_log_pos 1445 CRC32 XXX GTID 0-1-5 /*!100001 SET @@session.gtid_seq_no=5*//*!*/; BEGIN /*!*/; -# at 1295 -# server id 1 end_log_pos 1351 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 1351 -# server id 1 end_log_pos 1418 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F +# at 1445 +# at 1523 +# server id 1 end_log_pos 1523 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A") +# server id 1 end_log_pos 1579 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 1579 +# server id 1 end_log_pos 1646 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=12 /* INT meta=0 nullable=0 is_null=0 */ @@ -118,20 +127,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 1418 -# server id 1 end_log_pos 1491 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 1646 +# server id 1 end_log_pos 1719 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 1491 -# server id 1 end_log_pos 1533 CRC32 XXX GTID 0-1-6 +# at 1719 +# server id 1 end_log_pos 1761 CRC32 XXX GTID 0-1-6 /*!100001 SET @@session.gtid_seq_no=6*//*!*/; BEGIN /*!*/; -# at 1533 -# server id 1 end_log_pos 1589 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 1589 -# server id 1 end_log_pos 1659 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F +# at 1761 +# at 1836 +# server id 1 end_log_pos 1836 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A") +# server id 1 end_log_pos 1892 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 1892 +# server id 1 end_log_pos 1962 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET ### @1=13 /* INT meta=0 nullable=0 is_null=0 */ @@ -143,20 +155,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 1659 -# server id 1 end_log_pos 1732 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 1962 +# server id 1 end_log_pos 2035 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 1732 -# server id 1 end_log_pos 1774 CRC32 XXX GTID 0-1-7 +# at 2035 +# server id 1 end_log_pos 2077 CRC32 XXX GTID 0-1-7 /*!100001 SET @@session.gtid_seq_no=7*//*!*/; BEGIN /*!*/; -# at 1774 -# server id 1 end_log_pos 1830 CRC32 XXX Table_map: `test`.`t2` mapped to number num -# at 1830 -# server id 1 end_log_pos 1997 CRC32 XXX Write_rows: table id 31 flags: STMT_END_F +# at 2077 +# at 2131 +# server id 1 end_log_pos 2131 CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 SELECT * FROM t1 +# server id 1 end_log_pos 2187 CRC32 XXX Table_map: `test`.`t2` mapped to number num +# at 2187 +# server id 1 end_log_pos 2354 CRC32 XXX Write_rows: table id 31 flags: STMT_END_F ### INSERT INTO `test`.`t2` ### SET ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -201,20 +216,23 @@ BEGIN ### @7=6 /* INT meta=0 nullable=1 is_null=0 */ ### @8=7 /* INT meta=0 nullable=1 is_null=0 */ ### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */ -# at 1997 -# server id 1 end_log_pos 2070 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 2354 +# server id 1 end_log_pos 2427 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 2070 -# server id 1 end_log_pos 2112 CRC32 XXX GTID 0-1-8 +# at 2427 +# server id 1 end_log_pos 2469 CRC32 XXX GTID 0-1-8 /*!100001 SET @@session.gtid_seq_no=8*//*!*/; BEGIN /*!*/; -# at 2112 -# server id 1 end_log_pos 2168 CRC32 XXX Table_map: `test`.`t2` mapped to number num -# at 2168 -# server id 1 end_log_pos 2242 CRC32 XXX Update_rows: table id 31 flags: STMT_END_F +# at 2469 +# at 2535 +# server id 1 end_log_pos 2535 CRC32 XXX Annotate_rows: +#Q> UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL +# server id 1 end_log_pos 2591 CRC32 XXX Table_map: `test`.`t2` mapped to number num +# at 2591 +# server id 1 end_log_pos 2665 CRC32 XXX Update_rows: table id 31 flags: STMT_END_F ### UPDATE `test`.`t2` ### WHERE ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -233,20 +251,23 @@ BEGIN ### @5=NULL /* INT meta=0 nullable=1 is_null=1 */ ### SET ### @5=5 /* INT meta=0 nullable=1 is_null=0 */ -# at 2242 -# server id 1 end_log_pos 2315 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 2665 +# server id 1 end_log_pos 2738 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 2315 -# server id 1 end_log_pos 2357 CRC32 XXX GTID 0-1-9 +# at 2738 +# server id 1 end_log_pos 2780 CRC32 XXX GTID 0-1-9 /*!100001 SET @@session.gtid_seq_no=9*//*!*/; BEGIN /*!*/; -# at 2357 -# server id 1 end_log_pos 2413 CRC32 XXX Table_map: `test`.`t1` mapped to number num -# at 2413 -# server id 1 end_log_pos 2467 CRC32 XXX Delete_rows: table id 30 flags: STMT_END_F +# at 2780 +# at 2817 +# server id 1 end_log_pos 2817 CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 +# server id 1 end_log_pos 2873 CRC32 XXX Table_map: `test`.`t1` mapped to number num +# at 2873 +# server id 1 end_log_pos 2927 CRC32 XXX Delete_rows: table id 30 flags: STMT_END_F ### DELETE FROM `test`.`t1` ### WHERE ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -259,20 +280,23 @@ BEGIN ### DELETE FROM `test`.`t1` ### WHERE ### @1=13 /* INT meta=0 nullable=0 is_null=0 */ -# at 2467 -# server id 1 end_log_pos 2540 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 2927 +# server id 1 end_log_pos 3000 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 2540 -# server id 1 end_log_pos 2582 CRC32 XXX GTID 0-1-10 +# at 3000 +# server id 1 end_log_pos 3042 CRC32 XXX GTID 0-1-10 /*!100001 SET @@session.gtid_seq_no=10*//*!*/; BEGIN /*!*/; -# at 2582 -# server id 1 end_log_pos 2638 CRC32 XXX Table_map: `test`.`t2` mapped to number num -# at 2638 -# server id 1 end_log_pos 2692 CRC32 XXX Delete_rows: table id 31 flags: STMT_END_F +# at 3042 +# at 3079 +# server id 1 end_log_pos 3079 CRC32 XXX Annotate_rows: +#Q> DELETE FROM t2 +# server id 1 end_log_pos 3135 CRC32 XXX Table_map: `test`.`t2` mapped to number num +# at 3135 +# server id 1 end_log_pos 3189 CRC32 XXX Delete_rows: table id 31 flags: STMT_END_F ### DELETE FROM `test`.`t2` ### WHERE ### @1=10 /* INT meta=0 nullable=0 is_null=0 */ @@ -285,13 +309,13 @@ BEGIN ### DELETE FROM `test`.`t2` ### WHERE ### @1=13 /* INT meta=0 nullable=0 is_null=0 */ -# at 2692 -# server id 1 end_log_pos 2765 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 +# at 3189 +# server id 1 end_log_pos 3262 CRC32 XXX Query thread_id=4 exec_time=x error_code=0 SET TIMESTAMP=X/*!*/; COMMIT /*!*/; -# at 2765 -# server id 1 end_log_pos 2813 CRC32 XXX Rotate to master-bin.000002 pos: 4 +# at 3262 +# server id 1 end_log_pos 3310 CRC32 XXX Rotate to master-bin.000002 pos: 4 DELIMITER ; # End of log file ROLLBACK /* added by mysqlbinlog */; diff --git a/mysql-test/r/mysqld--help.result b/mysql-test/r/mysqld--help.result index 9ebd0f37444..d45a6e61c2f 100644 --- a/mysql-test/r/mysqld--help.result +++ b/mysql-test/r/mysqld--help.result @@ -33,6 +33,7 @@ The following options may be given as the first argument: --binlog-annotate-row-events Tells the master to annotate RBR events with the statement that caused these events + (Defaults to on; use --skip-binlog-annotate-row-events to disable.) --binlog-cache-size=# The size of the transactional cache for updates to transactional engines for the binary log. If you often @@ -238,7 +239,7 @@ The following options may be given as the first argument: prefixes. (Defaults to on; use --skip-getopt-prefix-matching to disable.) --group-concat-max-len=# - The maximum length of the result of function + The maximum length of the result of function GROUP_CONCAT() --gtid-domain-id=# Used with global transaction ID to identify logically independent replication streams. When events can @@ -379,6 +380,7 @@ The following options may be given as the first argument: --log-slow-admin-statements Log slow OPTIMIZE, ANALYZE, ALTER and other administrative statements to the slow log if it is open. + (Defaults to on; use --skip-log-slow-admin-statements to disable.) --log-slow-filter=name Log only certain types of queries. Any combination of: admin, filesort, filesort_on_disk, full_join, full_scan, @@ -391,6 +393,7 @@ The following options may be given as the first argument: --log-slow-slave-statements Log slow statements executed by slave thread to the slow log if it is open. + (Defaults to on; use --skip-log-slow-slave-statements to disable.) --log-slow-verbosity=name Verbosity level for the slow log. Any combination of: innodb, query_plan, explain @@ -820,6 +823,7 @@ The following options may be given as the first argument: Tells the slave to write annotate rows events received from the master to its own binary log. Ignored if log_slave_updates is not set + (Defaults to on; use --skip-replicate-annotate-row-events to disable.) --replicate-do-db=name Tells the slave thread to restrict replication to the specified database. To specify more than one database, @@ -1190,15 +1194,15 @@ automatic-sp-privileges TRUE back-log 80 big-tables FALSE bind-address (No default value) -binlog-annotate-row-events FALSE +binlog-annotate-row-events TRUE binlog-cache-size 32768 binlog-checksum CRC32 binlog-commit-wait-count 0 binlog-commit-wait-usec 100000 binlog-direct-non-transactional-updates FALSE -binlog-format STATEMENT +binlog-format MIXED binlog-optimize-thread-scheduling TRUE -binlog-row-event-max-size 1024 +binlog-row-event-max-size 8192 binlog-row-image FULL binlog-stmt-cache-size 32768 bulk-insert-buffer-size 8388608 @@ -1247,7 +1251,7 @@ ft-stopword-file (No default value) gdb FALSE general-log FALSE getopt-prefix-matching TRUE -group-concat-max-len 1024 +group-concat-max-len 1048576 gtid-domain-id 0 gtid-ignore-duplicates FALSE gtid-strict-mode FALSE @@ -1277,7 +1281,7 @@ lc-messages en_US lc-messages-dir MYSQL_SHAREDIR/ lc-time-names en_US local-infile TRUE -lock-wait-timeout 31536000 +lock-wait-timeout 86400 log-bin (No default value) log-bin-compress FALSE log-bin-compress-min-len 256 @@ -1289,20 +1293,20 @@ log-output FILE log-queries-not-using-indexes FALSE log-short-format FALSE log-slave-updates FALSE -log-slow-admin-statements FALSE +log-slow-admin-statements TRUE log-slow-filter admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk log-slow-rate-limit 1 -log-slow-slave-statements FALSE +log-slow-slave-statements TRUE log-slow-verbosity log-tc tc.log -log-warnings 1 +log-warnings 2 long-query-time 10 low-priority-updates FALSE lower-case-table-names 1 master-info-file master.info master-retry-count 86400 master-verify-checksum FALSE -max-allowed-packet 4194304 +max-allowed-packet 16777216 max-binlog-cache-size 18446744073709547520 max-binlog-size 1073741824 max-binlog-stmt-cache-size 18446744073709547520 @@ -1314,7 +1318,7 @@ max-error-count 64 max-heap-table-size 16777216 max-join-size 18446744073709551615 max-length-for-sort-data 1024 -max-long-data-size 4194304 +max-long-data-size 16777216 max-prepared-stmt-count 16382 max-recursive-iterations 18446744073709551615 max-relay-log-size 1073741824 @@ -1336,7 +1340,7 @@ myisam-block-size 1024 myisam-data-pointer-size 6 myisam-max-sort-file-size 9223372036853727232 myisam-mmap-size 18446744073709551615 -myisam-recover-options DEFAULT +myisam-recover-options BACKUP,QUICK myisam-repair-threads 1 myisam-sort-buffer-size 134216704 myisam-stats-method NULLS_UNEQUAL @@ -1427,7 +1431,7 @@ relay-log-info-file relay-log.info relay-log-purge TRUE relay-log-recovery FALSE relay-log-space-limit 0 -replicate-annotate-row-events FALSE +replicate-annotate-row-events TRUE replicate-events-marked-for-skip REPLICATE replicate-same-server-id FALSE report-host (No default value) @@ -1455,7 +1459,7 @@ slave-ddl-exec-mode IDEMPOTENT slave-domain-parallel-threads 0 slave-exec-mode STRICT slave-max-allowed-packet 1073741824 -slave-net-timeout 3600 +slave-net-timeout 60 slave-parallel-max-queued 131072 slave-parallel-mode conservative slave-parallel-threads 0 @@ -1474,7 +1478,7 @@ standard-compliant-cte TRUE stored-program-cache 256 strict-password-validation TRUE symbolic-links FALSE -sync-binlog 0 +sync-binlog 1 sync-frm FALSE sync-master-info 10000 sync-relay-log 10000 diff --git a/mysql-test/r/order_by.result b/mysql-test/r/order_by.result index b4d78ac8347..fd5c9596b6c 100644 --- a/mysql-test/r/order_by.result +++ b/mysql-test/r/order_by.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Sort aborted.*"); drop table if exists t1,t2,t3; call mtr.add_suppression("Out of sort memory; increase server sort buffer size"); CREATE TABLE t1 ( diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result index c40669fd17b..c1eff91de53 100644 --- a/mysql-test/r/partition_innodb.result +++ b/mysql-test/r/partition_innodb.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); set global default_storage_engine='innodb'; set session default_storage_engine='innodb'; drop table if exists t1, t2; diff --git a/mysql-test/r/partition_innodb_plugin.result b/mysql-test/r/partition_innodb_plugin.result index 28f5a1303ea..60cea8496b0 100644 --- a/mysql-test/r/partition_innodb_plugin.result +++ b/mysql-test/r/partition_innodb_plugin.result @@ -1,4 +1,5 @@ call mtr.add_suppression("InnoDB: Table .* does not exist in the InnoDB internal data dictionary .*"); +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); # # Bug#11766879/Bug#60106: DIFF BETWEEN # OF INDEXES IN MYSQL VS INNODB, # PARTITONING, ON INDEX CREATE diff --git a/mysql-test/r/row-checksum-old.result b/mysql-test/r/row-checksum-old.result index 5789fc64c68..87cd1cc89ed 100644 --- a/mysql-test/r/row-checksum-old.result +++ b/mysql-test/r/row-checksum-old.result @@ -71,17 +71,15 @@ checksum table t1 extended; Table Checksum test.t1 4108368782 drop table if exists t1; -create table t1 (a int null, v varchar(100)) engine=innodb checksum=0 row_format=fixed; -Warnings: -Warning 1478 InnoDB: assuming ROW_FORMAT=DYNAMIC. +create table t1 (a int null, v varchar(100)) engine=innodb checksum=0 row_format=compact; insert into t1 values(null, null), (1, "hello"); checksum table t1; Table Checksum -test.t1 4108368782 +test.t1 452555338 checksum table t1 quick; Table Checksum test.t1 NULL checksum table t1 extended; Table Checksum -test.t1 4108368782 +test.t1 452555338 drop table t1; diff --git a/mysql-test/r/row-checksum.result b/mysql-test/r/row-checksum.result index 0fbebba073b..f2e687f8b6e 100644 --- a/mysql-test/r/row-checksum.result +++ b/mysql-test/r/row-checksum.result @@ -71,17 +71,15 @@ checksum table t1 extended; Table Checksum test.t1 3885665021 drop table if exists t1; -create table t1 (a int null, v varchar(100)) engine=innodb checksum=0 row_format=fixed; -Warnings: -Warning 1478 InnoDB: assuming ROW_FORMAT=DYNAMIC. +create table t1 (a int null, v varchar(100)) engine=innodb checksum=0 row_format=compact; insert into t1 values(null, null), (1, "hello"); checksum table t1; Table Checksum -test.t1 3885665021 +test.t1 229851577 checksum table t1 quick; Table Checksum test.t1 NULL checksum table t1 extended; Table Checksum -test.t1 3885665021 +test.t1 229851577 drop table t1; diff --git a/mysql-test/r/set_statement_debug.result b/mysql-test/r/set_statement_debug.result index bf873a6e824..39c5af2c623 100644 --- a/mysql-test/r/set_statement_debug.result +++ b/mysql-test/r/set_statement_debug.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Sort aborted.*"); set @save_debug_dbug= @@debug_dbug; set statement debug_dbug="d,something" for select @@debug_dbug; @@debug_dbug diff --git a/mysql-test/r/statistics.result b/mysql-test/r/statistics.result index bf5cb4f1748..6e028a35480 100644 --- a/mysql-test/r/statistics.result +++ b/mysql-test/r/statistics.result @@ -925,36 +925,36 @@ db_name table_name cardinality test t1 40 SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL -test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL +test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL +test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 idx2 1 7.0000 -test t1 idx2 2 2.3846 -test t1 idx4 1 6.2000 -test t1 idx4 2 1.6875 test t1 idx4 3 1.1304 +test t1 idx4 2 1.6875 +test t1 idx4 1 6.2000 +test t1 idx2 2 2.3846 +test t1 idx2 1 7.0000 DELETE FROM mysql.index_stats WHERE table_name='t1' AND index_name='primary'; SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 idx2 1 7.0000 -test t1 idx2 2 2.3846 -test t1 idx4 1 6.2000 -test t1 idx4 2 1.6875 test t1 idx4 3 1.1304 +test t1 idx4 2 1.6875 +test t1 idx4 1 6.2000 +test t1 idx2 2 2.3846 +test t1 idx2 1 7.0000 ANALYZE TABLE t1 PERSISTENT FOR COLUMNS() INDEXES(primary); Table Op Msg_type Msg_text test.t1 analyze status Engine-independent statistics collected test.t1 analyze status Table is already up to date SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 idx2 1 7.0000 -test t1 idx2 2 2.3846 -test t1 idx4 1 6.2000 -test t1 idx4 2 1.6875 -test t1 idx4 3 1.1304 test t1 PRIMARY 1 1.0000 +test t1 idx4 3 1.1304 +test t1 idx4 2 1.6875 +test t1 idx4 1 6.2000 +test t1 idx2 2 2.3846 +test t1 idx2 1 7.0000 DELETE FROM mysql.table_stats; DELETE FROM mysql.column_stats; DELETE FROM mysql.index_stats; @@ -967,22 +967,22 @@ db_name table_name cardinality test t1 40 SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram +test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL +test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL +test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL -test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL -test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL -test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 PRIMARY 1 1.0000 -test t1 idx3 1 8.5000 -test t1 idx1 1 6.4000 -test t1 idx1 2 1.6875 +test t1 idx4 2 1.6875 +test t1 idx4 1 6.2000 test t1 idx2 1 7.0000 test t1 idx2 2 2.3846 -test t1 idx4 1 6.2000 -test t1 idx4 2 1.6875 +test t1 idx1 2 1.6875 +test t1 idx1 1 6.4000 +test t1 idx3 1 8.5000 +test t1 PRIMARY 1 1.0000 test t1 idx4 3 1.1304 CREATE TABLE t2 LIKE t1; ALTER TABLE t2 ENGINE=InnoDB; @@ -998,8 +998,8 @@ test t1 40 test t2 40 SELECT * FROM mysql.column_stats ORDER BY column_name; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL +test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL test t2 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL @@ -1193,22 +1193,22 @@ ADD INDEX idx1 (b(4), e), ADD INDEX idx4 (e, b(4), d); SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL -test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL -test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL -test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL +test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL +test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL +test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL +test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t2 idx3 1 8.5000 -test t2 idx2 1 7.0000 -test t2 idx2 2 2.3846 +test t2 PRIMARY 1 1.0000 +test t2 idx3 2 1.0000 test t2 idx2 3 1.0000 test t2 idx4 1 6.2000 test t2 idx4 2 2.2308 test t2 idx4 3 1.0000 -test t2 idx3 2 1.0000 -test t2 PRIMARY 1 1.0000 +test t2 idx2 2 2.3846 +test t2 idx2 1 7.0000 +test t2 idx3 1 8.5000 ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status Engine-independent statistics collected @@ -1216,33 +1216,33 @@ test.t1 analyze Warning Engine-independent statistics are not collected for colu test.t1 analyze status OK SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL -test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL -test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL -test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL -test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL -test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL -test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL -test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL +test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL +test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL +test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL +test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL +test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL +test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL +test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL +test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 idx2 1 7.0000 -test t2 idx3 1 8.5000 -test t1 idx3 1 8.5000 -test t1 PRIMARY 1 1.0000 -test t2 idx2 1 7.0000 -test t2 idx2 2 2.3846 +test t1 idx1 2 NULL +test t2 PRIMARY 1 1.0000 +test t2 idx3 2 1.0000 test t2 idx2 3 1.0000 test t2 idx4 1 6.2000 test t2 idx4 2 2.2308 test t2 idx4 3 1.0000 -test t2 idx3 2 1.0000 -test t2 PRIMARY 1 1.0000 +test t1 PRIMARY 1 1.0000 +test t1 idx3 1 8.5000 +test t2 idx2 2 2.3846 +test t2 idx2 1 7.0000 test t1 idx2 2 2.3846 +test t1 idx2 1 7.0000 +test t2 idx3 1 8.5000 test t1 idx1 1 NULL -test t1 idx1 2 NULL test t1 idx4 1 6.2000 test t1 idx4 2 NULL test t1 idx4 3 NULL @@ -1272,22 +1272,22 @@ db_name table_name cardinality test t1 40 SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL -test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL -test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL -test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL +test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL +test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL +test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL +test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 PRIMARY 1 1.0000 -test t1 idx3 1 8.5000 -test t1 idx2 1 7.0000 -test t1 idx2 2 2.3846 -test t1 idx1 1 NULL -test t1 idx1 2 NULL -test t1 idx4 1 6.2000 -test t1 idx4 2 NULL test t1 idx4 3 NULL +test t1 idx4 2 NULL +test t1 idx4 1 6.2000 +test t1 idx1 2 NULL +test t1 idx1 1 NULL +test t1 idx2 2 2.3846 +test t1 idx2 1 7.0000 +test t1 idx3 1 8.5000 +test t1 PRIMARY 1 1.0000 DELETE FROM mysql.table_stats; DELETE FROM mysql.column_stats; DELETE FROM mysql.index_stats; @@ -1354,15 +1354,15 @@ SELECT UPPER(db_name), UPPER(table_name), column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency FROM mysql.column_stats; UPPER(db_name) UPPER(table_name) column_name min_value max_value nulls_ratio avg_length avg_frequency -WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 -WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 -WORLD COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 -WORLD COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 -WORLD COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 -WORLD CITY ID 1 4079 0.0000 4.0000 1.0000 WORLD CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195 -WORLD CITY Country ABW ZWE 0.0000 3.0000 17.5819 WORLD CITY Population 42 10500000 0.0000 4.0000 1.0467 +WORLD CITY Country ABW ZWE 0.0000 3.0000 17.5819 +WORLD CITY ID 1 4079 0.0000 4.0000 1.0000 +WORLD COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 +WORLD COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 +WORLD COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 +WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 +WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 WORLD COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232 WORLD COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532 WORLD COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640 @@ -1370,14 +1370,14 @@ SELECT UPPER(db_name), UPPER(table_name), index_name, prefix_arity, avg_frequency FROM mysql.index_stats; UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency -WORLD COUNTRY PRIMARY 1 1.0000 -WORLD COUNTRY Name 1 1.0000 -WORLD CITY PRIMARY 1 1.0000 -WORLD CITY Population 1 1.0467 -WORLD CITY Country 1 17.5819 -WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232 -WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000 WORLD COUNTRYLANGUAGE Percentage 1 2.7640 +WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000 +WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232 +WORLD CITY Country 1 17.5819 +WORLD CITY Population 1 1.0467 +WORLD CITY PRIMARY 1 1.0000 +WORLD COUNTRY Name 1 1.0000 +WORLD COUNTRY PRIMARY 1 1.0000 use test; set use_stat_tables='never'; CREATE DATABASE world_innodb; @@ -1425,15 +1425,15 @@ SELECT UPPER(db_name), UPPER(table_name), column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency FROM mysql.column_stats; UPPER(db_name) UPPER(table_name) column_name min_value max_value nulls_ratio avg_length avg_frequency -WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 -WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 -WORLD COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 -WORLD COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 -WORLD COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 -WORLD CITY ID 1 4079 0.0000 4.0000 1.0000 WORLD CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195 -WORLD CITY Country ABW ZWE 0.0000 3.0000 17.5819 WORLD CITY Population 42 10500000 0.0000 4.0000 1.0467 +WORLD CITY Country ABW ZWE 0.0000 3.0000 17.5819 +WORLD CITY ID 1 4079 0.0000 4.0000 1.0000 +WORLD COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 +WORLD COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 +WORLD COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 +WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 +WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 WORLD COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232 WORLD COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532 WORLD COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640 @@ -1453,19 +1453,19 @@ SELECT UPPER(db_name), UPPER(table_name), index_name, prefix_arity, avg_frequency FROM mysql.index_stats; UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency -WORLD COUNTRY PRIMARY 1 1.0000 -WORLD COUNTRY Name 1 1.0000 -WORLD CITY PRIMARY 1 1.0000 -WORLD CITY Population 1 1.0467 -WORLD CITY Country 1 17.5819 -WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232 -WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000 -WORLD COUNTRYLANGUAGE Percentage 1 2.7640 -WORLD_INNODB COUNTRY PRIMARY 1 1.0000 -WORLD_INNODB COUNTRY Name 1 1.0000 -WORLD_INNODB CITY PRIMARY 1 1.0000 -WORLD_INNODB CITY Population 1 1.0467 WORLD_INNODB CITY Country 1 17.5819 +WORLD_INNODB CITY Population 1 1.0467 +WORLD_INNODB CITY PRIMARY 1 1.0000 +WORLD_INNODB COUNTRY Name 1 1.0000 +WORLD_INNODB COUNTRY PRIMARY 1 1.0000 +WORLD COUNTRYLANGUAGE Percentage 1 2.7640 +WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000 +WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232 +WORLD CITY Country 1 17.5819 +WORLD CITY Population 1 1.0467 +WORLD CITY PRIMARY 1 1.0000 +WORLD COUNTRY Name 1 1.0000 +WORLD COUNTRY PRIMARY 1 1.0000 WORLD_INNODB COUNTRYLANGUAGE PRIMARY 1 4.2232 WORLD_INNODB COUNTRYLANGUAGE PRIMARY 2 1.0000 WORLD_INNODB COUNTRYLANGUAGE Percentage 1 2.7640 @@ -1534,11 +1534,11 @@ SELECT UPPER(db_name), UPPER(table_name), index_name, prefix_arity, avg_frequency FROM mysql.index_stats; UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency -WORLD_INNODB COUNTRY PRIMARY 1 1.0000 -WORLD_INNODB COUNTRY Name 1 1.0000 -WORLD_INNODB CITY PRIMARY 1 1.0000 -WORLD_INNODB CITY Population 1 1.0467 WORLD_INNODB CITY Country 1 17.5819 +WORLD_INNODB CITY Population 1 1.0467 +WORLD_INNODB CITY PRIMARY 1 1.0000 +WORLD_INNODB COUNTRY Name 1 1.0000 +WORLD_INNODB COUNTRY PRIMARY 1 1.0000 WORLD_INNODB COUNTRYLANGUAGE PRIMARY 1 4.2232 WORLD_INNODB COUNTRYLANGUAGE PRIMARY 2 1.0000 WORLD_INNODB COUNTRYLANGUAGE Percentage 1 2.7640 diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index dee15c3b451..5ed2f5c9622 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -1,5 +1,6 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12; drop view if exists v2; +call mtr.add_suppression("Sort aborted.*"); set @subselect_tmp=@@optimizer_switch; set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); diff --git a/mysql-test/r/subselect_no_exists_to_in.result b/mysql-test/r/subselect_no_exists_to_in.result index 7f6ff7a6a16..113a2333b80 100644 --- a/mysql-test/r/subselect_no_exists_to_in.result +++ b/mysql-test/r/subselect_no_exists_to_in.result @@ -4,6 +4,7 @@ select @@optimizer_switch like '%exists_to_in=off%'; set optimizer_switch='exists_to_in=off'; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12; drop view if exists v2; +call mtr.add_suppression("Sort aborted.*"); set @subselect_tmp=@@optimizer_switch; set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); diff --git a/mysql-test/r/subselect_no_mat.result b/mysql-test/r/subselect_no_mat.result index 6a17f8c8bf5..7ee8821cd00 100644 --- a/mysql-test/r/subselect_no_mat.result +++ b/mysql-test/r/subselect_no_mat.result @@ -7,6 +7,7 @@ set join_cache_level=1; set @join_cache_level_for_subselect_test=@@join_cache_level; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12; drop view if exists v2; +call mtr.add_suppression("Sort aborted.*"); set @subselect_tmp=@@optimizer_switch; set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); diff --git a/mysql-test/r/subselect_no_opts.result b/mysql-test/r/subselect_no_opts.result index c37fc66613f..59074b859ea 100644 --- a/mysql-test/r/subselect_no_opts.result +++ b/mysql-test/r/subselect_no_opts.result @@ -3,6 +3,7 @@ set join_cache_level=1; set @join_cache_level_for_subselect_test=@@join_cache_level; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12; drop view if exists v2; +call mtr.add_suppression("Sort aborted.*"); set @subselect_tmp=@@optimizer_switch; set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); diff --git a/mysql-test/r/subselect_no_scache.result b/mysql-test/r/subselect_no_scache.result index 0fec9524dd5..6acd441f465 100644 --- a/mysql-test/r/subselect_no_scache.result +++ b/mysql-test/r/subselect_no_scache.result @@ -6,6 +6,7 @@ set join_cache_level=1; set @join_cache_level_for_subselect_test=@@join_cache_level; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12; drop view if exists v2; +call mtr.add_suppression("Sort aborted.*"); set @subselect_tmp=@@optimizer_switch; set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); diff --git a/mysql-test/r/subselect_no_semijoin.result b/mysql-test/r/subselect_no_semijoin.result index 6b45582eb45..0c5f9885218 100644 --- a/mysql-test/r/subselect_no_semijoin.result +++ b/mysql-test/r/subselect_no_semijoin.result @@ -3,6 +3,7 @@ set join_cache_level=1; set @join_cache_level_for_subselect_test=@@join_cache_level; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12; drop view if exists v2; +call mtr.add_suppression("Sort aborted.*"); set @subselect_tmp=@@optimizer_switch; set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); diff --git a/mysql-test/r/union.result b/mysql-test/r/union.result index adaaf084a3d..c3be8d8379c 100644 --- a/mysql-test/r/union.result +++ b/mysql-test/r/union.result @@ -1373,7 +1373,7 @@ t3 CREATE TABLE `t3` ( drop tables t1,t2,t3; SELECT @tmp_max:= @@global.max_allowed_packet; @tmp_max:= @@global.max_allowed_packet -4194304 +16777216 SET @@global.max_allowed_packet=25000000; Warnings: Warning 1292 Truncated incorrect max_allowed_packet value: '25000000' diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result index d6762e5a1c5..bca59b5225a 100644 --- a/mysql-test/r/variables.result +++ b/mysql-test/r/variables.result @@ -1278,12 +1278,12 @@ ERROR HY000: Variable 'lower_case_table_names' is a read only variable # SHOW VARIABLES like 'myisam_recover_options'; Variable_name Value -myisam_recover_options DEFAULT +myisam_recover_options BACKUP,QUICK SELECT @@session.myisam_recover_options; ERROR HY000: Variable 'myisam_recover_options' is a GLOBAL variable SELECT @@global.myisam_recover_options; @@global.myisam_recover_options -DEFAULT +BACKUP,QUICK SET @@session.myisam_recover_options= 'x'; ERROR HY000: Variable 'myisam_recover_options' is a read only variable SET @@global.myisam_recover_options= 'x'; @@ -1532,7 +1532,7 @@ SET @@global.key_buffer_size=@kbs; SET @@global.key_cache_block_size=@kcbs; select @@max_long_data_size; @@max_long_data_size -4194304 +16777216 # # Bug#11766424 59527: # Assert in DECIMAL_BIN_SIZE: diff --git a/mysql-test/r/xa.result b/mysql-test/r/xa.result index de1d507bd4b..fdcf25f3a12 100644 --- a/mysql-test/r/xa.result +++ b/mysql-test/r/xa.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); drop table if exists t1, t2; create table t1 (a int) engine=innodb; xa start 'test1'; diff --git a/mysql-test/suite/archive/repair.result b/mysql-test/suite/archive/repair.result index 16f0f2c1608..9b17fdc7729 100644 --- a/mysql-test/suite/archive/repair.result +++ b/mysql-test/suite/archive/repair.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); create table t1 (a int) engine=archive; insert into t1 values (1); select * from t1; diff --git a/mysql-test/suite/archive/repair.test b/mysql-test/suite/archive/repair.test index 03946d31ead..48ec6b706f3 100644 --- a/mysql-test/suite/archive/repair.test +++ b/mysql-test/suite/archive/repair.test @@ -4,6 +4,8 @@ --source include/have_archive.inc +call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); + --let $datadir = `SELECT @@datadir` create table t1 (a int) engine=archive; diff --git a/mysql-test/suite/binlog/r/binlog_checkpoint.result b/mysql-test/suite/binlog/r/binlog_checkpoint.result index a636952a1cd..9e987913423 100644 --- a/mysql-test/suite/binlog/r/binlog_checkpoint.result +++ b/mysql-test/suite/binlog/r/binlog_checkpoint.result @@ -65,6 +65,7 @@ master-bin.000001 # Format_desc # # SERVER_VERSION, BINLOG_VERSION master-bin.000001 # Gtid_list # # [] master-bin.000001 # Binlog_checkpoint # # master-bin.000001 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (20, REPEAT("x", 4100)) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -75,6 +76,7 @@ master-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION master-bin.000002 # Gtid_list # # [#-#-#] master-bin.000002 # Binlog_checkpoint # # master-bin.000001 master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Annotate_rows # # INSERT INTO t1 VALUES (21, REPEAT("x", 4100)) master-bin.000002 # Table_map # # table_id: # (test.t1) master-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000002 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/binlog/r/binlog_database.result b/mysql-test/suite/binlog/r/binlog_database.result index 2c2c5966538..2661b344cad 100644 --- a/mysql-test/suite/binlog/r/binlog_database.result +++ b/mysql-test/suite/binlog/r/binlog_database.result @@ -228,12 +228,14 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (a int) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # drop database if exists mysqltest1 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_implicit_commit.result b/mysql-test/suite/binlog/r/binlog_implicit_commit.result index bd36418e886..d0e2066b3e1 100644 --- a/mysql-test/suite/binlog/r/binlog_implicit_commit.result +++ b/mysql-test/suite/binlog/r/binlog_implicit_commit.result @@ -138,6 +138,7 @@ SET AUTOCOMMIT = 1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -151,6 +152,7 @@ SET AUTOCOMMIT = 1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -158,10 +160,12 @@ INSERT INTO t1 VALUES (3); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -169,10 +173,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -183,6 +189,7 @@ INSERT INTO t1 VALUES (1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -190,6 +197,7 @@ SET AUTOCOMMIT = 1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -207,8 +215,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -233,8 +243,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -245,6 +257,7 @@ INSERT INTO t1 VALUES (1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -252,6 +265,7 @@ SET AUTOCOMMIT = 0; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -269,8 +283,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -283,6 +299,7 @@ LOCK TABLES t1 WRITE; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -290,6 +307,7 @@ INSERT INTO t1 VALUES (2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -297,10 +315,12 @@ UNLOCK TABLES; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -308,10 +328,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/binlog/r/binlog_innodb.result b/mysql-test/suite/binlog/r/binlog_innodb.result index afa6c827e0b..2896706d407 100644 --- a/mysql-test/suite/binlog/r/binlog_innodb.result +++ b/mysql-test/suite/binlog/r/binlog_innodb.result @@ -74,6 +74,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 2*a WHERE a > 1 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = a * a WHERE a > 3 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -84,10 +85,12 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 4*a WHERE a > 4 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 1*a WHERE a > 1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 2*a WHERE a > 2 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -98,18 +101,22 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 4*a WHERE a > 4 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 1*a WHERE a > 1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 2*a WHERE a > 2 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 3*a WHERE a > 3 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 4*a WHERE a > 4 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/binlog/r/binlog_innodb_row.result b/mysql-test/suite/binlog/r/binlog_innodb_row.result index 82c1b4410fd..ca92a03ff5d 100644 --- a/mysql-test/suite/binlog/r/binlog_innodb_row.result +++ b/mysql-test/suite/binlog/r/binlog_innodb_row.result @@ -10,6 +10,7 @@ commit; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1),(2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -25,6 +26,7 @@ commit; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1),(2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -43,6 +45,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 ( c1 int , primary key (c1)) ENGINE=InnoDB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1), (2), (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/binlog/r/binlog_mdev342.result b/mysql-test/suite/binlog/r/binlog_mdev342.result index 9dd806a3c8c..7513e855497 100644 --- a/mysql-test/suite/binlog/r/binlog_mdev342.result +++ b/mysql-test/suite/binlog/r/binlog_mdev342.result @@ -32,6 +32,7 @@ master-bin.000001 # Binlog_checkpoint # # master-bin.000001 master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1, REPEAT("x", 4100)) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/binlog/r/binlog_mixed_load_data.result b/mysql-test/suite/binlog/r/binlog_mixed_load_data.result index c66839bf3f3..5bf1e9ec847 100644 --- a/mysql-test/suite/binlog/r/binlog_mixed_load_data.result +++ b/mysql-test/suite/binlog/r/binlog_mixed_load_data.result @@ -4,6 +4,7 @@ LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result index 4255d17fda7..c8385e4acd8 100644 --- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result @@ -377,6 +377,9 @@ CREATE TABLE t1 (c01 BIT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -394,6 +397,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -427,6 +433,9 @@ CREATE TABLE t1 (c01 BIT(7)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -444,6 +453,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (2) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -461,6 +473,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (4) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -478,6 +493,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (8) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -495,6 +513,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (16) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -512,6 +533,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (32) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -529,6 +553,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (64) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -546,6 +573,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (127) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -563,6 +593,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c01=127 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -580,6 +613,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c01=15 WHERE c01=16 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -615,6 +651,9 @@ CREATE TABLE t1 (a BIT(20), b CHAR(2)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (b'00010010010010001001', 'ab') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -649,6 +688,9 @@ CREATE TABLE t1 (c02 BIT(64)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -666,6 +708,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (2) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -683,6 +728,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (128) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -700,6 +748,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (b'1111111111111111111111111111111111111111111111111111111111111111') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -733,6 +784,9 @@ CREATE TABLE t1 (c03 TINYINT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1),(2),(3) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -756,6 +810,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (-128) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -773,6 +830,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c03=2 WHERE c03=1 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -792,6 +852,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c03=-128 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -825,6 +888,9 @@ CREATE TABLE t1 (c04 TINYINT UNSIGNED) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (128), (255) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -845,6 +911,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c04=255 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -878,6 +947,9 @@ CREATE TABLE t1 (c06 BOOL) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (TRUE) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -895,6 +967,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c06=TRUE #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -928,6 +1003,9 @@ CREATE TABLE t1 (c07 SMALLINT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1234) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -945,6 +1023,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c07=1234 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -978,6 +1059,9 @@ CREATE TABLE t1 (c08 SMALLINT UNSIGNED) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (32768), (65535) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -998,6 +1082,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c08=2 WHERE c08=32768 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -1017,6 +1104,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c08=65535 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1050,6 +1140,9 @@ CREATE TABLE t1 (c10 MEDIUMINT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (12345) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1067,6 +1160,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c10=12345 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1100,6 +1196,9 @@ CREATE TABLE t1 (c11 MEDIUMINT UNSIGNED) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (8388608), (16777215) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1120,6 +1219,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c11=2 WHERE c11=8388608 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -1139,6 +1241,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c11=16777215 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1172,6 +1277,9 @@ CREATE TABLE t1 (c13 INT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (123456) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1189,6 +1297,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c13=123456 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1222,6 +1333,9 @@ CREATE TABLE t1 (c14 INT UNSIGNED) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (2147483648), (4294967295) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1242,6 +1356,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c14=2 WHERE c14=2147483648 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -1261,6 +1378,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c14=4294967295 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1294,6 +1414,9 @@ CREATE TABLE t1 (c16 BIGINT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1234567890) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1311,6 +1434,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c16=1234567890 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1344,6 +1470,9 @@ CREATE TABLE t1 (c17 BIGINT UNSIGNED) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (9223372036854775808), (18446744073709551615) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1364,6 +1493,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c17=2 WHERE c17=9223372036854775808 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -1383,6 +1515,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c17=18446744073709551615 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1416,6 +1551,9 @@ CREATE TABLE t1 (c19 FLOAT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (123.2234) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1433,6 +1571,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c19>123 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1466,6 +1607,9 @@ CREATE TABLE t1 (c22 DOUBLE) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (123434.22344545) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1483,6 +1627,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c22>123434 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1516,6 +1663,9 @@ CREATE TABLE t1 (c25 DECIMAL(10,5)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (124.45) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1533,6 +1683,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (-543.21) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1550,6 +1703,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c25=124.45 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1583,6 +1739,9 @@ CREATE TABLE t1 (c28 DATE) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('2001-02-03') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1600,6 +1759,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c28='2001-02-03' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1633,6 +1795,9 @@ CREATE TABLE t1 (c29 DATETIME) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('2001-02-03 10:20:30') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1650,6 +1815,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c29='2001-02-03 10:20:30' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1683,6 +1851,9 @@ CREATE TABLE t1 (c30 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURR BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('2001-02-03 10:20:30') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1701,6 +1872,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c30='2001-02-03 10:20:30' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1734,6 +1908,9 @@ CREATE TABLE t1 (c31 TIME) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('11:22:33') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1751,6 +1928,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c31='11:22:33' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1784,6 +1964,9 @@ CREATE TABLE t1 (c32 YEAR) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('2001') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1801,6 +1984,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c32=2001 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1834,6 +2020,9 @@ CREATE TABLE t1 (c33 CHAR) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1851,6 +2040,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c33='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1884,6 +2076,9 @@ CREATE TABLE t1 (c34 CHAR(0)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1901,6 +2096,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c34='' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1934,6 +2132,9 @@ CREATE TABLE t1 (c35 CHAR(1)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('b') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -1951,6 +2152,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c35='b' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -1984,6 +2188,9 @@ CREATE TABLE t1 (c36 CHAR(255)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('c',255)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2001,6 +2208,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c36>'c' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2034,6 +2244,9 @@ CREATE TABLE t1 (c37 NATIONAL CHAR) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2051,6 +2264,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c37='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2084,6 +2300,9 @@ CREATE TABLE t1 (c38 NATIONAL CHAR(0)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2101,6 +2320,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c38='' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2134,6 +2356,9 @@ CREATE TABLE t1 (c39 NATIONAL CHAR(1)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2151,6 +2376,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c39='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2184,6 +2412,9 @@ CREATE TABLE t1 (c40 NATIONAL CHAR(255)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a', 255)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2201,6 +2432,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2218,6 +2452,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c40>'a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2254,6 +2491,9 @@ CREATE TABLE t1 (c41 CHAR CHARACTER SET UCS2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2271,6 +2511,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c41='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2304,6 +2547,9 @@ CREATE TABLE t1 (c42 CHAR(0) CHARACTER SET UCS2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2321,6 +2567,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c42='' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2354,6 +2603,9 @@ CREATE TABLE t1 (c43 CHAR(1) CHARACTER SET UCS2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2371,6 +2623,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c43='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2404,6 +2659,9 @@ CREATE TABLE t1 (c44 CHAR(255) CHARACTER SET UCS2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a', 255)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2421,6 +2679,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2438,10 +2699,11 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c44>'a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # -# at # -#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F ### DELETE FROM `test`.`t1` ### WHERE @@ -2476,6 +2738,9 @@ CREATE TABLE t1 (c45 VARCHAR(0)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2493,6 +2758,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c45='' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2526,6 +2794,9 @@ CREATE TABLE t1 (c46 VARCHAR(1)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2543,6 +2814,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c46='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2576,6 +2850,9 @@ CREATE TABLE t1 (c47 VARCHAR(255)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a',255)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2593,6 +2870,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c47>'a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2626,6 +2906,9 @@ CREATE TABLE t1 (c48 VARCHAR(261)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a',261)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2643,6 +2926,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c48>'a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2676,6 +2962,9 @@ CREATE TABLE t1 (c49 NATIONAL VARCHAR(0)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2693,6 +2982,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c49='' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2726,6 +3018,9 @@ CREATE TABLE t1 (c50 NATIONAL VARCHAR(1)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2743,6 +3038,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c50='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2776,6 +3074,9 @@ CREATE TABLE t1 (c51 NATIONAL VARCHAR(255)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a',255)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2793,6 +3094,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2810,6 +3114,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c51>'a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2846,6 +3153,9 @@ CREATE TABLE t1 (c52 NATIONAL VARCHAR(261)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a',261)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2863,6 +3173,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 261)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2880,6 +3193,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c52>'a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2916,6 +3232,9 @@ CREATE TABLE t1 (c53 VARCHAR(0) CHARACTER SET ucs2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2933,6 +3252,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c53='' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -2966,6 +3288,9 @@ CREATE TABLE t1 (c54 VARCHAR(1) CHARACTER SET ucs2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2983,6 +3308,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c54='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3016,6 +3344,9 @@ CREATE TABLE t1 (c55 VARCHAR(255) CHARACTER SET ucs2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('ab', 127)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3033,6 +3364,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c55>'a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3066,6 +3400,9 @@ CREATE TABLE t1 (c56 VARCHAR(261) CHARACTER SET ucs2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('ab', 130)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3083,6 +3420,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c56>'a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3116,6 +3456,9 @@ CREATE TABLE t1 (c57 BINARY) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3133,6 +3476,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3150,6 +3496,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3167,6 +3516,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c57='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3200,6 +3552,9 @@ CREATE TABLE t1 (c58 BINARY(0)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3217,6 +3572,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c58='' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3250,6 +3608,9 @@ CREATE TABLE t1 (c59 BINARY(1)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3267,6 +3628,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3284,6 +3648,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3301,6 +3668,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c59='a' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3334,6 +3704,9 @@ CREATE TABLE t1 (c60 BINARY(255)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3351,6 +3724,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3368,6 +3744,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a\0',120)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3385,6 +3764,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c60<0x02 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3418,6 +3800,9 @@ CREATE TABLE t1 (c61 VARBINARY(0)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3435,6 +3820,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c61='' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3468,6 +3856,9 @@ CREATE TABLE t1 (c62 VARBINARY(1)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3485,6 +3876,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3502,6 +3896,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3519,6 +3916,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c62=0x02 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3552,6 +3952,9 @@ CREATE TABLE t1 (c63 VARBINARY(255)) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3569,6 +3972,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3586,6 +3992,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a\0',120)) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3603,6 +4012,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c63=0x02 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3636,6 +4048,9 @@ CREATE TABLE t1 (c65 TINYBLOB) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('tinyblob1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3653,6 +4068,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c65='tinyblob1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3686,6 +4104,9 @@ CREATE TABLE t1 (c68 BLOB) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('blob1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3703,6 +4124,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c68='blob1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3736,6 +4160,9 @@ CREATE TABLE t1 (c71 MEDIUMBLOB) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('mediumblob1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3753,6 +4180,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c71='mediumblob1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3786,6 +4216,9 @@ CREATE TABLE t1 (c74 LONGBLOB) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('longblob1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3803,6 +4236,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c74='longblob1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3836,6 +4272,9 @@ CREATE TABLE t1 (c66 TINYTEXT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('tinytext1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3853,6 +4292,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c66='tinytext1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3886,6 +4328,9 @@ CREATE TABLE t1 (c69 TEXT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('text1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3903,6 +4348,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c69='text1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3936,6 +4384,9 @@ CREATE TABLE t1 (c72 MEDIUMTEXT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('mediumtext1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3953,6 +4404,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c72='mediumtext1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3986,6 +4440,9 @@ CREATE TABLE t1 (c75 LONGTEXT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('longtext1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4003,6 +4460,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c75='longtext1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -4036,6 +4496,9 @@ CREATE TABLE t1 (c67 TINYTEXT CHARACTER SET UCS2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('tinytext1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4053,6 +4516,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c67='tinytext1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -4086,6 +4552,9 @@ CREATE TABLE t1 (c70 TEXT CHARACTER SET UCS2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('text1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4103,6 +4572,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c70='text1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -4136,6 +4608,9 @@ CREATE TABLE t1 (c73 MEDIUMTEXT CHARACTER SET UCS2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('mediumtext1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4153,6 +4628,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c73='mediumtext1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -4186,6 +4664,9 @@ CREATE TABLE t1 (c76 LONGTEXT CHARACTER SET UCS2) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('longtext1') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4203,6 +4684,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c76='longtext1' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -4236,6 +4720,9 @@ CREATE TABLE t1 (c77 ENUM('a','b','c')) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('b') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4253,6 +4740,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c77='b' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -4286,6 +4776,9 @@ CREATE TABLE t1 (c78 SET('a','b','c','d','e','f')) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4303,6 +4796,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,c') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4320,6 +4816,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('b,c') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4337,6 +4836,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b,c') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4354,6 +4856,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b,c,d') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4371,6 +4876,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b,c,d,e') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4388,6 +4896,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b,c,d,e,f') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4405,6 +4916,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c78='a,b' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -4446,6 +4960,9 @@ CREATE TABLE t2 (a int NOT NULL DEFAULT 0, b int NOT NULL DEFAULT 0) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 SET a=1 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4464,6 +4981,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 SET b=1 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4482,6 +5002,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 SET a=1 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4500,6 +5023,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 SET b=1 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4518,6 +5044,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1, t2 SET t1.a=10, t2.a=20 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # @@ -4572,6 +5101,9 @@ DROP TABLE `t1`,`t2` /* generated by server */ BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1dec102 VALUES (-999.99) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1dec102` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4588,6 +5120,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1dec102 VALUES (0) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1dec102` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4604,6 +5139,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1dec102 VALUES (999.99) #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1dec102` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result index 8320a4655dd..365fcff2a72 100644 --- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result @@ -2371,6 +2371,94 @@ crn INT -- row number BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> b'0', -- c01 +#Q> b'0000000000000000000000000000000000000000000000000000000000000000', -- c02 +#Q> -128, -- c03 +#Q> 0, -- c04 +#Q> 000, -- c05 +#Q> false, -- c06 +#Q> -32768, -- c07 +#Q> 0, -- c08 +#Q> 00000, -- c09 +#Q> -8388608, -- c10 +#Q> 0, -- c11 +#Q> 00000000, -- c12 +#Q> -2147483648, -- c13 +#Q> 0, -- c14 +#Q> 0000000000, -- c15 +#Q> -9223372036854775808, -- c16 +#Q> 0, -- c17 +#Q> 00000000000000000000, -- c18 +#Q> -3.402823466E+38, -- c19 +#Q> 1.175494351E-38, -- c20 +#Q> 000000000000, -- c21 +#Q> -1.7976931348623E+308, -- c22 three digits cut for ps-protocol +#Q> 2.2250738585072E-308, -- c23 three digits cut for ps-protocol +#Q> 0000000000000000000000, -- c24 +#Q> -9999999999, -- c25 +#Q> 0, -- c26 +#Q> 0000000000, -- c27 +#Q> # +#Q> '1000-01-01', -- c28 +#Q> '1000-01-01 00:00:00', -- c29 +#Q> '1970-01-02 00:00:01', -- c30 one day later due to timezone issues +#Q> '-838:59:59', -- c31 +#Q> '1901', -- c32 +#Q> # +#Q> '', -- c33 +#Q> '', -- c34 +#Q> '', -- c35 +#Q> '', -- c36 +#Q> '', -- c37 +#Q> '', -- c38 +#Q> '', -- c39 +#Q> '', -- c40 +#Q> '', -- c41 +#Q> '', -- c42 +#Q> '', -- c43 +#Q> '', -- c44 +#Q> # +#Q> '', -- c45 +#Q> '', -- c46 +#Q> '', -- c47 +#Q> '', -- c48 +#Q> '', -- c49 +#Q> '', -- c50 +#Q> '', -- c51 +#Q> '', -- c52 +#Q> '', -- c53 +#Q> '', -- c54 +#Q> '', -- c55 +#Q> '', -- c56 +#Q> # +#Q> '', -- c57 +#Q> '', -- c58 +#Q> '', -- c59 +#Q> '', -- c60 +#Q> # +#Q> '', -- c61 +#Q> '', -- c62 +#Q> '', -- c63 +#Q> '', -- c64 +#Q> # +#Q> '', -- c65 +#Q> '', -- c66 +#Q> '', -- c67 +#Q> '', -- c68 +#Q> '', -- c69 +#Q> '', -- c70 +#Q> '', -- c71 +#Q> '', -- c72 +#Q> '', -- c73 +#Q> '', -- c74 +#Q> '', -- c75 +#Q> '', -- c76 +#Q> # +#Q> 'a', -- c77 +#Q> '', #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2464,6 +2552,94 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> b'1', -- c01 +#Q> b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +#Q> 127, -- c03 +#Q> 255, -- c04 +#Q> 255, -- c05 +#Q> true, -- c06 +#Q> 32767, -- c07 +#Q> 65535, -- c08 +#Q> 65535, -- c09 +#Q> 8388607, -- c10 +#Q> 16777215, -- c11 +#Q> 16777215, -- c12 +#Q> 2147483647, -- c13 +#Q> 4294967295, -- c14 +#Q> 4294967295, -- c15 +#Q> 9223372036854775807, -- c16 +#Q> 18446744073709551615, -- c17 +#Q> 18446744073709551615, -- c18 +#Q> 3.402823466E+38, -- c19 +#Q> 3.402823466E+38, -- c20 +#Q> 3.402823466E+38, -- c21 +#Q> 1.7976931348623E+308, -- c22 three digits cut for ps-protocol +#Q> 1.7976931348623E+308, -- c23 three digits cut for ps-protocol +#Q> 1.7976931348623E+308, -- c24 three digits cut for ps-protocol +#Q> 9999999999, -- c25 +#Q> 9999999999, -- c26 +#Q> 9999999999, -- c27 +#Q> # +#Q> '9999-12-31', -- c28 +#Q> '9999-12-31 23:59:59', -- c29 +#Q> '2038-01-08 03:14:07', -- c30 one day earlier due to timezone issues +#Q> '838:59:59', -- c31 +#Q> '2155', -- c32 +#Q> # +#Q> x'ff', -- c33 +#Q> '', -- c34 +#Q> x'ff', -- c35 +#Q> REPEAT(x'ff',255), -- c36 +#Q> _utf8 x'efbfbf', -- c37 +#Q> '', -- c38 +#Q> _utf8 x'efbfbf', -- c39 +#Q> REPEAT(_utf8 x'efbfbf',255), -- c40 +#Q> _ucs2 x'ffff', -- c41 +#Q> '', -- c42 +#Q> _ucs2 x'ffff', -- c43 +#Q> REPEAT(_ucs2 x'ffff',255), -- c44 +#Q> # +#Q> '', -- c45 +#Q> x'ff', -- c46 +#Q> REPEAT(x'ff',255), -- c47 +#Q> REPEAT(x'ff',261), -- c48 +#Q> '', -- c49 +#Q> _utf8 x'efbfbf', -- c50 +#Q> REPEAT(_utf8 x'efbfbf',255), -- c51 +#Q> REPEAT(_utf8 x'efbfbf',261), -- c52 +#Q> '', -- c53 +#Q> _ucs2 x'ffff', -- c54 +#Q> REPEAT(_ucs2 x'ffff',255), -- c55 +#Q> REPEAT(_ucs2 x'ffff',261), -- c56 +#Q> # +#Q> x'ff', -- c57 +#Q> '', -- c58 +#Q> x'ff', -- c59 +#Q> REPEAT(x'ff',255), -- c60 +#Q> # +#Q> '', -- c61 +#Q> x'ff', -- c62 +#Q> REPEAT(x'ff',255), -- c63 +#Q> REPEAT(x'ff',261), -- c64 +#Q> # +#Q> 'tinyblob', -- c65 not using maximum value here +#Q> 'tinytext', -- c66 not using maximum value here +#Q> 'tinytext-ucs2', -- c67 not using maximum value here +#Q> 'blob', -- c68 not using maximum value here +#Q> 'text', -- c69 not using maximum value here +#Q> 'text-ucs2', -- c70 not using maximum value here +#Q> 'mediumblob', -- c71 not using maximum value here +#Q> 'mediumtext', -- c72 not using maximum value here +#Q> 'mediumtext-ucs2', -- c73 not using maximum value here +#Q> 'longblob', -- c74 not using maximum value here +#Q> 'longtext', -- c75 not using maximum value here +#Q> 'longtext-ucs2', -- c76 not using maximum value here +#Q> # +#Q> 'c', -- c77 +#Q> 'a,b,c #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2557,10 +2733,181 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> NULL, -- c01 +#Q> NULL, -- c02 +#Q> NULL, -- c03 +#Q> NULL, -- c04 +#Q> NULL, -- c05 +#Q> NULL, -- c06 +#Q> NULL, -- c07 +#Q> NULL, -- c08 +#Q> NULL, -- c09 +#Q> NULL, -- c10 +#Q> NULL, -- c11 +#Q> NULL, -- c12 +#Q> NULL, -- c13 +#Q> NULL, -- c14 +#Q> NULL, -- c15 +#Q> NULL, -- c16 +#Q> NULL, -- c17 +#Q> NULL, -- c18 +#Q> NULL, -- c19 +#Q> NULL, -- c20 +#Q> NULL, -- c21 +#Q> NULL, -- c22 +#Q> NULL, -- c23 +#Q> NULL, -- c24 +#Q> NULL, -- c25 +#Q> NULL, -- c26 +#Q> NULL, -- c27 +#Q> # +#Q> NULL, -- c28 +#Q> NULL, -- c29 +#Q> NULL, -- c30 +#Q> NULL, -- c31 +#Q> NULL, -- c32 +#Q> # +#Q> NULL, -- c33 +#Q> NULL, -- c34 +#Q> NULL, -- c35 +#Q> NULL, -- c36 +#Q> NULL, -- c37 +#Q> NULL, -- c38 +#Q> NULL, -- c39 +#Q> NULL, -- c40 +#Q> NULL, -- c41 +#Q> NULL, -- c42 +#Q> NULL, -- c43 +#Q> NULL, -- c44 +#Q> # +#Q> NULL, -- c45 +#Q> NULL, -- c46 +#Q> NULL, -- c47 +#Q> NULL, -- c48 +#Q> NULL, -- c49 +#Q> NULL, -- c50 +#Q> NULL, -- c51 +#Q> NULL, -- c52 +#Q> NULL, -- c53 +#Q> NULL, -- c54 +#Q> NULL, -- c55 +#Q> NULL, -- c56 +#Q> # +#Q> NULL, -- c57 +#Q> NULL, -- c58 +#Q> NULL, -- c59 +#Q> NULL, -- c60 +#Q> # +#Q> NULL, -- c61 +#Q> NULL, -- c62 +#Q> NULL, -- c63 +#Q> NULL, -- c64 +#Q> # +#Q> NULL, -- c65 +#Q> NULL, -- c66 +#Q> NULL, -- c67 +#Q> NULL, -- c68 +#Q> NULL, -- c69 +#Q> NULL, -- c70 +#Q> NULL, -- c71 +#Q> NULL, -- c72 +#Q> NULL, -- c73 +#Q> NULL, -- c74 +#Q> NULL, -- c75 +#Q> NULL, -- c76 +#Q> # +#Q> NULL, -- c77 +#Q> NULL, -- c78 +#Q> # +#Q> 3 -- crn -- row number +#Q> ), ( +#Q> b'1', -- c01 +#Q> b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +#Q> 127, -- c03 +#Q> 0, -- c04 +#Q> 001, -- c05 +#Q> true, -- c06 +#Q> 32767, -- c07 +#Q> 0, -- c08 +#Q> 00001, -- c09 +#Q> 8388607, -- c10 +#Q> 0, -- c11 +#Q> 00000001, -- c12 +#Q> 2147483647, -- c13 +#Q> 0, -- c14 +#Q> 0000000001, -- c15 +#Q> 9223372036854775807, -- c16 +#Q> 0, -- c17 +#Q> 00000000000000000001, -- c18 +#Q> -1.175494351E-38, -- c19 +#Q> 1.175494351E-38, -- c20 +#Q> 000000000000001, -- c21 +#Q> -2.2250738585072E-308, -- c22 +#Q> 2.2250738585072E-308, -- c23 +#Q> 00000000000000000000001, -- c24 +#Q> -9999999999, -- c25 +#Q> 9999999999, -- c26 +#Q> 0000000001, -- c27 +#Q> # +#Q> '2008-08-04', -- c28 +#Q> '2008-08-04 16:18:06', -- c29 +#Q> '2008-08-04 16:18:24', -- c30 +#Q> '16:18:47', -- c31 +#Q> '2008', -- c32 +#Q> # +#Q> 'a', -- c33 +#Q> '', -- c34 +#Q> 'e', -- c35 +#Q> REPEAT('i',255), -- c36 +#Q> _utf8 x'c3a4', -- c37 +#Q> '', -- c38 +#Q> _utf8 x'c3b6', -- c39 +#Q> REPEAT(_utf8 x'c3bc',255), -- c40 +#Q> _ucs2 x'00e4', -- c41 +#Q> '', -- c42 +#Q> _ucs2 x'00f6', -- c43 +#Q> REPEAT(_ucs2 x'00fc',255), -- c44 +#Q> # +#Q> '', -- c45 +#Q> 'a', -- c46 +#Q> REPEAT('e',255), -- c47 +#Q> REPEAT('i',261), -- c48 +#Q> '', -- c49 +#Q> _utf8 x'c3a4', -- c50 +#Q> REPEAT(_utf8 x'c3b6',255), -- c51 +#Q> REPEAT(_utf8 x'c3bc',261), -- c52 +#Q> '', -- c53 +#Q> _ucs2 x'00e4', -- c54 +#Q> REPEAT(_ucs2 x'00f6',255), -- c55 +#Q> REPEAT(_ucs2 x'00fc',261), -- c56 +#Q> # +#Q> '0', -- c57 +#Q> '', -- c58 +#Q> '1', -- c59 +#Q> REPEAT('1',255), -- c60 +#Q> # +#Q> '', -- c61 +#Q> 'b', -- c62 +#Q> REPEAT('c',255), -- c63 +#Q> REPEAT('\'',261), -- c64 +#Q> # +#Q> 'tinyblob', -- c65 +#Q> 'tinytext', -- c66 +#Q> 'tinytext-ucs2', -- c67 +#Q> 'blob', -- c68 +#Q> 'text', -- c69 +#Q> 'text-ucs2', -- c70 +#Q> 'mediumblob', -- c71 +#Q> 'mediumtext', -- c72 +#Q> 'mediumtext-ucs2', -- c73 +#Q> 'longblob', -- c74 +#Q> 'longtext', -- c75 +#Q> 'longtext #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # -# at # -#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET @@ -2733,6 +3080,172 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'1', +#Q> c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +#Q> c03 = 127, +#Q> c04 = 255, +#Q> c05 = 255, +#Q> c06 = true, +#Q> c07 = 32767, +#Q> c08 = 65535, +#Q> c09 = 65535, +#Q> c10 = 8388607, +#Q> c11 = 16777215, +#Q> c12 = 16777215, +#Q> c13 = 2147483647, +#Q> c14 = 4294967295, +#Q> c15 = 4294967295, +#Q> c16 = 9223372036854775807, +#Q> c17 = 18446744073709551615, +#Q> c18 = 18446744073709551615, +#Q> c19 = 3.402823466E+38, +#Q> c20 = 3.402823466E+38, +#Q> c21 = 3.402823466E+38, +#Q> c22 = 1.7976931348623E+308, +#Q> c23 = 1.7976931348623E+308, +#Q> c24 = 1.7976931348623E+308, +#Q> c25 = 9999999999, +#Q> c26 = 9999999999, +#Q> c27 = 9999999999, +#Q> # +#Q> c28 = '9999-12-31', +#Q> c29 = '9999-12-31 23:59:59', +#Q> c30 = '2038-01-08 03:14:07', +#Q> c31 = '838:59:59', +#Q> c32 = '2155', +#Q> # +#Q> c33 = x'ff', +#Q> c34 = '', +#Q> c35 = x'ff', +#Q> c36 = REPEAT(x'ff',255), +#Q> c37 = _utf8 x'efbfbf', +#Q> c38 = '', +#Q> c39 = _utf8 x'efbfbf', +#Q> c40 = REPEAT(_utf8 x'efbfbf',255), +#Q> c41 = _ucs2 x'ffff', +#Q> c42 = '', +#Q> c43 = _ucs2 x'ffff', +#Q> c44 = REPEAT(_ucs2 x'ffff',255), +#Q> # +#Q> c45 = '', +#Q> c46 = x'ff', +#Q> c47 = REPEAT(x'ff',255), +#Q> c48 = REPEAT(x'ff',261), +#Q> c49 = '', +#Q> c50 = _utf8 x'efbfbf', +#Q> c51 = REPEAT(_utf8 x'efbfbf',255), +#Q> c52 = REPEAT(_utf8 x'efbfbf',261), +#Q> c53 = '', +#Q> c54 = _ucs2 x'ffff', +#Q> c55 = REPEAT(_ucs2 x'ffff',255), +#Q> c56 = REPEAT(_ucs2 x'ffff',261), +#Q> # +#Q> c57 = x'ff', +#Q> c58 = '', +#Q> c59 = x'ff', +#Q> c60 = REPEAT(x'ff',255), +#Q> # +#Q> c61 = '', +#Q> c62 = x'ff', +#Q> c63 = REPEAT(x'ff',255), +#Q> c64 = REPEAT(x'ff',261), +#Q> # +#Q> c65 = 'tinyblob', +#Q> c66 = 'tinytext', +#Q> c67 = 'tinytext-ucs2', +#Q> c68 = 'blob', +#Q> c69 = 'text', +#Q> c70 = 'text-ucs2', +#Q> c71 = 'mediumblob', +#Q> c72 = 'mediumtext', +#Q> c73 = 'mediumtext-ucs2', +#Q> c74 = 'longblob', +#Q> c75 = 'longtext', +#Q> c76 = 'longtext-ucs2', +#Q> # +#Q> c77 = 'c', +#Q> c78 = 'a,b,c', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'0' AND +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +#Q> c03 = -128 AND +#Q> c04 = 0 AND +#Q> c05 = 000 AND +#Q> c06 = false AND +#Q> c07 = -32768 AND +#Q> c08 = 0 AND +#Q> c09 = 00000 AND +#Q> c10 = -8388608 AND +#Q> c11 = 0 AND +#Q> c12 = 00000000 AND +#Q> c13 = -2147483648 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000000 AND +#Q> c16 = -9223372036854775808 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000000 AND +#Q> c19 < -3.402823465E+38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000 AND +#Q> c22 < -1.7976931348622E+308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 0000000000000000000000 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 0 AND +#Q> c27 = 0000000000 AND +#Q> # +#Q> c28 = '1000-01-01' AND +#Q> c29 = '1000-01-01 00:00:00' AND +#Q> c30 = '1970-01-02 00:00:01' AND +#Q> c31 = '-838:59:59' AND +#Q> c32 = '1901' AND +#Q> # +#Q> c33 = '' AND +#Q> c34 = '' AND +#Q> c35 = '' AND +#Q> c36 = '' AND +#Q> c37 = '' AND +#Q> c38 = '' AND +#Q> c39 = '' AND +#Q> c40 = '' AND +#Q> c41 = '' AND +#Q> c42 = '' AND +#Q> c43 = '' AND +#Q> c44 = '' AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = '' AND +#Q> c47 = '' AND +#Q> c48 = '' AND +#Q> c49 = '' AND +#Q> c50 = '' AND +#Q> c51 = '' AND +#Q> c52 = '' AND +#Q> c53 = '' AND +#Q> c54 = '' AND +#Q> c55 = '' AND +#Q> c56 = '' AND +#Q> # +#Q> # this does not reproduce the inserted value: c57 = '' AND +#Q> c58 = '' AND +#Q> # this does not reproduce the inserted value: c59 = '' AND +#Q> # this does not reproduce the inserted value: c60 = '' AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = '' AND +#Q> c63 = '' AND +#Q> c64 = '' AND +#Q> # +#Q> c65 = '' AND +#Q> c66 = '' AND +#Q> c67 = #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -2906,6 +3419,177 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'0', +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000', +#Q> c03 = -128, +#Q> c04 = 0, +#Q> c05 = 000, +#Q> c06 = false, +#Q> c07 = -32768, +#Q> c08 = 0, +#Q> c09 = 00000, +#Q> c10 = -8388608, +#Q> c11 = 0, +#Q> c12 = 00000000, +#Q> c13 = -2147483648, +#Q> c14 = 0, +#Q> c15 = 0000000000, +#Q> c16 = -9223372036854775808, +#Q> c17 = 0, +#Q> c18 = 00000000000000000000, +#Q> c19 = -3.402823466E+38, +#Q> c20 = 1.175494351E-38, +#Q> c21 = 000000000000, +#Q> c22 = -1.7976931348623E+308, +#Q> c23 = 2.2250738585072E-308, +#Q> c24 = 0000000000000000000000, +#Q> c25 = -9999999999, +#Q> c26 = 0, +#Q> c27 = 0000000000, +#Q> # +#Q> c28 = '1000-01-01', +#Q> c29 = '1000-01-01 00:00:00', +#Q> c30 = '1970-01-02 00:00:01', +#Q> c31 = '-838:59:59', +#Q> c32 = '1901', +#Q> # +#Q> c33 = '', +#Q> c34 = '', +#Q> c35 = '', +#Q> c36 = '', +#Q> c37 = '', +#Q> c38 = '', +#Q> c39 = '', +#Q> c40 = '', +#Q> c41 = '', +#Q> c42 = '', +#Q> c43 = '', +#Q> c44 = '', +#Q> # +#Q> c45 = '', +#Q> c46 = '', +#Q> c47 = '', +#Q> c48 = '', +#Q> c49 = '', +#Q> c50 = '', +#Q> c51 = '', +#Q> c52 = '', +#Q> c53 = '', +#Q> c54 = '', +#Q> c55 = '', +#Q> c56 = '', +#Q> # +#Q> c57 = '', +#Q> c58 = '', +#Q> c59 = '', +#Q> c60 = '', +#Q> # +#Q> c61 = '', +#Q> c62 = '', +#Q> c63 = '', +#Q> c64 = '', +#Q> # +#Q> c65 = '', +#Q> c66 = '', +#Q> c67 = '', +#Q> c68 = '', +#Q> c69 = '', +#Q> c70 = '', +#Q> c71 = '', +#Q> c72 = '', +#Q> c73 = '', +#Q> c74 = '', +#Q> c75 = '', +#Q> c76 = '', +#Q> # +#Q> c77 = 'a', +#Q> c78 = '', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 255 AND +#Q> c05 = 255 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 65535 AND +#Q> c09 = 65535 AND +#Q> c10 = 8388607 AND +#Q> c11 = 16777215 AND +#Q> c12 = 16777215 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 4294967295 AND +#Q> c15 = 4294967295 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 18446744073709551615 AND +#Q> c18 = 18446744073709551615 AND +#Q> c19 > 3.402823465E+38 AND +#Q> c20 > 3.402823465E+38 AND +#Q> c21 > 3.402823465E+38 AND +#Q> c22 > 1.7976931348622E+308 AND +#Q> c23 > 1.7976931348622E+308 AND +#Q> c24 > 1.7976931348622E+308 AND +#Q> c25 = 9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 9999999999 AND +#Q> # +#Q> c28 = '9999-12-31' AND +#Q> c29 = '9999-12-31 23:59:59' AND +#Q> c30 = '2038-01-08 03:14:07' AND +#Q> c31 = '838:59:59' AND +#Q> c32 = '2155' AND +#Q> # +#Q> c33 = x'ff' AND +#Q> c34 = '' AND +#Q> c35 = x'ff' AND +#Q> c36 = REPEAT(x'ff',255) AND +#Q> c37 = _utf8 x'efbfbf' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'efbfbf' AND +#Q> c40 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c41 = _ucs2 x'ffff' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'ffff' AND +#Q> c44 = REPEAT(_ucs2 x'ffff',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = x'ff' AND +#Q> c47 = REPEAT(x'ff',255) AND +#Q> c48 = REPEAT(x'ff',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'efbfbf' AND +#Q> c51 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c52 = REPEAT(_utf8 x'efbfbf',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'ffff' AND +#Q> c55 = REPEAT(_ucs2 x'ffff',255) AND +#Q> c56 = REPEAT(_ucs2 x'ffff',261) AND +#Q> # +#Q> c57 = x'ff' AND +#Q> c58 = '' AND +#Q> c59 = x'ff' AND +#Q> c60 = REPEAT(x'ff',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = x'ff' AND +#Q> c63 = REPEAT(x'ff',255) AND +#Q> c64 = REPEAT(x'ff',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -3079,6 +3763,175 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'1', +#Q> c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +#Q> c03 = 127, +#Q> c04 = 0, +#Q> c05 = 001, +#Q> c06 = true, +#Q> c07 = 32767, +#Q> c08 = 0, +#Q> c09 = 00001, +#Q> c10 = 8388607, +#Q> c11 = 0, +#Q> c12 = 00000001, +#Q> c13 = 2147483647, +#Q> c14 = 0, +#Q> c15 = 0000000001, +#Q> c16 = 9223372036854775807, +#Q> c17 = 0, +#Q> c18 = 00000000000000000001, +#Q> c19 = -1.175494351E-38, +#Q> c20 = 1.175494351E-38, +#Q> c21 = 000000000000001, +#Q> c22 = -2.2250738585072E-308, +#Q> c23 = 2.2250738585072E-308, +#Q> c24 = 00000000000000000000001, +#Q> c25 = -9999999999, +#Q> c26 = 9999999999, +#Q> c27 = 0000000001, +#Q> # +#Q> c28 = '2008-08-04', +#Q> c29 = '2008-08-04 16:18:06', +#Q> c30 = '2008-08-04 16:18:24', +#Q> c31 = '16:18:47', +#Q> c32 = '2008', +#Q> # +#Q> c33 = 'a', +#Q> c34 = '', +#Q> c35 = 'e', +#Q> c36 = REPEAT('i',255), +#Q> c37 = _utf8 x'c3a4', +#Q> c38 = '', +#Q> c39 = _utf8 x'c3b6', +#Q> c40 = REPEAT(_utf8 x'c3bc',255), +#Q> c41 = _ucs2 x'00e4', +#Q> c42 = '', +#Q> c43 = _ucs2 x'00f6', +#Q> c44 = REPEAT(_ucs2 x'00fc',255), +#Q> # +#Q> c45 = '', +#Q> c46 = 'a', +#Q> c47 = REPEAT('e',255), +#Q> c48 = REPEAT('i',261), +#Q> c49 = '', +#Q> c50 = _utf8 x'c3a4', +#Q> c51 = REPEAT(_utf8 x'c3b6',255), +#Q> c52 = REPEAT(_utf8 x'c3bc',261), +#Q> c53 = '', +#Q> c54 = _ucs2 x'00e4', +#Q> c55 = REPEAT(_ucs2 x'00f6',255), +#Q> c56 = REPEAT(_ucs2 x'00fc',261), +#Q> # +#Q> c57 = '0', +#Q> c58 = '', +#Q> c59 = '1', +#Q> c60 = REPEAT('1',255), +#Q> # +#Q> c61 = '', +#Q> c62 = 'b', +#Q> c63 = REPEAT('c',255), +#Q> c64 = REPEAT('\'',261), +#Q> # +#Q> c65 = 'tinyblob', +#Q> c66 = 'tinytext', +#Q> c67 = 'tinytext-ucs2', +#Q> c68 = 'blob', +#Q> c69 = 'text', +#Q> c70 = 'text-ucs2', +#Q> c71 = 'mediumblob', +#Q> c72 = 'mediumtext', +#Q> c73 = 'mediumtext-ucs2', +#Q> c74 = 'longblob', +#Q> c75 = 'longtext', +#Q> c76 = 'longtext-ucs2', +#Q> # +#Q> c77 = 'b', +#Q> c78 = 'b,c', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 IS NULL AND +#Q> c02 IS NULL AND +#Q> c03 IS NULL AND +#Q> c04 IS NULL AND +#Q> c05 IS NULL AND +#Q> c06 IS NULL AND +#Q> c07 IS NULL AND +#Q> c08 IS NULL AND +#Q> c09 IS NULL AND +#Q> c10 IS NULL AND +#Q> c11 IS NULL AND +#Q> c12 IS NULL AND +#Q> c13 IS NULL AND +#Q> c14 IS NULL AND +#Q> c15 IS NULL AND +#Q> c16 IS NULL AND +#Q> c17 IS NULL AND +#Q> c18 IS NULL AND +#Q> c19 IS NULL AND +#Q> c20 IS NULL AND +#Q> c21 IS NULL AND +#Q> c22 IS NULL AND +#Q> c23 IS NULL AND +#Q> c24 IS NULL AND +#Q> c25 IS NULL AND +#Q> c26 IS NULL AND +#Q> c27 IS NULL AND +#Q> # +#Q> c28 IS NULL AND +#Q> c29 IS NULL AND +#Q> # this got a timestamp instead of NULL: c30 IS NULL AND +#Q> c31 IS NULL AND +#Q> c32 IS NULL AND +#Q> # +#Q> c33 IS NULL AND +#Q> c34 IS NULL AND +#Q> c35 IS NULL AND +#Q> c36 IS NULL AND +#Q> c37 IS NULL AND +#Q> c38 IS NULL AND +#Q> c39 IS NULL AND +#Q> c40 IS NULL AND +#Q> c41 IS NULL AND +#Q> c42 IS NULL AND +#Q> c43 IS NULL AND +#Q> c44 IS NULL AND +#Q> # +#Q> c45 IS NULL AND +#Q> c46 IS NULL AND +#Q> c47 IS NULL AND +#Q> c48 IS NULL AND +#Q> c49 IS NULL AND +#Q> c50 IS NULL AND +#Q> c51 IS NULL AND +#Q> c52 IS NULL AND +#Q> c53 IS NULL AND +#Q> c54 IS NULL AND +#Q> c55 IS NULL AND +#Q> c56 IS NULL AND +#Q> # +#Q> c57 IS NULL AND +#Q> c58 IS NULL AND +#Q> c59 IS NULL AND +#Q> c60 IS NULL AND +#Q> # +#Q> c61 IS NULL AND +#Q> c62 IS NULL AND +#Q> c63 IS NULL AND +#Q> c64 IS NULL AND +#Q> # +#Q> c65 IS NULL AND +#Q> c66 IS NULL AND +#Q> c67 IS NULL AND +#Q> c68 IS NULL AND +#Q> c69 IS NULL AND +#Q> c70 IS NULL #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -3252,6 +4105,178 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = NULL, +#Q> c02 = NULL, +#Q> c03 = NULL, +#Q> c04 = NULL, +#Q> c05 = NULL, +#Q> c06 = NULL, +#Q> c07 = NULL, +#Q> c08 = NULL, +#Q> c09 = NULL, +#Q> c10 = NULL, +#Q> c11 = NULL, +#Q> c12 = NULL, +#Q> c13 = NULL, +#Q> c14 = NULL, +#Q> c15 = NULL, +#Q> c16 = NULL, +#Q> c17 = NULL, +#Q> c18 = NULL, +#Q> c19 = NULL, +#Q> c20 = NULL, +#Q> c21 = NULL, +#Q> c22 = NULL, +#Q> c23 = NULL, +#Q> c24 = NULL, +#Q> c25 = NULL, +#Q> c26 = NULL, +#Q> c27 = NULL, +#Q> # +#Q> c28 = NULL, +#Q> c29 = NULL, +#Q> c30 = NULL, +#Q> c31 = NULL, +#Q> c32 = NULL, +#Q> # +#Q> c33 = NULL, +#Q> c34 = NULL, +#Q> c35 = NULL, +#Q> c36 = NULL, +#Q> c37 = NULL, +#Q> c38 = NULL, +#Q> c39 = NULL, +#Q> c40 = NULL, +#Q> c41 = NULL, +#Q> c42 = NULL, +#Q> c43 = NULL, +#Q> c44 = NULL, +#Q> # +#Q> c45 = NULL, +#Q> c46 = NULL, +#Q> c47 = NULL, +#Q> c48 = NULL, +#Q> c49 = NULL, +#Q> c50 = NULL, +#Q> c51 = NULL, +#Q> c52 = NULL, +#Q> c53 = NULL, +#Q> c54 = NULL, +#Q> c55 = NULL, +#Q> c56 = NULL, +#Q> # +#Q> c57 = NULL, +#Q> c58 = NULL, +#Q> c59 = NULL, +#Q> c60 = NULL, +#Q> # +#Q> c61 = NULL, +#Q> c62 = NULL, +#Q> c63 = NULL, +#Q> c64 = NULL, +#Q> # +#Q> c65 = NULL, +#Q> c66 = NULL, +#Q> c67 = NULL, +#Q> c68 = NULL, +#Q> c69 = NULL, +#Q> c70 = NULL, +#Q> c71 = NULL, +#Q> c72 = NULL, +#Q> c73 = NULL, +#Q> c74 = NULL, +#Q> c75 = NULL, +#Q> c76 = NULL, +#Q> # +#Q> c77 = NULL, +#Q> c78 = NULL, +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 0 AND +#Q> c05 = 001 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 0 AND +#Q> c09 = 00001 AND +#Q> c10 = 8388607 AND +#Q> c11 = 0 AND +#Q> c12 = 00000001 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000001 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000001 AND +#Q> c19 > -1.175494352E-38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000001 AND +#Q> c22 > -2.2250738585073E-308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 00000000000000000000001 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 0000000001 AND +#Q> # +#Q> c28 = '2008-08-04' AND +#Q> c29 = '2008-08-04 16:18:06' AND +#Q> c30 = '2008-08-04 16:18:24' AND +#Q> c31 = '16:18:47' AND +#Q> c32 = '2008' AND +#Q> # +#Q> c33 = 'a' AND +#Q> c34 = '' AND +#Q> c35 = 'e' AND +#Q> c36 = REPEAT('i',255) AND +#Q> c37 = _utf8 x'c3a4' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'c3b6' AND +#Q> c40 = REPEAT(_utf8 x'c3bc',255) AND +#Q> c41 = _ucs2 x'00e4' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'00f6' AND +#Q> c44 = REPEAT(_ucs2 x'00fc',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = 'a' AND +#Q> c47 = REPEAT('e',255) AND +#Q> c48 = REPEAT('i',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'c3a4' AND +#Q> c51 = REPEAT(_utf8 x'c3b6',255) AND +#Q> c52 = REPEAT(_utf8 x'c3bc',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'00e4' AND +#Q> c55 = REPEAT(_ucs2 x'00f6',255) AND +#Q> c56 = REPEAT(_ucs2 x'00fc',261) AND +#Q> # +#Q> c57 = '0' AND +#Q> c58 = '' AND +#Q> c59 = '1' AND +#Q> c60 = REPEAT('1',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = 'b' AND +#Q> c63 = REPEAT('c',255) AND +#Q> c64 = REPEAT('\'',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'me #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -3425,6 +4450,92 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 255 AND +#Q> c05 = 255 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 65535 AND +#Q> c09 = 65535 AND +#Q> c10 = 8388607 AND +#Q> c11 = 16777215 AND +#Q> c12 = 16777215 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 4294967295 AND +#Q> c15 = 4294967295 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 18446744073709551615 AND +#Q> c18 = 18446744073709551615 AND +#Q> c19 > 3.402823465E+38 AND +#Q> c20 > 3.402823465E+38 AND +#Q> c21 > 3.402823465E+38 AND +#Q> c22 > 1.7976931348622E+308 AND +#Q> c23 > 1.7976931348622E+308 AND +#Q> c24 > 1.7976931348622E+308 AND +#Q> c25 = 9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 9999999999 AND +#Q> # +#Q> c28 = '9999-12-31' AND +#Q> c29 = '9999-12-31 23:59:59' AND +#Q> c30 = '2038-01-08 03:14:07' AND +#Q> c31 = '838:59:59' AND +#Q> c32 = '2155' AND +#Q> # +#Q> c33 = x'ff' AND +#Q> c34 = '' AND +#Q> c35 = x'ff' AND +#Q> c36 = REPEAT(x'ff',255) AND +#Q> c37 = _utf8 x'efbfbf' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'efbfbf' AND +#Q> c40 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c41 = _ucs2 x'ffff' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'ffff' AND +#Q> c44 = REPEAT(_ucs2 x'ffff',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = x'ff' AND +#Q> c47 = REPEAT(x'ff',255) AND +#Q> c48 = REPEAT(x'ff',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'efbfbf' AND +#Q> c51 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c52 = REPEAT(_utf8 x'efbfbf',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'ffff' AND +#Q> c55 = REPEAT(_ucs2 x'ffff',255) AND +#Q> c56 = REPEAT(_ucs2 x'ffff',261) AND +#Q> # +#Q> c57 = x'ff' AND +#Q> c58 = '' AND +#Q> c59 = x'ff' AND +#Q> c60 = REPEAT(x'ff',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = x'ff' AND +#Q> c63 = REPEAT(x'ff',255) AND +#Q> c64 = REPEAT(x'ff',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'mediumtext' AND +#Q> c73 = 'mediumtext-ucs2' AND +#Q> c74 = 'longblob' AND +#Q> c75 = ' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3518,6 +4629,89 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'0' AND +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +#Q> c03 = -128 AND +#Q> c04 = 0 AND +#Q> c05 = 000 AND +#Q> c06 = false AND +#Q> c07 = -32768 AND +#Q> c08 = 0 AND +#Q> c09 = 00000 AND +#Q> c10 = -8388608 AND +#Q> c11 = 0 AND +#Q> c12 = 00000000 AND +#Q> c13 = -2147483648 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000000 AND +#Q> c16 = -9223372036854775808 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000000 AND +#Q> c19 < -3.402823465E+38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000 AND +#Q> c22 < -1.7976931348622E+308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 0000000000000000000000 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 0 AND +#Q> c27 = 0000000000 AND +#Q> # +#Q> c28 = '1000-01-01' AND +#Q> c29 = '1000-01-01 00:00:00' AND +#Q> c30 = '1970-01-02 00:00:01' AND +#Q> c31 = '-838:59:59' AND +#Q> c32 = '1901' AND +#Q> # +#Q> c33 = '' AND +#Q> c34 = '' AND +#Q> c35 = '' AND +#Q> c36 = '' AND +#Q> c37 = '' AND +#Q> c38 = '' AND +#Q> c39 = '' AND +#Q> c40 = '' AND +#Q> c41 = '' AND +#Q> c42 = '' AND +#Q> c43 = '' AND +#Q> c44 = '' AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = '' AND +#Q> c47 = '' AND +#Q> c48 = '' AND +#Q> c49 = '' AND +#Q> c50 = '' AND +#Q> c51 = '' AND +#Q> c52 = '' AND +#Q> c53 = '' AND +#Q> c54 = '' AND +#Q> c55 = '' AND +#Q> c56 = '' AND +#Q> # +#Q> # this does not reproduce the inserted value: c57 = '' AND +#Q> c58 = '' AND +#Q> # this does not reproduce the inserted value: c59 = '' AND +#Q> # this does not reproduce the inserted value: c60 = '' AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = '' AND +#Q> c63 = '' AND +#Q> c64 = '' AND +#Q> # +#Q> c65 = '' AND +#Q> c66 = '' AND +#Q> c67 = '' AND +#Q> c68 = '' AND +#Q> c69 = '' AND +#Q> c70 = '' AND +#Q> c71 = '' AND +#Q> c72 = '' AND +#Q> c73 = '' A #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3611,6 +4805,92 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 0 AND +#Q> c05 = 001 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 0 AND +#Q> c09 = 00001 AND +#Q> c10 = 8388607 AND +#Q> c11 = 0 AND +#Q> c12 = 00000001 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000001 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000001 AND +#Q> c19 > -1.175494352E-38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000001 AND +#Q> c22 > -2.2250738585073E-308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 00000000000000000000001 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 0000000001 AND +#Q> # +#Q> c28 = '2008-08-04' AND +#Q> c29 = '2008-08-04 16:18:06' AND +#Q> c30 = '2008-08-04 16:18:24' AND +#Q> c31 = '16:18:47' AND +#Q> c32 = '2008' AND +#Q> # +#Q> c33 = 'a' AND +#Q> c34 = '' AND +#Q> c35 = 'e' AND +#Q> c36 = REPEAT('i',255) AND +#Q> c37 = _utf8 x'c3a4' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'c3b6' AND +#Q> c40 = REPEAT(_utf8 x'c3bc',255) AND +#Q> c41 = _ucs2 x'00e4' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'00f6' AND +#Q> c44 = REPEAT(_ucs2 x'00fc',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = 'a' AND +#Q> c47 = REPEAT('e',255) AND +#Q> c48 = REPEAT('i',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'c3a4' AND +#Q> c51 = REPEAT(_utf8 x'c3b6',255) AND +#Q> c52 = REPEAT(_utf8 x'c3bc',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'00e4' AND +#Q> c55 = REPEAT(_ucs2 x'00f6',255) AND +#Q> c56 = REPEAT(_ucs2 x'00fc',261) AND +#Q> # +#Q> c57 = '0' AND +#Q> c58 = '' AND +#Q> c59 = '1' AND +#Q> c60 = REPEAT('1',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = 'b' AND +#Q> c63 = REPEAT('c',255) AND +#Q> c64 = REPEAT('\'',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'mediumtext' AND +#Q> c73 = 'mediumtext-ucs2' AND +#Q> c74 = 'longblob' AND +#Q> c75 = 'longtext' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3704,6 +4984,90 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 IS NULL AND +#Q> c02 IS NULL AND +#Q> c03 IS NULL AND +#Q> c04 IS NULL AND +#Q> c05 IS NULL AND +#Q> c06 IS NULL AND +#Q> c07 IS NULL AND +#Q> c08 IS NULL AND +#Q> c09 IS NULL AND +#Q> c10 IS NULL AND +#Q> c11 IS NULL AND +#Q> c12 IS NULL AND +#Q> c13 IS NULL AND +#Q> c14 IS NULL AND +#Q> c15 IS NULL AND +#Q> c16 IS NULL AND +#Q> c17 IS NULL AND +#Q> c18 IS NULL AND +#Q> c19 IS NULL AND +#Q> c20 IS NULL AND +#Q> c21 IS NULL AND +#Q> c22 IS NULL AND +#Q> c23 IS NULL AND +#Q> c24 IS NULL AND +#Q> c25 IS NULL AND +#Q> c26 IS NULL AND +#Q> c27 IS NULL AND +#Q> # +#Q> c28 IS NULL AND +#Q> c29 IS NULL AND +#Q> # this got a timestamp instead of NULL: c30 IS NULL AND +#Q> c31 IS NULL AND +#Q> c32 IS NULL AND +#Q> # +#Q> c33 IS NULL AND +#Q> c34 IS NULL AND +#Q> c35 IS NULL AND +#Q> c36 IS NULL AND +#Q> c37 IS NULL AND +#Q> c38 IS NULL AND +#Q> c39 IS NULL AND +#Q> c40 IS NULL AND +#Q> c41 IS NULL AND +#Q> c42 IS NULL AND +#Q> c43 IS NULL AND +#Q> c44 IS NULL AND +#Q> # +#Q> c45 IS NULL AND +#Q> c46 IS NULL AND +#Q> c47 IS NULL AND +#Q> c48 IS NULL AND +#Q> c49 IS NULL AND +#Q> c50 IS NULL AND +#Q> c51 IS NULL AND +#Q> c52 IS NULL AND +#Q> c53 IS NULL AND +#Q> c54 IS NULL AND +#Q> c55 IS NULL AND +#Q> c56 IS NULL AND +#Q> # +#Q> c57 IS NULL AND +#Q> c58 IS NULL AND +#Q> c59 IS NULL AND +#Q> c60 IS NULL AND +#Q> # +#Q> c61 IS NULL AND +#Q> c62 IS NULL AND +#Q> c63 IS NULL AND +#Q> c64 IS NULL AND +#Q> # +#Q> c65 IS NULL AND +#Q> c66 IS NULL AND +#Q> c67 IS NULL AND +#Q> c68 IS NULL AND +#Q> c69 IS NULL AND +#Q> c70 IS NULL AND +#Q> c71 IS NULL AND +#Q> c72 IS NULL AND +#Q> c73 IS NULL AND +#Q> c74 IS NUL #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3921,6 +5285,18 @@ crn INT -- row number BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES +#Q> ('2008-08-01','VARCHAR-01',1), +#Q> ('2008-08-02','VARCHAR-02',2), +#Q> ('2008-08-03','VARCHAR-03',3), +#Q> ('2008-08-04','VARCHAR-04',4), +#Q> ('2008-08-05','VARCHAR-05',5), +#Q> ('2008-08-06','VARCHAR-06',6), +#Q> ('2008-08-07','VARCHAR-07',7), +#Q> ('2008-08-08','VARCHAR-08',8), +#Q> ('2008-08-09','VARCH #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -3978,6 +5354,9 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c28 = ADDDATE(c28,10) WHERE crn < 8 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -4053,6 +5432,9 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE crn < 8 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -4324,6 +5706,18 @@ c_3_n INT -- row number BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES +#Q> ('2008-01-01','VARCHAR-01-01',11), +#Q> ('2008-01-02','VARCHAR-01-02',2), +#Q> ('2008-01-03','VARCHAR-01-03',3), +#Q> ('2008-01-04','VARCHAR-01-04',4), +#Q> ('2008-01-05','VARCHAR-01-05',5), +#Q> ('2008-01-06','VARCHAR-01-06',6), +#Q> ('2008-01-07','VARCHAR-01-07',7), +#Q> ('2008-01-08','VARCHAR-01-08',18), +#Q> ('2008-01-09','VARCHAR-0 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4381,6 +5775,18 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES +#Q> ('2008-02-01','VARCHAR-02-01',21), +#Q> ('2008-02-02','VARCHAR-02-02',2), +#Q> ('2008-02-03','VARCHAR-02-03',3), +#Q> ('2008-02-04','VARCHAR-02-04',4), +#Q> ('2008-02-05','VARCHAR-02-05',5), +#Q> ('2008-02-06','VARCHAR-02-06',6), +#Q> ('2008-02-07','VARCHAR-02-07',7), +#Q> ('2008-02-08','VARCHAR-02-08',28), +#Q> ('2008-02-09','VARCHAR-0 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4438,6 +5844,18 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t3 VALUES +#Q> ('2008-03-01','VARCHAR-03-01',31), +#Q> ('2008-03-02','VARCHAR-03-02',2), +#Q> ('2008-03-03','VARCHAR-03-03',3), +#Q> ('2008-03-04','VARCHAR-03-04',4), +#Q> ('2008-03-05','VARCHAR-03-05',5), +#Q> ('2008-03-06','VARCHAR-03-06',6), +#Q> ('2008-03-07','VARCHAR-03-07',7), +#Q> ('2008-03-08','VARCHAR-03-08',38), +#Q> ('2008-03-09','VARCHAR-0 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4495,6 +5913,13 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1,t2,t3 SET +#Q> c_1_1 = ADDDATE(c_1_1,INTERVAL 10 YEAR), +#Q> c_2_1 = ADDDATE(c_2_1,INTERVAL 20 YEAR), +#Q> c_3_1 = ADDDATE(c_3_1,INTERVAL 30 YEAR) +#Q> WHERE c_1_n = c_2_n AND c_2_n = c #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # @@ -4677,6 +6102,10 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3 +#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_ #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # @@ -4886,6 +6315,11 @@ c3 VARCHAR(60) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> LOAD DATA INFILE '../../std_data/loaddata5.dat' +#Q> INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (c1,c2) +#Q> SET c3 = 'Wo #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result index e668481212d..7c6c21625f2 100644 --- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result @@ -2371,6 +2371,94 @@ crn INT -- row number BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> b'0', -- c01 +#Q> b'0000000000000000000000000000000000000000000000000000000000000000', -- c02 +#Q> -128, -- c03 +#Q> 0, -- c04 +#Q> 000, -- c05 +#Q> false, -- c06 +#Q> -32768, -- c07 +#Q> 0, -- c08 +#Q> 00000, -- c09 +#Q> -8388608, -- c10 +#Q> 0, -- c11 +#Q> 00000000, -- c12 +#Q> -2147483648, -- c13 +#Q> 0, -- c14 +#Q> 0000000000, -- c15 +#Q> -9223372036854775808, -- c16 +#Q> 0, -- c17 +#Q> 00000000000000000000, -- c18 +#Q> -3.402823466E+38, -- c19 +#Q> 1.175494351E-38, -- c20 +#Q> 000000000000, -- c21 +#Q> -1.7976931348623E+308, -- c22 three digits cut for ps-protocol +#Q> 2.2250738585072E-308, -- c23 three digits cut for ps-protocol +#Q> 0000000000000000000000, -- c24 +#Q> -9999999999, -- c25 +#Q> 0, -- c26 +#Q> 0000000000, -- c27 +#Q> # +#Q> '1000-01-01', -- c28 +#Q> '1000-01-01 00:00:00', -- c29 +#Q> '1970-01-02 00:00:01', -- c30 one day later due to timezone issues +#Q> '-838:59:59', -- c31 +#Q> '1901', -- c32 +#Q> # +#Q> '', -- c33 +#Q> '', -- c34 +#Q> '', -- c35 +#Q> '', -- c36 +#Q> '', -- c37 +#Q> '', -- c38 +#Q> '', -- c39 +#Q> '', -- c40 +#Q> '', -- c41 +#Q> '', -- c42 +#Q> '', -- c43 +#Q> '', -- c44 +#Q> # +#Q> '', -- c45 +#Q> '', -- c46 +#Q> '', -- c47 +#Q> '', -- c48 +#Q> '', -- c49 +#Q> '', -- c50 +#Q> '', -- c51 +#Q> '', -- c52 +#Q> '', -- c53 +#Q> '', -- c54 +#Q> '', -- c55 +#Q> '', -- c56 +#Q> # +#Q> '', -- c57 +#Q> '', -- c58 +#Q> '', -- c59 +#Q> '', -- c60 +#Q> # +#Q> '', -- c61 +#Q> '', -- c62 +#Q> '', -- c63 +#Q> '', -- c64 +#Q> # +#Q> '', -- c65 +#Q> '', -- c66 +#Q> '', -- c67 +#Q> '', -- c68 +#Q> '', -- c69 +#Q> '', -- c70 +#Q> '', -- c71 +#Q> '', -- c72 +#Q> '', -- c73 +#Q> '', -- c74 +#Q> '', -- c75 +#Q> '', -- c76 +#Q> # +#Q> 'a', -- c77 +#Q> '', #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2467,6 +2555,94 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> b'1', -- c01 +#Q> b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +#Q> 127, -- c03 +#Q> 255, -- c04 +#Q> 255, -- c05 +#Q> true, -- c06 +#Q> 32767, -- c07 +#Q> 65535, -- c08 +#Q> 65535, -- c09 +#Q> 8388607, -- c10 +#Q> 16777215, -- c11 +#Q> 16777215, -- c12 +#Q> 2147483647, -- c13 +#Q> 4294967295, -- c14 +#Q> 4294967295, -- c15 +#Q> 9223372036854775807, -- c16 +#Q> 18446744073709551615, -- c17 +#Q> 18446744073709551615, -- c18 +#Q> 3.402823466E+38, -- c19 +#Q> 3.402823466E+38, -- c20 +#Q> 3.402823466E+38, -- c21 +#Q> 1.7976931348623E+308, -- c22 three digits cut for ps-protocol +#Q> 1.7976931348623E+308, -- c23 three digits cut for ps-protocol +#Q> 1.7976931348623E+308, -- c24 three digits cut for ps-protocol +#Q> 9999999999, -- c25 +#Q> 9999999999, -- c26 +#Q> 9999999999, -- c27 +#Q> # +#Q> '9999-12-31', -- c28 +#Q> '9999-12-31 23:59:59', -- c29 +#Q> '2038-01-08 03:14:07', -- c30 one day earlier due to timezone issues +#Q> '838:59:59', -- c31 +#Q> '2155', -- c32 +#Q> # +#Q> x'ff', -- c33 +#Q> '', -- c34 +#Q> x'ff', -- c35 +#Q> REPEAT(x'ff',255), -- c36 +#Q> _utf8 x'efbfbf', -- c37 +#Q> '', -- c38 +#Q> _utf8 x'efbfbf', -- c39 +#Q> REPEAT(_utf8 x'efbfbf',255), -- c40 +#Q> _ucs2 x'ffff', -- c41 +#Q> '', -- c42 +#Q> _ucs2 x'ffff', -- c43 +#Q> REPEAT(_ucs2 x'ffff',255), -- c44 +#Q> # +#Q> '', -- c45 +#Q> x'ff', -- c46 +#Q> REPEAT(x'ff',255), -- c47 +#Q> REPEAT(x'ff',261), -- c48 +#Q> '', -- c49 +#Q> _utf8 x'efbfbf', -- c50 +#Q> REPEAT(_utf8 x'efbfbf',255), -- c51 +#Q> REPEAT(_utf8 x'efbfbf',261), -- c52 +#Q> '', -- c53 +#Q> _ucs2 x'ffff', -- c54 +#Q> REPEAT(_ucs2 x'ffff',255), -- c55 +#Q> REPEAT(_ucs2 x'ffff',261), -- c56 +#Q> # +#Q> x'ff', -- c57 +#Q> '', -- c58 +#Q> x'ff', -- c59 +#Q> REPEAT(x'ff',255), -- c60 +#Q> # +#Q> '', -- c61 +#Q> x'ff', -- c62 +#Q> REPEAT(x'ff',255), -- c63 +#Q> REPEAT(x'ff',261), -- c64 +#Q> # +#Q> 'tinyblob', -- c65 not using maximum value here +#Q> 'tinytext', -- c66 not using maximum value here +#Q> 'tinytext-ucs2', -- c67 not using maximum value here +#Q> 'blob', -- c68 not using maximum value here +#Q> 'text', -- c69 not using maximum value here +#Q> 'text-ucs2', -- c70 not using maximum value here +#Q> 'mediumblob', -- c71 not using maximum value here +#Q> 'mediumtext', -- c72 not using maximum value here +#Q> 'mediumtext-ucs2', -- c73 not using maximum value here +#Q> 'longblob', -- c74 not using maximum value here +#Q> 'longtext', -- c75 not using maximum value here +#Q> 'longtext-ucs2', -- c76 not using maximum value here +#Q> # +#Q> 'c', -- c77 +#Q> 'a,b,c #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -2562,10 +2738,181 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> NULL, -- c01 +#Q> NULL, -- c02 +#Q> NULL, -- c03 +#Q> NULL, -- c04 +#Q> NULL, -- c05 +#Q> NULL, -- c06 +#Q> NULL, -- c07 +#Q> NULL, -- c08 +#Q> NULL, -- c09 +#Q> NULL, -- c10 +#Q> NULL, -- c11 +#Q> NULL, -- c12 +#Q> NULL, -- c13 +#Q> NULL, -- c14 +#Q> NULL, -- c15 +#Q> NULL, -- c16 +#Q> NULL, -- c17 +#Q> NULL, -- c18 +#Q> NULL, -- c19 +#Q> NULL, -- c20 +#Q> NULL, -- c21 +#Q> NULL, -- c22 +#Q> NULL, -- c23 +#Q> NULL, -- c24 +#Q> NULL, -- c25 +#Q> NULL, -- c26 +#Q> NULL, -- c27 +#Q> # +#Q> NULL, -- c28 +#Q> NULL, -- c29 +#Q> NULL, -- c30 +#Q> NULL, -- c31 +#Q> NULL, -- c32 +#Q> # +#Q> NULL, -- c33 +#Q> NULL, -- c34 +#Q> NULL, -- c35 +#Q> NULL, -- c36 +#Q> NULL, -- c37 +#Q> NULL, -- c38 +#Q> NULL, -- c39 +#Q> NULL, -- c40 +#Q> NULL, -- c41 +#Q> NULL, -- c42 +#Q> NULL, -- c43 +#Q> NULL, -- c44 +#Q> # +#Q> NULL, -- c45 +#Q> NULL, -- c46 +#Q> NULL, -- c47 +#Q> NULL, -- c48 +#Q> NULL, -- c49 +#Q> NULL, -- c50 +#Q> NULL, -- c51 +#Q> NULL, -- c52 +#Q> NULL, -- c53 +#Q> NULL, -- c54 +#Q> NULL, -- c55 +#Q> NULL, -- c56 +#Q> # +#Q> NULL, -- c57 +#Q> NULL, -- c58 +#Q> NULL, -- c59 +#Q> NULL, -- c60 +#Q> # +#Q> NULL, -- c61 +#Q> NULL, -- c62 +#Q> NULL, -- c63 +#Q> NULL, -- c64 +#Q> # +#Q> NULL, -- c65 +#Q> NULL, -- c66 +#Q> NULL, -- c67 +#Q> NULL, -- c68 +#Q> NULL, -- c69 +#Q> NULL, -- c70 +#Q> NULL, -- c71 +#Q> NULL, -- c72 +#Q> NULL, -- c73 +#Q> NULL, -- c74 +#Q> NULL, -- c75 +#Q> NULL, -- c76 +#Q> # +#Q> NULL, -- c77 +#Q> NULL, -- c78 +#Q> # +#Q> 3 -- crn -- row number +#Q> ), ( +#Q> b'1', -- c01 +#Q> b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +#Q> 127, -- c03 +#Q> 0, -- c04 +#Q> 001, -- c05 +#Q> true, -- c06 +#Q> 32767, -- c07 +#Q> 0, -- c08 +#Q> 00001, -- c09 +#Q> 8388607, -- c10 +#Q> 0, -- c11 +#Q> 00000001, -- c12 +#Q> 2147483647, -- c13 +#Q> 0, -- c14 +#Q> 0000000001, -- c15 +#Q> 9223372036854775807, -- c16 +#Q> 0, -- c17 +#Q> 00000000000000000001, -- c18 +#Q> -1.175494351E-38, -- c19 +#Q> 1.175494351E-38, -- c20 +#Q> 000000000000001, -- c21 +#Q> -2.2250738585072E-308, -- c22 +#Q> 2.2250738585072E-308, -- c23 +#Q> 00000000000000000000001, -- c24 +#Q> -9999999999, -- c25 +#Q> 9999999999, -- c26 +#Q> 0000000001, -- c27 +#Q> # +#Q> '2008-08-04', -- c28 +#Q> '2008-08-04 16:18:06', -- c29 +#Q> '2008-08-04 16:18:24', -- c30 +#Q> '16:18:47', -- c31 +#Q> '2008', -- c32 +#Q> # +#Q> 'a', -- c33 +#Q> '', -- c34 +#Q> 'e', -- c35 +#Q> REPEAT('i',255), -- c36 +#Q> _utf8 x'c3a4', -- c37 +#Q> '', -- c38 +#Q> _utf8 x'c3b6', -- c39 +#Q> REPEAT(_utf8 x'c3bc',255), -- c40 +#Q> _ucs2 x'00e4', -- c41 +#Q> '', -- c42 +#Q> _ucs2 x'00f6', -- c43 +#Q> REPEAT(_ucs2 x'00fc',255), -- c44 +#Q> # +#Q> '', -- c45 +#Q> 'a', -- c46 +#Q> REPEAT('e',255), -- c47 +#Q> REPEAT('i',261), -- c48 +#Q> '', -- c49 +#Q> _utf8 x'c3a4', -- c50 +#Q> REPEAT(_utf8 x'c3b6',255), -- c51 +#Q> REPEAT(_utf8 x'c3bc',261), -- c52 +#Q> '', -- c53 +#Q> _ucs2 x'00e4', -- c54 +#Q> REPEAT(_ucs2 x'00f6',255), -- c55 +#Q> REPEAT(_ucs2 x'00fc',261), -- c56 +#Q> # +#Q> '0', -- c57 +#Q> '', -- c58 +#Q> '1', -- c59 +#Q> REPEAT('1',255), -- c60 +#Q> # +#Q> '', -- c61 +#Q> 'b', -- c62 +#Q> REPEAT('c',255), -- c63 +#Q> REPEAT('\'',261), -- c64 +#Q> # +#Q> 'tinyblob', -- c65 +#Q> 'tinytext', -- c66 +#Q> 'tinytext-ucs2', -- c67 +#Q> 'blob', -- c68 +#Q> 'text', -- c69 +#Q> 'text-ucs2', -- c70 +#Q> 'mediumblob', -- c71 +#Q> 'mediumtext', -- c72 +#Q> 'mediumtext-ucs2', -- c73 +#Q> 'longblob', -- c74 +#Q> 'longtext', -- c75 +#Q> 'longtext #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # -# at # -#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F ### INSERT INTO `test`.`t1` ### SET @@ -2740,6 +3087,172 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'1', +#Q> c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +#Q> c03 = 127, +#Q> c04 = 255, +#Q> c05 = 255, +#Q> c06 = true, +#Q> c07 = 32767, +#Q> c08 = 65535, +#Q> c09 = 65535, +#Q> c10 = 8388607, +#Q> c11 = 16777215, +#Q> c12 = 16777215, +#Q> c13 = 2147483647, +#Q> c14 = 4294967295, +#Q> c15 = 4294967295, +#Q> c16 = 9223372036854775807, +#Q> c17 = 18446744073709551615, +#Q> c18 = 18446744073709551615, +#Q> c19 = 3.402823466E+38, +#Q> c20 = 3.402823466E+38, +#Q> c21 = 3.402823466E+38, +#Q> c22 = 1.7976931348623E+308, +#Q> c23 = 1.7976931348623E+308, +#Q> c24 = 1.7976931348623E+308, +#Q> c25 = 9999999999, +#Q> c26 = 9999999999, +#Q> c27 = 9999999999, +#Q> # +#Q> c28 = '9999-12-31', +#Q> c29 = '9999-12-31 23:59:59', +#Q> c30 = '2038-01-08 03:14:07', +#Q> c31 = '838:59:59', +#Q> c32 = '2155', +#Q> # +#Q> c33 = x'ff', +#Q> c34 = '', +#Q> c35 = x'ff', +#Q> c36 = REPEAT(x'ff',255), +#Q> c37 = _utf8 x'efbfbf', +#Q> c38 = '', +#Q> c39 = _utf8 x'efbfbf', +#Q> c40 = REPEAT(_utf8 x'efbfbf',255), +#Q> c41 = _ucs2 x'ffff', +#Q> c42 = '', +#Q> c43 = _ucs2 x'ffff', +#Q> c44 = REPEAT(_ucs2 x'ffff',255), +#Q> # +#Q> c45 = '', +#Q> c46 = x'ff', +#Q> c47 = REPEAT(x'ff',255), +#Q> c48 = REPEAT(x'ff',261), +#Q> c49 = '', +#Q> c50 = _utf8 x'efbfbf', +#Q> c51 = REPEAT(_utf8 x'efbfbf',255), +#Q> c52 = REPEAT(_utf8 x'efbfbf',261), +#Q> c53 = '', +#Q> c54 = _ucs2 x'ffff', +#Q> c55 = REPEAT(_ucs2 x'ffff',255), +#Q> c56 = REPEAT(_ucs2 x'ffff',261), +#Q> # +#Q> c57 = x'ff', +#Q> c58 = '', +#Q> c59 = x'ff', +#Q> c60 = REPEAT(x'ff',255), +#Q> # +#Q> c61 = '', +#Q> c62 = x'ff', +#Q> c63 = REPEAT(x'ff',255), +#Q> c64 = REPEAT(x'ff',261), +#Q> # +#Q> c65 = 'tinyblob', +#Q> c66 = 'tinytext', +#Q> c67 = 'tinytext-ucs2', +#Q> c68 = 'blob', +#Q> c69 = 'text', +#Q> c70 = 'text-ucs2', +#Q> c71 = 'mediumblob', +#Q> c72 = 'mediumtext', +#Q> c73 = 'mediumtext-ucs2', +#Q> c74 = 'longblob', +#Q> c75 = 'longtext', +#Q> c76 = 'longtext-ucs2', +#Q> # +#Q> c77 = 'c', +#Q> c78 = 'a,b,c', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'0' AND +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +#Q> c03 = -128 AND +#Q> c04 = 0 AND +#Q> c05 = 000 AND +#Q> c06 = false AND +#Q> c07 = -32768 AND +#Q> c08 = 0 AND +#Q> c09 = 00000 AND +#Q> c10 = -8388608 AND +#Q> c11 = 0 AND +#Q> c12 = 00000000 AND +#Q> c13 = -2147483648 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000000 AND +#Q> c16 = -9223372036854775808 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000000 AND +#Q> c19 < -3.402823465E+38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000 AND +#Q> c22 < -1.7976931348622E+308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 0000000000000000000000 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 0 AND +#Q> c27 = 0000000000 AND +#Q> # +#Q> c28 = '1000-01-01' AND +#Q> c29 = '1000-01-01 00:00:00' AND +#Q> c30 = '1970-01-02 00:00:01' AND +#Q> c31 = '-838:59:59' AND +#Q> c32 = '1901' AND +#Q> # +#Q> c33 = '' AND +#Q> c34 = '' AND +#Q> c35 = '' AND +#Q> c36 = '' AND +#Q> c37 = '' AND +#Q> c38 = '' AND +#Q> c39 = '' AND +#Q> c40 = '' AND +#Q> c41 = '' AND +#Q> c42 = '' AND +#Q> c43 = '' AND +#Q> c44 = '' AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = '' AND +#Q> c47 = '' AND +#Q> c48 = '' AND +#Q> c49 = '' AND +#Q> c50 = '' AND +#Q> c51 = '' AND +#Q> c52 = '' AND +#Q> c53 = '' AND +#Q> c54 = '' AND +#Q> c55 = '' AND +#Q> c56 = '' AND +#Q> # +#Q> # this does not reproduce the inserted value: c57 = '' AND +#Q> c58 = '' AND +#Q> # this does not reproduce the inserted value: c59 = '' AND +#Q> # this does not reproduce the inserted value: c60 = '' AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = '' AND +#Q> c63 = '' AND +#Q> c64 = '' AND +#Q> # +#Q> c65 = '' AND +#Q> c66 = '' AND +#Q> c67 = #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -2915,6 +3428,177 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'0', +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000', +#Q> c03 = -128, +#Q> c04 = 0, +#Q> c05 = 000, +#Q> c06 = false, +#Q> c07 = -32768, +#Q> c08 = 0, +#Q> c09 = 00000, +#Q> c10 = -8388608, +#Q> c11 = 0, +#Q> c12 = 00000000, +#Q> c13 = -2147483648, +#Q> c14 = 0, +#Q> c15 = 0000000000, +#Q> c16 = -9223372036854775808, +#Q> c17 = 0, +#Q> c18 = 00000000000000000000, +#Q> c19 = -3.402823466E+38, +#Q> c20 = 1.175494351E-38, +#Q> c21 = 000000000000, +#Q> c22 = -1.7976931348623E+308, +#Q> c23 = 2.2250738585072E-308, +#Q> c24 = 0000000000000000000000, +#Q> c25 = -9999999999, +#Q> c26 = 0, +#Q> c27 = 0000000000, +#Q> # +#Q> c28 = '1000-01-01', +#Q> c29 = '1000-01-01 00:00:00', +#Q> c30 = '1970-01-02 00:00:01', +#Q> c31 = '-838:59:59', +#Q> c32 = '1901', +#Q> # +#Q> c33 = '', +#Q> c34 = '', +#Q> c35 = '', +#Q> c36 = '', +#Q> c37 = '', +#Q> c38 = '', +#Q> c39 = '', +#Q> c40 = '', +#Q> c41 = '', +#Q> c42 = '', +#Q> c43 = '', +#Q> c44 = '', +#Q> # +#Q> c45 = '', +#Q> c46 = '', +#Q> c47 = '', +#Q> c48 = '', +#Q> c49 = '', +#Q> c50 = '', +#Q> c51 = '', +#Q> c52 = '', +#Q> c53 = '', +#Q> c54 = '', +#Q> c55 = '', +#Q> c56 = '', +#Q> # +#Q> c57 = '', +#Q> c58 = '', +#Q> c59 = '', +#Q> c60 = '', +#Q> # +#Q> c61 = '', +#Q> c62 = '', +#Q> c63 = '', +#Q> c64 = '', +#Q> # +#Q> c65 = '', +#Q> c66 = '', +#Q> c67 = '', +#Q> c68 = '', +#Q> c69 = '', +#Q> c70 = '', +#Q> c71 = '', +#Q> c72 = '', +#Q> c73 = '', +#Q> c74 = '', +#Q> c75 = '', +#Q> c76 = '', +#Q> # +#Q> c77 = 'a', +#Q> c78 = '', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 255 AND +#Q> c05 = 255 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 65535 AND +#Q> c09 = 65535 AND +#Q> c10 = 8388607 AND +#Q> c11 = 16777215 AND +#Q> c12 = 16777215 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 4294967295 AND +#Q> c15 = 4294967295 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 18446744073709551615 AND +#Q> c18 = 18446744073709551615 AND +#Q> c19 > 3.402823465E+38 AND +#Q> c20 > 3.402823465E+38 AND +#Q> c21 > 3.402823465E+38 AND +#Q> c22 > 1.7976931348622E+308 AND +#Q> c23 > 1.7976931348622E+308 AND +#Q> c24 > 1.7976931348622E+308 AND +#Q> c25 = 9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 9999999999 AND +#Q> # +#Q> c28 = '9999-12-31' AND +#Q> c29 = '9999-12-31 23:59:59' AND +#Q> c30 = '2038-01-08 03:14:07' AND +#Q> c31 = '838:59:59' AND +#Q> c32 = '2155' AND +#Q> # +#Q> c33 = x'ff' AND +#Q> c34 = '' AND +#Q> c35 = x'ff' AND +#Q> c36 = REPEAT(x'ff',255) AND +#Q> c37 = _utf8 x'efbfbf' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'efbfbf' AND +#Q> c40 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c41 = _ucs2 x'ffff' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'ffff' AND +#Q> c44 = REPEAT(_ucs2 x'ffff',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = x'ff' AND +#Q> c47 = REPEAT(x'ff',255) AND +#Q> c48 = REPEAT(x'ff',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'efbfbf' AND +#Q> c51 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c52 = REPEAT(_utf8 x'efbfbf',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'ffff' AND +#Q> c55 = REPEAT(_ucs2 x'ffff',255) AND +#Q> c56 = REPEAT(_ucs2 x'ffff',261) AND +#Q> # +#Q> c57 = x'ff' AND +#Q> c58 = '' AND +#Q> c59 = x'ff' AND +#Q> c60 = REPEAT(x'ff',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = x'ff' AND +#Q> c63 = REPEAT(x'ff',255) AND +#Q> c64 = REPEAT(x'ff',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -3090,6 +3774,175 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'1', +#Q> c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +#Q> c03 = 127, +#Q> c04 = 0, +#Q> c05 = 001, +#Q> c06 = true, +#Q> c07 = 32767, +#Q> c08 = 0, +#Q> c09 = 00001, +#Q> c10 = 8388607, +#Q> c11 = 0, +#Q> c12 = 00000001, +#Q> c13 = 2147483647, +#Q> c14 = 0, +#Q> c15 = 0000000001, +#Q> c16 = 9223372036854775807, +#Q> c17 = 0, +#Q> c18 = 00000000000000000001, +#Q> c19 = -1.175494351E-38, +#Q> c20 = 1.175494351E-38, +#Q> c21 = 000000000000001, +#Q> c22 = -2.2250738585072E-308, +#Q> c23 = 2.2250738585072E-308, +#Q> c24 = 00000000000000000000001, +#Q> c25 = -9999999999, +#Q> c26 = 9999999999, +#Q> c27 = 0000000001, +#Q> # +#Q> c28 = '2008-08-04', +#Q> c29 = '2008-08-04 16:18:06', +#Q> c30 = '2008-08-04 16:18:24', +#Q> c31 = '16:18:47', +#Q> c32 = '2008', +#Q> # +#Q> c33 = 'a', +#Q> c34 = '', +#Q> c35 = 'e', +#Q> c36 = REPEAT('i',255), +#Q> c37 = _utf8 x'c3a4', +#Q> c38 = '', +#Q> c39 = _utf8 x'c3b6', +#Q> c40 = REPEAT(_utf8 x'c3bc',255), +#Q> c41 = _ucs2 x'00e4', +#Q> c42 = '', +#Q> c43 = _ucs2 x'00f6', +#Q> c44 = REPEAT(_ucs2 x'00fc',255), +#Q> # +#Q> c45 = '', +#Q> c46 = 'a', +#Q> c47 = REPEAT('e',255), +#Q> c48 = REPEAT('i',261), +#Q> c49 = '', +#Q> c50 = _utf8 x'c3a4', +#Q> c51 = REPEAT(_utf8 x'c3b6',255), +#Q> c52 = REPEAT(_utf8 x'c3bc',261), +#Q> c53 = '', +#Q> c54 = _ucs2 x'00e4', +#Q> c55 = REPEAT(_ucs2 x'00f6',255), +#Q> c56 = REPEAT(_ucs2 x'00fc',261), +#Q> # +#Q> c57 = '0', +#Q> c58 = '', +#Q> c59 = '1', +#Q> c60 = REPEAT('1',255), +#Q> # +#Q> c61 = '', +#Q> c62 = 'b', +#Q> c63 = REPEAT('c',255), +#Q> c64 = REPEAT('\'',261), +#Q> # +#Q> c65 = 'tinyblob', +#Q> c66 = 'tinytext', +#Q> c67 = 'tinytext-ucs2', +#Q> c68 = 'blob', +#Q> c69 = 'text', +#Q> c70 = 'text-ucs2', +#Q> c71 = 'mediumblob', +#Q> c72 = 'mediumtext', +#Q> c73 = 'mediumtext-ucs2', +#Q> c74 = 'longblob', +#Q> c75 = 'longtext', +#Q> c76 = 'longtext-ucs2', +#Q> # +#Q> c77 = 'b', +#Q> c78 = 'b,c', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 IS NULL AND +#Q> c02 IS NULL AND +#Q> c03 IS NULL AND +#Q> c04 IS NULL AND +#Q> c05 IS NULL AND +#Q> c06 IS NULL AND +#Q> c07 IS NULL AND +#Q> c08 IS NULL AND +#Q> c09 IS NULL AND +#Q> c10 IS NULL AND +#Q> c11 IS NULL AND +#Q> c12 IS NULL AND +#Q> c13 IS NULL AND +#Q> c14 IS NULL AND +#Q> c15 IS NULL AND +#Q> c16 IS NULL AND +#Q> c17 IS NULL AND +#Q> c18 IS NULL AND +#Q> c19 IS NULL AND +#Q> c20 IS NULL AND +#Q> c21 IS NULL AND +#Q> c22 IS NULL AND +#Q> c23 IS NULL AND +#Q> c24 IS NULL AND +#Q> c25 IS NULL AND +#Q> c26 IS NULL AND +#Q> c27 IS NULL AND +#Q> # +#Q> c28 IS NULL AND +#Q> c29 IS NULL AND +#Q> # this got a timestamp instead of NULL: c30 IS NULL AND +#Q> c31 IS NULL AND +#Q> c32 IS NULL AND +#Q> # +#Q> c33 IS NULL AND +#Q> c34 IS NULL AND +#Q> c35 IS NULL AND +#Q> c36 IS NULL AND +#Q> c37 IS NULL AND +#Q> c38 IS NULL AND +#Q> c39 IS NULL AND +#Q> c40 IS NULL AND +#Q> c41 IS NULL AND +#Q> c42 IS NULL AND +#Q> c43 IS NULL AND +#Q> c44 IS NULL AND +#Q> # +#Q> c45 IS NULL AND +#Q> c46 IS NULL AND +#Q> c47 IS NULL AND +#Q> c48 IS NULL AND +#Q> c49 IS NULL AND +#Q> c50 IS NULL AND +#Q> c51 IS NULL AND +#Q> c52 IS NULL AND +#Q> c53 IS NULL AND +#Q> c54 IS NULL AND +#Q> c55 IS NULL AND +#Q> c56 IS NULL AND +#Q> # +#Q> c57 IS NULL AND +#Q> c58 IS NULL AND +#Q> c59 IS NULL AND +#Q> c60 IS NULL AND +#Q> # +#Q> c61 IS NULL AND +#Q> c62 IS NULL AND +#Q> c63 IS NULL AND +#Q> c64 IS NULL AND +#Q> # +#Q> c65 IS NULL AND +#Q> c66 IS NULL AND +#Q> c67 IS NULL AND +#Q> c68 IS NULL AND +#Q> c69 IS NULL AND +#Q> c70 IS NULL #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -3265,6 +4118,178 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = NULL, +#Q> c02 = NULL, +#Q> c03 = NULL, +#Q> c04 = NULL, +#Q> c05 = NULL, +#Q> c06 = NULL, +#Q> c07 = NULL, +#Q> c08 = NULL, +#Q> c09 = NULL, +#Q> c10 = NULL, +#Q> c11 = NULL, +#Q> c12 = NULL, +#Q> c13 = NULL, +#Q> c14 = NULL, +#Q> c15 = NULL, +#Q> c16 = NULL, +#Q> c17 = NULL, +#Q> c18 = NULL, +#Q> c19 = NULL, +#Q> c20 = NULL, +#Q> c21 = NULL, +#Q> c22 = NULL, +#Q> c23 = NULL, +#Q> c24 = NULL, +#Q> c25 = NULL, +#Q> c26 = NULL, +#Q> c27 = NULL, +#Q> # +#Q> c28 = NULL, +#Q> c29 = NULL, +#Q> c30 = NULL, +#Q> c31 = NULL, +#Q> c32 = NULL, +#Q> # +#Q> c33 = NULL, +#Q> c34 = NULL, +#Q> c35 = NULL, +#Q> c36 = NULL, +#Q> c37 = NULL, +#Q> c38 = NULL, +#Q> c39 = NULL, +#Q> c40 = NULL, +#Q> c41 = NULL, +#Q> c42 = NULL, +#Q> c43 = NULL, +#Q> c44 = NULL, +#Q> # +#Q> c45 = NULL, +#Q> c46 = NULL, +#Q> c47 = NULL, +#Q> c48 = NULL, +#Q> c49 = NULL, +#Q> c50 = NULL, +#Q> c51 = NULL, +#Q> c52 = NULL, +#Q> c53 = NULL, +#Q> c54 = NULL, +#Q> c55 = NULL, +#Q> c56 = NULL, +#Q> # +#Q> c57 = NULL, +#Q> c58 = NULL, +#Q> c59 = NULL, +#Q> c60 = NULL, +#Q> # +#Q> c61 = NULL, +#Q> c62 = NULL, +#Q> c63 = NULL, +#Q> c64 = NULL, +#Q> # +#Q> c65 = NULL, +#Q> c66 = NULL, +#Q> c67 = NULL, +#Q> c68 = NULL, +#Q> c69 = NULL, +#Q> c70 = NULL, +#Q> c71 = NULL, +#Q> c72 = NULL, +#Q> c73 = NULL, +#Q> c74 = NULL, +#Q> c75 = NULL, +#Q> c76 = NULL, +#Q> # +#Q> c77 = NULL, +#Q> c78 = NULL, +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 0 AND +#Q> c05 = 001 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 0 AND +#Q> c09 = 00001 AND +#Q> c10 = 8388607 AND +#Q> c11 = 0 AND +#Q> c12 = 00000001 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000001 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000001 AND +#Q> c19 > -1.175494352E-38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000001 AND +#Q> c22 > -2.2250738585073E-308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 00000000000000000000001 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 0000000001 AND +#Q> # +#Q> c28 = '2008-08-04' AND +#Q> c29 = '2008-08-04 16:18:06' AND +#Q> c30 = '2008-08-04 16:18:24' AND +#Q> c31 = '16:18:47' AND +#Q> c32 = '2008' AND +#Q> # +#Q> c33 = 'a' AND +#Q> c34 = '' AND +#Q> c35 = 'e' AND +#Q> c36 = REPEAT('i',255) AND +#Q> c37 = _utf8 x'c3a4' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'c3b6' AND +#Q> c40 = REPEAT(_utf8 x'c3bc',255) AND +#Q> c41 = _ucs2 x'00e4' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'00f6' AND +#Q> c44 = REPEAT(_ucs2 x'00fc',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = 'a' AND +#Q> c47 = REPEAT('e',255) AND +#Q> c48 = REPEAT('i',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'c3a4' AND +#Q> c51 = REPEAT(_utf8 x'c3b6',255) AND +#Q> c52 = REPEAT(_utf8 x'c3bc',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'00e4' AND +#Q> c55 = REPEAT(_ucs2 x'00f6',255) AND +#Q> c56 = REPEAT(_ucs2 x'00fc',261) AND +#Q> # +#Q> c57 = '0' AND +#Q> c58 = '' AND +#Q> c59 = '1' AND +#Q> c60 = REPEAT('1',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = 'b' AND +#Q> c63 = REPEAT('c',255) AND +#Q> c64 = REPEAT('\'',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'me #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -3440,6 +4465,92 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 255 AND +#Q> c05 = 255 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 65535 AND +#Q> c09 = 65535 AND +#Q> c10 = 8388607 AND +#Q> c11 = 16777215 AND +#Q> c12 = 16777215 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 4294967295 AND +#Q> c15 = 4294967295 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 18446744073709551615 AND +#Q> c18 = 18446744073709551615 AND +#Q> c19 > 3.402823465E+38 AND +#Q> c20 > 3.402823465E+38 AND +#Q> c21 > 3.402823465E+38 AND +#Q> c22 > 1.7976931348622E+308 AND +#Q> c23 > 1.7976931348622E+308 AND +#Q> c24 > 1.7976931348622E+308 AND +#Q> c25 = 9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 9999999999 AND +#Q> # +#Q> c28 = '9999-12-31' AND +#Q> c29 = '9999-12-31 23:59:59' AND +#Q> c30 = '2038-01-08 03:14:07' AND +#Q> c31 = '838:59:59' AND +#Q> c32 = '2155' AND +#Q> # +#Q> c33 = x'ff' AND +#Q> c34 = '' AND +#Q> c35 = x'ff' AND +#Q> c36 = REPEAT(x'ff',255) AND +#Q> c37 = _utf8 x'efbfbf' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'efbfbf' AND +#Q> c40 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c41 = _ucs2 x'ffff' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'ffff' AND +#Q> c44 = REPEAT(_ucs2 x'ffff',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = x'ff' AND +#Q> c47 = REPEAT(x'ff',255) AND +#Q> c48 = REPEAT(x'ff',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'efbfbf' AND +#Q> c51 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c52 = REPEAT(_utf8 x'efbfbf',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'ffff' AND +#Q> c55 = REPEAT(_ucs2 x'ffff',255) AND +#Q> c56 = REPEAT(_ucs2 x'ffff',261) AND +#Q> # +#Q> c57 = x'ff' AND +#Q> c58 = '' AND +#Q> c59 = x'ff' AND +#Q> c60 = REPEAT(x'ff',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = x'ff' AND +#Q> c63 = REPEAT(x'ff',255) AND +#Q> c64 = REPEAT(x'ff',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'mediumtext' AND +#Q> c73 = 'mediumtext-ucs2' AND +#Q> c74 = 'longblob' AND +#Q> c75 = ' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3535,6 +4646,89 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'0' AND +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +#Q> c03 = -128 AND +#Q> c04 = 0 AND +#Q> c05 = 000 AND +#Q> c06 = false AND +#Q> c07 = -32768 AND +#Q> c08 = 0 AND +#Q> c09 = 00000 AND +#Q> c10 = -8388608 AND +#Q> c11 = 0 AND +#Q> c12 = 00000000 AND +#Q> c13 = -2147483648 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000000 AND +#Q> c16 = -9223372036854775808 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000000 AND +#Q> c19 < -3.402823465E+38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000 AND +#Q> c22 < -1.7976931348622E+308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 0000000000000000000000 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 0 AND +#Q> c27 = 0000000000 AND +#Q> # +#Q> c28 = '1000-01-01' AND +#Q> c29 = '1000-01-01 00:00:00' AND +#Q> c30 = '1970-01-02 00:00:01' AND +#Q> c31 = '-838:59:59' AND +#Q> c32 = '1901' AND +#Q> # +#Q> c33 = '' AND +#Q> c34 = '' AND +#Q> c35 = '' AND +#Q> c36 = '' AND +#Q> c37 = '' AND +#Q> c38 = '' AND +#Q> c39 = '' AND +#Q> c40 = '' AND +#Q> c41 = '' AND +#Q> c42 = '' AND +#Q> c43 = '' AND +#Q> c44 = '' AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = '' AND +#Q> c47 = '' AND +#Q> c48 = '' AND +#Q> c49 = '' AND +#Q> c50 = '' AND +#Q> c51 = '' AND +#Q> c52 = '' AND +#Q> c53 = '' AND +#Q> c54 = '' AND +#Q> c55 = '' AND +#Q> c56 = '' AND +#Q> # +#Q> # this does not reproduce the inserted value: c57 = '' AND +#Q> c58 = '' AND +#Q> # this does not reproduce the inserted value: c59 = '' AND +#Q> # this does not reproduce the inserted value: c60 = '' AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = '' AND +#Q> c63 = '' AND +#Q> c64 = '' AND +#Q> # +#Q> c65 = '' AND +#Q> c66 = '' AND +#Q> c67 = '' AND +#Q> c68 = '' AND +#Q> c69 = '' AND +#Q> c70 = '' AND +#Q> c71 = '' AND +#Q> c72 = '' AND +#Q> c73 = '' A #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3630,6 +4824,92 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 0 AND +#Q> c05 = 001 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 0 AND +#Q> c09 = 00001 AND +#Q> c10 = 8388607 AND +#Q> c11 = 0 AND +#Q> c12 = 00000001 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000001 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000001 AND +#Q> c19 > -1.175494352E-38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000001 AND +#Q> c22 > -2.2250738585073E-308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 00000000000000000000001 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 0000000001 AND +#Q> # +#Q> c28 = '2008-08-04' AND +#Q> c29 = '2008-08-04 16:18:06' AND +#Q> c30 = '2008-08-04 16:18:24' AND +#Q> c31 = '16:18:47' AND +#Q> c32 = '2008' AND +#Q> # +#Q> c33 = 'a' AND +#Q> c34 = '' AND +#Q> c35 = 'e' AND +#Q> c36 = REPEAT('i',255) AND +#Q> c37 = _utf8 x'c3a4' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'c3b6' AND +#Q> c40 = REPEAT(_utf8 x'c3bc',255) AND +#Q> c41 = _ucs2 x'00e4' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'00f6' AND +#Q> c44 = REPEAT(_ucs2 x'00fc',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = 'a' AND +#Q> c47 = REPEAT('e',255) AND +#Q> c48 = REPEAT('i',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'c3a4' AND +#Q> c51 = REPEAT(_utf8 x'c3b6',255) AND +#Q> c52 = REPEAT(_utf8 x'c3bc',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'00e4' AND +#Q> c55 = REPEAT(_ucs2 x'00f6',255) AND +#Q> c56 = REPEAT(_ucs2 x'00fc',261) AND +#Q> # +#Q> c57 = '0' AND +#Q> c58 = '' AND +#Q> c59 = '1' AND +#Q> c60 = REPEAT('1',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = 'b' AND +#Q> c63 = REPEAT('c',255) AND +#Q> c64 = REPEAT('\'',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'mediumtext' AND +#Q> c73 = 'mediumtext-ucs2' AND +#Q> c74 = 'longblob' AND +#Q> c75 = 'longtext' #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3725,6 +5005,90 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 IS NULL AND +#Q> c02 IS NULL AND +#Q> c03 IS NULL AND +#Q> c04 IS NULL AND +#Q> c05 IS NULL AND +#Q> c06 IS NULL AND +#Q> c07 IS NULL AND +#Q> c08 IS NULL AND +#Q> c09 IS NULL AND +#Q> c10 IS NULL AND +#Q> c11 IS NULL AND +#Q> c12 IS NULL AND +#Q> c13 IS NULL AND +#Q> c14 IS NULL AND +#Q> c15 IS NULL AND +#Q> c16 IS NULL AND +#Q> c17 IS NULL AND +#Q> c18 IS NULL AND +#Q> c19 IS NULL AND +#Q> c20 IS NULL AND +#Q> c21 IS NULL AND +#Q> c22 IS NULL AND +#Q> c23 IS NULL AND +#Q> c24 IS NULL AND +#Q> c25 IS NULL AND +#Q> c26 IS NULL AND +#Q> c27 IS NULL AND +#Q> # +#Q> c28 IS NULL AND +#Q> c29 IS NULL AND +#Q> # this got a timestamp instead of NULL: c30 IS NULL AND +#Q> c31 IS NULL AND +#Q> c32 IS NULL AND +#Q> # +#Q> c33 IS NULL AND +#Q> c34 IS NULL AND +#Q> c35 IS NULL AND +#Q> c36 IS NULL AND +#Q> c37 IS NULL AND +#Q> c38 IS NULL AND +#Q> c39 IS NULL AND +#Q> c40 IS NULL AND +#Q> c41 IS NULL AND +#Q> c42 IS NULL AND +#Q> c43 IS NULL AND +#Q> c44 IS NULL AND +#Q> # +#Q> c45 IS NULL AND +#Q> c46 IS NULL AND +#Q> c47 IS NULL AND +#Q> c48 IS NULL AND +#Q> c49 IS NULL AND +#Q> c50 IS NULL AND +#Q> c51 IS NULL AND +#Q> c52 IS NULL AND +#Q> c53 IS NULL AND +#Q> c54 IS NULL AND +#Q> c55 IS NULL AND +#Q> c56 IS NULL AND +#Q> # +#Q> c57 IS NULL AND +#Q> c58 IS NULL AND +#Q> c59 IS NULL AND +#Q> c60 IS NULL AND +#Q> # +#Q> c61 IS NULL AND +#Q> c62 IS NULL AND +#Q> c63 IS NULL AND +#Q> c64 IS NULL AND +#Q> # +#Q> c65 IS NULL AND +#Q> c66 IS NULL AND +#Q> c67 IS NULL AND +#Q> c68 IS NULL AND +#Q> c69 IS NULL AND +#Q> c70 IS NULL AND +#Q> c71 IS NULL AND +#Q> c72 IS NULL AND +#Q> c73 IS NULL AND +#Q> c74 IS NUL #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -3944,6 +5308,18 @@ crn INT -- row number BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES +#Q> ('2008-08-01','VARCHAR-01',1), +#Q> ('2008-08-02','VARCHAR-02',2), +#Q> ('2008-08-03','VARCHAR-03',3), +#Q> ('2008-08-04','VARCHAR-04',4), +#Q> ('2008-08-05','VARCHAR-05',5), +#Q> ('2008-08-06','VARCHAR-06',6), +#Q> ('2008-08-07','VARCHAR-07',7), +#Q> ('2008-08-08','VARCHAR-08',8), +#Q> ('2008-08-09','VARCH #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4003,6 +5379,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c28 = ADDDATE(c28,10) WHERE crn < 8 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -4080,6 +5459,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE crn < 8 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -4353,6 +5735,18 @@ c_3_n INT -- row number BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES +#Q> ('2008-01-01','VARCHAR-01-01',11), +#Q> ('2008-01-02','VARCHAR-01-02',2), +#Q> ('2008-01-03','VARCHAR-01-03',3), +#Q> ('2008-01-04','VARCHAR-01-04',4), +#Q> ('2008-01-05','VARCHAR-01-05',5), +#Q> ('2008-01-06','VARCHAR-01-06',6), +#Q> ('2008-01-07','VARCHAR-01-07',7), +#Q> ('2008-01-08','VARCHAR-01-08',18), +#Q> ('2008-01-09','VARCHAR-0 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4412,6 +5806,18 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES +#Q> ('2008-02-01','VARCHAR-02-01',21), +#Q> ('2008-02-02','VARCHAR-02-02',2), +#Q> ('2008-02-03','VARCHAR-02-03',3), +#Q> ('2008-02-04','VARCHAR-02-04',4), +#Q> ('2008-02-05','VARCHAR-02-05',5), +#Q> ('2008-02-06','VARCHAR-02-06',6), +#Q> ('2008-02-07','VARCHAR-02-07',7), +#Q> ('2008-02-08','VARCHAR-02-08',28), +#Q> ('2008-02-09','VARCHAR-0 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4471,6 +5877,18 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t3 VALUES +#Q> ('2008-03-01','VARCHAR-03-01',31), +#Q> ('2008-03-02','VARCHAR-03-02',2), +#Q> ('2008-03-03','VARCHAR-03-03',3), +#Q> ('2008-03-04','VARCHAR-03-04',4), +#Q> ('2008-03-05','VARCHAR-03-05',5), +#Q> ('2008-03-06','VARCHAR-03-06',6), +#Q> ('2008-03-07','VARCHAR-03-07',7), +#Q> ('2008-03-08','VARCHAR-03-08',38), +#Q> ('2008-03-09','VARCHAR-0 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -4530,6 +5948,13 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1,t2,t3 SET +#Q> c_1_1 = ADDDATE(c_1_1,INTERVAL 10 YEAR), +#Q> c_2_1 = ADDDATE(c_2_1,INTERVAL 20 YEAR), +#Q> c_3_1 = ADDDATE(c_3_1,INTERVAL 30 YEAR) +#Q> WHERE c_1_n = c_2_n AND c_2_n = c #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # @@ -4714,6 +6139,10 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3 +#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_ #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # @@ -4925,6 +6354,11 @@ c3 VARCHAR(60) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> LOAD DATA INFILE '../../std_data/loaddata5.dat' +#Q> INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (c1,c2) +#Q> SET c3 = 'Wo #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result index 9d8de92efdf..b09727075a1 100644 --- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result @@ -175,6 +175,9 @@ c2 VARCHAR(20) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -191,6 +194,9 @@ BEGIN ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c1 = c1 + 10 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -216,6 +222,9 @@ BEGIN ### @1=13 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c1 = 12 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -248,6 +257,9 @@ TRUNCATE TABLE t1 BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -274,6 +286,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t2 SET c1 = c1 + 10 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -309,6 +324,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t2 WHERE c1 = 12 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -327,6 +345,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -343,6 +364,9 @@ BEGIN ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c1 = c1 + 10 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -368,6 +392,9 @@ BEGIN ### @1=13 /* INT meta=0 nullable=1 is_null=0 */ ### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c1 = 12 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -400,6 +427,9 @@ TRUNCATE TABLE t2 BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3') #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -426,6 +456,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t2 SET c1 = c1 + 10 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -461,6 +494,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t2 WHERE c1 = 12 #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F diff --git a/mysql-test/suite/binlog/r/binlog_row_annotate.result b/mysql-test/suite/binlog/r/binlog_row_annotate.result index 3da1d9877f4..bc59d6d2f42 100644 --- a/mysql-test/suite/binlog/r/binlog_row_annotate.result +++ b/mysql-test/suite/binlog/r/binlog_row_annotate.result @@ -42,28 +42,35 @@ FLUSH LOGS; ##################################################################################### include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid # # GTID #-#-# -master-bin.000001 # Query # # CREATE DATABASE test1 -master-bin.000001 # Gtid # # GTID #-#-# -master-bin.000001 # Query # # CREATE DATABASE test2 -master-bin.000001 # Gtid # # GTID #-#-# -master-bin.000001 # Query # # CREATE DATABASE test3 -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Table_map # # table_id: # (test1.t1) -master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F -master-bin.000001 # Query # # COMMIT -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Annotate_rows # # INSERT INTO test2.t2 VALUES (1), (2), (3) -master-bin.000001 # Table_map # # table_id: # (test2.t2) -master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F -master-bin.000001 # Query # # COMMIT -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Annotate_rows # # INSERT INTO test3.t3 VALUES (1), (2), (3) -master-bin.000001 # Table_map # # table_id: # (test3.t3) -master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F -master-bin.000001 # Query # # COMMIT -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Annotate_rows # # DELETE test1.t1, test2.t2 +master-bin.000001 # Gtid 1 # GTID 0-1-1 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS test1 +master-bin.000001 # Gtid 1 # GTID 0-1-2 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS test2 +master-bin.000001 # Gtid 1 # GTID 0-1-3 +master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS test3 +master-bin.000001 # Gtid 1 # GTID 0-1-4 +master-bin.000001 # Query 1 # CREATE DATABASE test1 +master-bin.000001 # Gtid 1 # GTID 0-1-5 +master-bin.000001 # Query 1 # CREATE DATABASE test2 +master-bin.000001 # Gtid 1 # GTID 0-1-6 +master-bin.000001 # Query 1 # CREATE DATABASE test3 +master-bin.000001 # Gtid 1 # BEGIN GTID 0-1-7 +master-bin.000001 # Annotate_rows 1 # INSERT INTO test1.t1 VALUES (1), (2), (3) +master-bin.000001 # Table_map 1 # table_id: # (test1.t1) +master-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F +master-bin.000001 # Query 1 # COMMIT +master-bin.000001 # Gtid 1 # BEGIN GTID 0-1-8 +master-bin.000001 # Annotate_rows 1 # INSERT INTO test2.t2 VALUES (1), (2), (3) +master-bin.000001 # Table_map 1 # table_id: # (test2.t2) +master-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F +master-bin.000001 # Query 1 # COMMIT +master-bin.000001 # Gtid 1 # BEGIN GTID 0-1-9 +master-bin.000001 # Annotate_rows 1 # INSERT INTO test3.t3 VALUES (1), (2), (3) +master-bin.000001 # Table_map 1 # table_id: # (test3.t3) +master-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F +master-bin.000001 # Query 1 # COMMIT +master-bin.000001 # Gtid 1 # BEGIN GTID 0-1-10 +master-bin.000001 # Annotate_rows 1 # DELETE test1.t1, test2.t2 FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3 WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a master-bin.000001 # Table_map # # table_id: # (test1.t1) @@ -146,6 +153,9 @@ CREATE DATABASE test3 BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) #010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F @@ -367,6 +377,9 @@ CREATE DATABASE test1 BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) #010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F @@ -531,6 +544,7 @@ CREATE DATABASE test3 BEGIN /*!*/; # at # +# at # #010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F @@ -750,6 +764,9 @@ CREATE DATABASE test3 BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) #010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F @@ -971,6 +988,9 @@ CREATE DATABASE test1 BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) #010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F diff --git a/mysql-test/suite/binlog/r/binlog_row_binlog.result b/mysql-test/suite/binlog/r/binlog_row_binlog.result index 25b6e7351a2..eb85c0f6310 100644 --- a/mysql-test/suite/binlog/r/binlog_row_binlog.result +++ b/mysql-test/suite/binlog/r/binlog_row_binlog.result @@ -15,10 +15,12 @@ master-bin.000001 # Query # # use `test`; create table t1 (a int) engine=innodb master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t2 (a int) engine=innodb master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert t1 values (5) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert t2 values (5) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -33,204 +35,304 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (n int) engine=innodb master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(100 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(99 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(98 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(97 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(96 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(95 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(94 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(93 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(92 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(91 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(90 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(89 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(88 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(87 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(86 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(85 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(84 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(83 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(82 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(81 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(80 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(79 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(78 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(77 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(76 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(75 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(74 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(73 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(72 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(71 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(70 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(69 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(68 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(67 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(66 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(65 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(64 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(63 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(62 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(61 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(60 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(59 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(58 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(57 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(56 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(55 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(54 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(53 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(52 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(51 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(50 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(49 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(48 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(47 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(46 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(45 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(44 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(43 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(42 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(41 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(40 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(39 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(38 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(37 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(36 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(35 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(34 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(33 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(32 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(31 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(30 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(29 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(28 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(27 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(26 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(25 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(24 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(23 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(22 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(21 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(20 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(19 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(18 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(17 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(16 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(15 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(14 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(13 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(12 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(11 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(10 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(9 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(8 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(7 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(6 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(5 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(4 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(3 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(2 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(1 + 4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -255,10 +357,13 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(n int) engine=innodb master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -282,204 +387,304 @@ master-bin.000001 # Query # # use `test`; create table t1 (a int, b char(255)) e master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; flush status master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values( 100, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 99, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 98, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 97, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 96, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 95, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 94, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 93, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 92, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 91, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 90, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 89, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 88, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 87, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 86, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 85, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 84, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 83, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 82, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 81, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 80, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 79, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 78, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 77, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 76, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 75, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 74, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 73, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 72, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 71, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 70, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 69, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 68, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 67, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 66, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 65, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 64, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 63, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 62, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 61, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 60, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 59, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 58, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 57, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 56, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 55, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 54, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 53, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 52, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 51, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 50, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 49, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 48, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 47, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 46, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 45, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 44, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 43, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 42, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 41, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 40, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 39, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 38, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 37, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 36, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 35, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 34, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 33, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 32, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 31, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 30, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 29, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 28, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 27, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 26, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 25, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 24, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 23, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 22, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 21, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 20, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 19, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 18, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 17, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 16, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 15, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 14, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 13, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 12, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 11, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 10, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 9, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 8, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 7, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 6, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 5, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 4, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 3, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 2, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 1, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -501,6 +706,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (9999999999999999,14632475938453979136) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -646,6 +852,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (id tinyint auto_increment primary key) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(5) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -654,18 +861,22 @@ master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (id tinyint auto_increment primary key) engine=myisam master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(5),(null) /* Insert_id 128 */ master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert ignore into t1 values (4),(null) /* Insert_id 128 */ master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(3),(null) /* Insert_id 5 */ master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert ignore into t1 values(2),(null) /* Insert_id 5 */ master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -683,17 +894,16 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t3` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO user SET host='localhost', user='@#@', password=password('Just a test') master-bin.000001 # Table_map # # table_id: # (mysql.user) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE user SET password=password('Another password') WHERE host='localhost' AND user='@#@' master-bin.000001 # Table_map # # table_id: # (mysql.user) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Table_map # # table_id: # (mysql.user) -master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F -master-bin.000001 # Query # # COMMIT +master-bin.000001 # Rotate # # master-bin.000002;pos=POS drop table t1,t2,t3,tt1; reset master; create table t1 (a int not null auto_increment, primary key (a)) engine=myisam; @@ -745,7 +955,7 @@ insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); *** show new binlog index after rotating *** -File master-bin.000002 +File master-bin.000003 drop table t3; # # Bug #45998: database crashes when running "create as select" @@ -779,10 +989,15 @@ Log_name Pos Event_type Server_id End_log_pos Info # # Gtid 1 # GTID 0-1-1 # # Query 1 # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) # # Gtid 1 # BEGIN GTID 0-1-2 +# # Annotate_rows 1 # INSERT INTO t1 VALUES (1) # # Table_map 1 # table_id: # (test.t1) # # Write_rows_v1 1 # table_id: # flags: STMT_END_F # # Query 1 # COMMIT # # Gtid 1 # BEGIN GTID 0-1-3 +# # Annotate_rows 1 # BINLOG ' +3u9kSBMUAAAAKQAAAJEBAAAAABoAAAAAAAAABHRlc3QAAnQxAAEDAAA= +3u9kSBcUAAAAIgAAALMBAAAQABoAAAAAAAEAAf/+AgAAAA== +' # # Table_map 1 # table_id: # (test.t1) # # Write_rows_v1 1 # table_id: # flags: STMT_END_F # # Query 1 # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result b/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result index 9a2fbfb9d6e..023902ea453 100644 --- a/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result +++ b/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result @@ -6,6 +6,7 @@ insert into t2 values (@v); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 values (@v) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -104,6 +105,9 @@ CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8) BEGIN /*!*/; # at # +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(i1)') #700101 6:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #700101 6:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -121,6 +125,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(i2)') #700101 6:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #700101 6:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -138,6 +145,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(i3)') #700101 6:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #700101 6:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -155,6 +165,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(p1)') #700101 6:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #700101 6:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -172,6 +185,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(p2)') #700101 6:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #700101 6:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -189,6 +205,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(p3)') #700101 6:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #700101 6:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F diff --git a/mysql-test/suite/binlog/r/binlog_row_drop_tbl.result b/mysql-test/suite/binlog/r/binlog_row_drop_tbl.result index 056e658b1fc..574b1a7980a 100644 --- a/mysql-test/suite/binlog/r/binlog_row_drop_tbl.result +++ b/mysql-test/suite/binlog/r/binlog_row_drop_tbl.result @@ -20,6 +20,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES(1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result b/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result index d82a9654261..4b35170b2db 100644 --- a/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result +++ b/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result @@ -61,6 +61,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 ( i text ) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES ('1') master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_row_insert_select.result b/mysql-test/suite/binlog/r/binlog_row_insert_select.result index 9a5ca5f2352..d92e303aa9f 100644 --- a/mysql-test/suite/binlog/r/binlog_row_insert_select.result +++ b/mysql-test/suite/binlog/r/binlog_row_insert_select.result @@ -9,6 +9,7 @@ ERROR 23000: Duplicate entry '2' for key 'a' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 select * from t2 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result b/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result index ca5faa9f5a3..0bff58fda2a 100644 --- a/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result +++ b/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result @@ -13,10 +13,12 @@ commit; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -32,6 +34,7 @@ Warning 1196 Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -50,13 +53,16 @@ commit; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `my_savepoint` @@ -81,16 +87,20 @@ a include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(5) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(6) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(7) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -111,6 +121,7 @@ get_lock("a",10) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -122,10 +133,12 @@ insert into t2 select * from t1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(9) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -138,10 +151,12 @@ insert into t2 select * from t1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(10) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -150,14 +165,17 @@ commit; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(10) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(11) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -172,8 +190,10 @@ commit; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(12) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -198,6 +218,7 @@ commit; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(14) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `my_savepoint` @@ -220,9 +241,11 @@ a include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(16) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(18) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -284,23 +307,28 @@ get_lock("lock1",60) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(16) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(18) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # delete from t1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; alter table t2 engine=MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 values (20) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -309,10 +337,12 @@ master-bin.000001 # Query # # use `test`; DROP TABLE `t1`,`t2` /* generated by s master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t0 (n int) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert t0 select * from t1 master-bin.000001 # Table_map # # table_id: # (test.t0) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t0 select GET_LOCK("lock1",0) master-bin.000001 # Table_map # # table_id: # (test.t0) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -407,12 +437,14 @@ DROP TABLE t1,t2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (1,1),(1,2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t2` /* generated by server */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (3,3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -421,34 +453,41 @@ master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t2` /* generated master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (4,4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE table t2 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (5,5) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (6,6) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (7,7) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (8,8) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (9,9) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (10,10) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -535,6 +574,7 @@ ERROR 23000: Duplicate entry '2' for key 'PRIMARY' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F @@ -554,6 +594,7 @@ count(*) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F @@ -611,6 +652,7 @@ ERROR 23000: Duplicate entry '4' for key 'b' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -777,6 +819,7 @@ ERROR 23000: Duplicate entry '2' for key 'PRIMARY' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F @@ -795,6 +838,7 @@ count(*) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F @@ -849,6 +893,7 @@ ERROR 23000: Duplicate entry '4' for key 'b' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # diff --git a/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result index 5991fd6f37f..87c444004fe 100644 --- a/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result +++ b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result @@ -65,6 +65,9 @@ CREATE TABLE t1 (a INT, b INT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1,1),(2,2) #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -96,6 +99,9 @@ CREATE TABLE t2 (a INT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES (1),(2) #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test2`.`t2` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -116,6 +122,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM test1.t1 WHERE a=1 #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -143,6 +152,9 @@ CREATE TABLE t3 (a INT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t3 VALUES (1),(2) #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test3`.`t3` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -163,6 +175,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (3,3) #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -181,6 +196,10 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1 +#Q> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -215,6 +234,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM test3.t3 WHERE a=1 #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test3`.`t3` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -277,6 +299,9 @@ CREATE TABLE t1 (a INT, b INT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1,1),(2,2) #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -308,6 +333,9 @@ CREATE TABLE t2 (a INT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES (1),(2) #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test2`.`t2` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -328,6 +356,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM test1.t1 WHERE a=1 #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -355,6 +386,9 @@ CREATE TABLE t3 (a INT) BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t3 VALUES (1),(2) #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test3`.`t3` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -375,6 +409,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (3,3) #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -393,6 +430,10 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1 +#Q> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -427,6 +468,9 @@ COMMIT BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM test3.t3 WHERE a=1 #010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test3`.`t3` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F diff --git a/mysql-test/suite/binlog/r/binlog_stm_binlog.result b/mysql-test/suite/binlog/r/binlog_stm_binlog.result index 07f9350a8d4..421cba1ad4d 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_binlog.result +++ b/mysql-test/suite/binlog/r/binlog_stm_binlog.result @@ -598,6 +598,10 @@ Log_name Pos Event_type Server_id End_log_pos Info # # Query 1 # use `test`; INSERT INTO t1 VALUES (1) # # Query 1 # COMMIT # # Gtid 1 # BEGIN GTID 0-1-3 +# # Annotate_rows 1 # BINLOG ' +3u9kSBMUAAAAKQAAAJEBAAAAABoAAAAAAAAABHRlc3QAAnQxAAEDAAA= +3u9kSBcUAAAAIgAAALMBAAAQABoAAAAAAAEAAf/+AgAAAA== +' # # Table_map 1 # table_id: # (test.t1) # # Write_rows_v1 1 # table_id: # flags: STMT_END_F # # Query 1 # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result b/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result index 3b144755aa3..8340420f5ad 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result +++ b/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result @@ -85,6 +85,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE t1 ( i text ) master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE ttmp1 ( i text ) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES ('1') master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_stm_row.result b/mysql-test/suite/binlog/r/binlog_stm_row.result index 663af848b61..2b2446273ab 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_row.result +++ b/mysql-test/suite/binlog/r/binlog_stm_row.result @@ -87,6 +87,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES (4) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 SELECT * FROM t2 WHERE GET_LOCK('Bug#34306', 120) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_truncate_myisam.result b/mysql-test/suite/binlog/r/binlog_truncate_myisam.result index 56944e6ee0c..cdaab2980c1 100644 --- a/mysql-test/suite/binlog/r/binlog_truncate_myisam.result +++ b/mysql-test/suite/binlog/r/binlog_truncate_myisam.result @@ -42,10 +42,12 @@ connection default; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_xa_recover.result b/mysql-test/suite/binlog/r/binlog_xa_recover.result index 2c0e677bf1c..25aa1389b71 100644 --- a/mysql-test/suite/binlog/r/binlog_xa_recover.result +++ b/mysql-test/suite/binlog/r/binlog_xa_recover.result @@ -50,6 +50,7 @@ master-bin.000003 # Gtid_list # # [#-#-#] master-bin.000003 # Binlog_checkpoint # # master-bin.000002 master-bin.000003 # Binlog_checkpoint # # master-bin.000003 master-bin.000003 # Gtid # # BEGIN GTID #-#-# +master-bin.000003 # Annotate_rows # # INSERT INTO t1 VALUES (102, REPEAT("x", 4100)) master-bin.000003 # Table_map # # table_id: # (test.t1) master-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000003 # Xid # # COMMIT /* XID */ @@ -61,6 +62,7 @@ master-bin.000004 # Gtid_list # # [#-#-#] master-bin.000004 # Binlog_checkpoint # # master-bin.000003 master-bin.000004 # Binlog_checkpoint # # master-bin.000004 master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (1, REPEAT("x", 4100)) master-bin.000004 # Table_map # # table_id: # (test.t1) master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000004 # Xid # # COMMIT /* XID */ @@ -71,10 +73,12 @@ master-bin.000005 # Format_desc # # SERVER_VERSION, BINLOG_VERSION master-bin.000005 # Gtid_list # # [#-#-#] master-bin.000005 # Binlog_checkpoint # # master-bin.000004 master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Annotate_rows # # INSERT INTO t1 VALUES (2, NULL) master-bin.000005 # Table_map # # table_id: # (test.t1) master-bin.000005 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000005 # Xid # # COMMIT /* XID */ master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Annotate_rows # # INSERT INTO t1 VALUES (3, REPEAT("x", 4100)) master-bin.000005 # Table_map # # table_id: # (test.t1) master-bin.000005 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000005 # Xid # # COMMIT /* XID */ @@ -135,6 +139,7 @@ master-bin.000004 # Format_desc # # SERVER_VERSION, BINLOG_VERSION master-bin.000004 # Gtid_list # # [#-#-#] master-bin.000004 # Binlog_checkpoint # # master-bin.000001 master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (13, NULL) master-bin.000004 # Table_map # # table_id: # (test.t1) master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000004 # Xid # # COMMIT /* XID */ @@ -158,6 +163,7 @@ master-bin.000004 # Format_desc # # SERVER_VERSION, BINLOG_VERSION master-bin.000004 # Gtid_list # # [#-#-#] master-bin.000004 # Binlog_checkpoint # # master-bin.000001 master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (13, NULL) master-bin.000004 # Table_map # # table_id: # (test.t1) master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000004 # Xid # # COMMIT /* XID */ @@ -225,6 +231,7 @@ master-bin.000004 # Gtid_list # # [#-#-#] master-bin.000004 # Binlog_checkpoint # # master-bin.000003 master-bin.000004 # Binlog_checkpoint # # master-bin.000004 master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (24, REPEAT("x", 4100)) master-bin.000004 # Table_map # # table_id: # (test.t1) master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000004 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/csv/csv.result b/mysql-test/suite/csv/csv.result index 833cd688be5..3340b3a2d46 100644 --- a/mysql-test/suite/csv/csv.result +++ b/mysql-test/suite/csv/csv.result @@ -1,5 +1,6 @@ call mtr.add_suppression("Table 'test_repair_table2' is marked as crashed and should be repaired"); call mtr.add_suppression("Table 'test_repair_table4' is marked as crashed and should be repaired"); +call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); drop table if exists t1,t2,t3,t4; CREATE TABLE t1 ( Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL, diff --git a/mysql-test/suite/csv/csv.test b/mysql-test/suite/csv/csv.test index f274eea3236..413ffdc5cfa 100644 --- a/mysql-test/suite/csv/csv.test +++ b/mysql-test/suite/csv/csv.test @@ -6,6 +6,7 @@ call mtr.add_suppression("Table 'test_repair_table2' is marked as crashed and should be repaired"); call mtr.add_suppression("Table 'test_repair_table4' is marked as crashed and should be repaired"); +call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); # # Simple select test diff --git a/mysql-test/suite/galera/r/galera_forced_binlog_format.result b/mysql-test/suite/galera/r/galera_forced_binlog_format.result index e5bd486eadc..b94e6530886 100644 --- a/mysql-test/suite/galera/r/galera_forced_binlog_format.result +++ b/mysql-test/suite/galera/r/galera_forced_binlog_format.result @@ -16,10 +16,12 @@ mysqld-bin.000001 Binlog_checkpoint 1 mysqld-bin.000001 mysqld-bin.000001 Gtid 1 GTID 0-1-1 mysqld-bin.000001 Query 1 use `test`; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB mysqld-bin.000001 Gtid 1 BEGIN GTID 0-1-2 +mysqld-bin.000001 Annotate_rows 1 INSERT INTO t1 VALUES (1) mysqld-bin.000001 Table_map 1 table_id: ### (test.t1) mysqld-bin.000001 Write_rows_v1 1 table_id: ### flags: STMT_END_F mysqld-bin.000001 Xid 1 COMMIT /* xid=### */ mysqld-bin.000001 Gtid 1 BEGIN GTID 0-1-3 +mysqld-bin.000001 Annotate_rows 1 INSERT INTO t1 VALUES (2) mysqld-bin.000001 Table_map 1 table_id: ### (test.t1) mysqld-bin.000001 Write_rows_v1 1 table_id: ### flags: STMT_END_F mysqld-bin.000001 Xid 1 COMMIT /* xid=### */ diff --git a/mysql-test/suite/galera/r/galera_log_bin.result b/mysql-test/suite/galera/r/galera_log_bin.result index 576a72eb55f..a6f0ef12be1 100644 --- a/mysql-test/suite/galera/r/galera_log_bin.result +++ b/mysql-test/suite/galera/r/galera_log_bin.result @@ -13,21 +13,24 @@ COUNT(*) = 2 connection node_1; ALTER TABLE t1 ADD COLUMN f2 INTEGER; FLUSH LOGS; -SHOW BINLOG EVENTS IN 'mysqld-bin.000002' LIMIT 4,18; +SHOW BINLOG EVENTS IN 'mysqld-bin.000002' LIMIT 4,21; Log_name Pos Event_type Server_id End_log_pos Info mysqld-bin.000002 # Gtid # # GTID 0-1-1 mysqld-bin.000002 # Query # # use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB mysqld-bin.000002 # Gtid # # BEGIN GTID 0-1-2 +mysqld-bin.000002 # Annotate_rows # # INSERT INTO t1 VALUES (1) mysqld-bin.000002 # Table_map # # table_id: # (test.t1) mysqld-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F mysqld-bin.000002 # Xid # # COMMIT /* xid=# */ mysqld-bin.000002 # Gtid # # GTID 0-1-3 mysqld-bin.000002 # Query # # use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB mysqld-bin.000002 # Gtid # # BEGIN GTID 0-1-4 +mysqld-bin.000002 # Annotate_rows # # INSERT INTO t2 VALUES (1) mysqld-bin.000002 # Table_map # # table_id: # (test.t2) mysqld-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F mysqld-bin.000002 # Xid # # COMMIT /* xid=# */ mysqld-bin.000002 # Gtid # # BEGIN GTID 0-1-5 +mysqld-bin.000002 # Annotate_rows # # INSERT INTO t2 VALUES (1) mysqld-bin.000002 # Table_map # # table_id: # (test.t2) mysqld-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F mysqld-bin.000002 # Xid # # COMMIT /* xid=# */ @@ -37,21 +40,24 @@ connection node_2; SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; COUNT(*) = 2 1 -SHOW BINLOG EVENTS IN 'mysqld-bin.000003' LIMIT 3,18; +SHOW BINLOG EVENTS IN 'mysqld-bin.000003' LIMIT 3,21; Log_name Pos Event_type Server_id End_log_pos Info mysqld-bin.000003 # Gtid # # GTID 0-1-1 mysqld-bin.000003 # Query # # use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB mysqld-bin.000003 # Gtid # # BEGIN GTID 0-1-2 +mysqld-bin.000003 # Annotate_rows # # INSERT INTO t1 VALUES (1) mysqld-bin.000003 # Table_map # # table_id: # (test.t1) mysqld-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F mysqld-bin.000003 # Xid # # COMMIT /* xid=# */ mysqld-bin.000003 # Gtid # # GTID 0-1-3 mysqld-bin.000003 # Query # # use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB mysqld-bin.000003 # Gtid # # BEGIN GTID 0-1-4 +mysqld-bin.000003 # Annotate_rows # # INSERT INTO t2 VALUES (1) mysqld-bin.000003 # Table_map # # table_id: # (test.t2) mysqld-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F mysqld-bin.000003 # Xid # # COMMIT /* xid=# */ mysqld-bin.000003 # Gtid # # BEGIN GTID 0-1-5 +mysqld-bin.000003 # Annotate_rows # # INSERT INTO t2 VALUES (1) mysqld-bin.000003 # Table_map # # table_id: # (test.t2) mysqld-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F mysqld-bin.000003 # Xid # # COMMIT /* xid=# */ diff --git a/mysql-test/suite/galera/t/galera_log_bin.test b/mysql-test/suite/galera/t/galera_log_bin.test index d2d3987d711..2f0faa761c5 100644 --- a/mysql-test/suite/galera/t/galera_log_bin.test +++ b/mysql-test/suite/galera/t/galera_log_bin.test @@ -24,13 +24,13 @@ ALTER TABLE t1 ADD COLUMN f2 INTEGER; FLUSH LOGS; --replace_column 2 # 4 # 5 # --replace_regex /table_id: [0-9]+/table_id: #/ /xid=[0-9]+/xid=#/ -SHOW BINLOG EVENTS IN 'mysqld-bin.000002' LIMIT 4,18; +SHOW BINLOG EVENTS IN 'mysqld-bin.000002' LIMIT 4,21; --connection node_2 SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1'; --replace_column 2 # 4 # 5 # --replace_regex /table_id: [0-9]+/table_id: #/ /xid=[0-9]+/xid=#/ -SHOW BINLOG EVENTS IN 'mysqld-bin.000003' LIMIT 3,18; +SHOW BINLOG EVENTS IN 'mysqld-bin.000003' LIMIT 3,21; DROP TABLE t1; DROP TABLE t2; diff --git a/mysql-test/suite/innodb/r/innodb_bug42419.result b/mysql-test/suite/innodb/r/innodb_bug42419.result index cf10ef3e12a..41c400bc74d 100644 --- a/mysql-test/suite/innodb/r/innodb_bug42419.result +++ b/mysql-test/suite/innodb/r/innodb_bug42419.result @@ -21,3 +21,4 @@ UPDATE t1 SET a = (SELECT new_a FROM t2_tmp WHERE t2_tmp.a = t1.a) WHERE a = 3; connection default; disconnect user2; DROP TABLE t1; +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); diff --git a/mysql-test/suite/innodb/r/innodb_defrag_binlog.result b/mysql-test/suite/innodb/r/innodb_defrag_binlog.result index 6ff32726f57..b97061cc9db 100644 --- a/mysql-test/suite/innodb/r/innodb_defrag_binlog.result +++ b/mysql-test/suite/innodb/r/innodb_defrag_binlog.result @@ -15,10 +15,12 @@ master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t1` /* generated master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(a int not null primary key auto_increment, b varchar(256), key second(b)) engine=innodb master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1, REPEAT("a", 256)) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (2, REPEAT("a", 256)) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/innodb/r/mdev-117.result b/mysql-test/suite/innodb/r/mdev-117.result index 997470fea6f..979f1ae021c 100644 --- a/mysql-test/suite/innodb/r/mdev-117.result +++ b/mysql-test/suite/innodb/r/mdev-117.result @@ -15,3 +15,4 @@ connection default; disconnect con1; drop table t1; SET GLOBAL innodb_lock_wait_timeout=default; +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); diff --git a/mysql-test/suite/innodb/r/row_lock.result b/mysql-test/suite/innodb/r/row_lock.result index 7ea09fa3bad..bfd7656d778 100644 --- a/mysql-test/suite/innodb/r/row_lock.result +++ b/mysql-test/suite/innodb/r/row_lock.result @@ -19,3 +19,5 @@ connection default; disconnect con12; disconnect con11; drop table t1,t2,t3,t4; +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); +call mtr.add_suppression("Sort aborted.*"); diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test b/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test index c807d5fbe2b..2e58b6e95e9 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test +++ b/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test @@ -728,6 +728,7 @@ call mtr.add_suppression("t1.ibd: Page .* at offset .* looks corrupted"); call mtr.add_suppression("but tablespace with that id or name does not exist"); call mtr.add_suppression("Failed to find tablespace for table '\"test_wl5522\".\"t1\"' in the cache"); call mtr.add_suppression("Could not find a valid tablespace file for 'test_wl5522.*t1'"); +call mtr.add_suppression("Index for table 't1' is corrupt; try to repair it"); --enable_query_log #cleanup diff --git a/mysql-test/suite/innodb/t/innodb_bug42419.test b/mysql-test/suite/innodb/t/innodb_bug42419.test index 788437b0394..ef350529604 100644 --- a/mysql-test/suite/innodb/t/innodb_bug42419.test +++ b/mysql-test/suite/innodb/t/innodb_bug42419.test @@ -76,3 +76,5 @@ DROP TABLE t1; # Wait till all disconnects are completed --source include/wait_until_count_sessions.inc + +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); diff --git a/mysql-test/suite/innodb/t/innodb_trx_weight.test b/mysql-test/suite/innodb/t/innodb_trx_weight.test index b72eaad345f..8af311a532e 100644 --- a/mysql-test/suite/innodb/t/innodb_trx_weight.test +++ b/mysql-test/suite/innodb/t/innodb_trx_weight.test @@ -106,3 +106,5 @@ INSERT INTO t3 SELECT * FROM t3; -- source include/innodb_trx_weight.inc DROP TABLE t1, t2, t3, t4, t5_nontrans; + +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); diff --git a/mysql-test/suite/innodb/t/mdev-117.test b/mysql-test/suite/innodb/t/mdev-117.test index 6b77a1f3379..991221b6f6f 100644 --- a/mysql-test/suite/innodb/t/mdev-117.test +++ b/mysql-test/suite/innodb/t/mdev-117.test @@ -28,3 +28,5 @@ DELETE FROM t1 WHERE col_int_key IN (1, 40000000); --disconnect con1 drop table t1; SET GLOBAL innodb_lock_wait_timeout=default; + +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); diff --git a/mysql-test/suite/innodb/t/row_lock.test b/mysql-test/suite/innodb/t/row_lock.test index d9f9a7289c4..361bce461f7 100644 --- a/mysql-test/suite/innodb/t/row_lock.test +++ b/mysql-test/suite/innodb/t/row_lock.test @@ -45,3 +45,6 @@ commit; --disconnect con12 --disconnect con11 drop table t1,t2,t3,t4; + +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); +call mtr.add_suppression("Sort aborted.*"); diff --git a/mysql-test/suite/maria/maria-recover.result b/mysql-test/suite/maria/maria-recover.result index 472d2351abe..b96cf8811db 100644 --- a/mysql-test/suite/maria/maria-recover.result +++ b/mysql-test/suite/maria/maria-recover.result @@ -8,7 +8,7 @@ OFF set global aria_recover_options=default; select @@global.aria_recover_options; @@global.aria_recover_options -NORMAL +BACKUP,QUICK set global aria_recover_options=normal; select @@global.aria_recover_options; @@global.aria_recover_options diff --git a/mysql-test/suite/maria/maria.result b/mysql-test/suite/maria/maria.result index cebb7e034b9..a8c3f6d2d88 100644 --- a/mysql-test/suite/maria/maria.result +++ b/mysql-test/suite/maria/maria.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Can't find record in '.*'"); select * from INFORMATION_SCHEMA.ENGINES where ENGINE="ARIA"; ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS Aria YES Crash-safe tables with MyISAM heritage NO NO NO diff --git a/mysql-test/suite/maria/maria.test b/mysql-test/suite/maria/maria.test index df73c8d8199..68276fc507d 100644 --- a/mysql-test/suite/maria/maria.test +++ b/mysql-test/suite/maria/maria.test @@ -6,6 +6,8 @@ -- source include/have_maria.inc -- source include/have_partition.inc +call mtr.add_suppression("Can't find record in '.*'"); + select * from INFORMATION_SCHEMA.ENGINES where ENGINE="ARIA"; let $default_engine=`select @@global.storage_engine`; diff --git a/mysql-test/suite/maria/maria3.result b/mysql-test/suite/maria/maria3.result index e6b73eb8909..6099dc9c982 100644 --- a/mysql-test/suite/maria/maria3.result +++ b/mysql-test/suite/maria/maria3.result @@ -317,7 +317,7 @@ aria_pagecache_buffer_size 8388608 aria_pagecache_division_limit 100 aria_pagecache_file_hash_size 512 aria_page_checksum OFF -aria_recover_options NORMAL +aria_recover_options BACKUP,QUICK aria_repair_threads 1 aria_sort_buffer_size 268434432 aria_stats_method nulls_unequal diff --git a/mysql-test/suite/maria/maria_notembedded.result b/mysql-test/suite/maria/maria_notembedded.result index 5617238e075..a717782830d 100644 --- a/mysql-test/suite/maria/maria_notembedded.result +++ b/mysql-test/suite/maria/maria_notembedded.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); set session storage_engine=aria; create table t1 (a int) row_format=page; insert delayed into t1 values(1); diff --git a/mysql-test/suite/maria/maria_notembedded.test b/mysql-test/suite/maria/maria_notembedded.test index f1d71e90354..29f15e81013 100644 --- a/mysql-test/suite/maria/maria_notembedded.test +++ b/mysql-test/suite/maria/maria_notembedded.test @@ -3,6 +3,8 @@ -- source include/not_embedded.inc -- source include/have_maria.inc +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); + let $default_engine=`select @@session.storage_engine`; set session storage_engine=aria; diff --git a/mysql-test/suite/optimizer_unfixed_bugs/r/bug41029.result b/mysql-test/suite/optimizer_unfixed_bugs/r/bug41029.result index ad8f67d9d18..eaad67de20c 100644 --- a/mysql-test/suite/optimizer_unfixed_bugs/r/bug41029.result +++ b/mysql-test/suite/optimizer_unfixed_bugs/r/bug41029.result @@ -1,6 +1,6 @@ select @default_binlog_format:=@@global.binlog_format; @default_binlog_format:=@@global.binlog_format -STATEMENT +MIXED set global binlog_format=row; connect con1,localhost,root,,; connect con2,localhost,root,,; diff --git a/mysql-test/suite/parts/r/partition_mdev6067.result b/mysql-test/suite/parts/r/partition_mdev6067.result index 4737d3679f3..d0ae2e30d8d 100644 --- a/mysql-test/suite/parts/r/partition_mdev6067.result +++ b/mysql-test/suite/parts/r/partition_mdev6067.result @@ -24,14 +24,17 @@ INSERT INTO t1 VALUES (4,16); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1,1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2,2), (3,8) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (4,16) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/perfschema/disabled.def b/mysql-test/suite/perfschema/disabled.def index d9e9e5bf34e..321cd7dcd16 100644 --- a/mysql-test/suite/perfschema/disabled.def +++ b/mysql-test/suite/perfschema/disabled.def @@ -22,3 +22,5 @@ binlog_edge_stmt: needs slave_relay_log_info binlog_ok_mix: needs slave_relay_log_info binlog_ok_row: needs slave_relay_log_info binlog_ok_stmt: needs slave_relay_log_info + +server_init : Nirbhay TODO: Fix the test diff --git a/mysql-test/suite/perfschema/r/binlog_mix.result b/mysql-test/suite/perfschema/r/binlog_mix.result index f5964db4c28..5d7d715ceea 100644 --- a/mysql-test/suite/perfschema/r/binlog_mix.result +++ b/mysql-test/suite/perfschema/r/binlog_mix.result @@ -35,10 +35,16 @@ master-bin.000001 # Query # # use `test`; create table test.t1 (thread_id intege master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table test.t2 (name varchar(128)) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into test.t1 +select thread_id from performance_schema.events_waits_current master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into test.t2 +select name from performance_schema.setup_instruments +where name like "wait/synch/rwlock/sql/%" + and name not in ("wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock") master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/perfschema/r/binlog_row.result b/mysql-test/suite/perfschema/r/binlog_row.result index 629421abd83..59b1b290cc6 100644 --- a/mysql-test/suite/perfschema/r/binlog_row.result +++ b/mysql-test/suite/perfschema/r/binlog_row.result @@ -35,10 +35,16 @@ master-bin.000001 # Query # # use `test`; create table test.t1 (thread_id intege master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table test.t2 (name varchar(128)) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into test.t1 +select thread_id from performance_schema.events_waits_current master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into test.t2 +select name from performance_schema.setup_instruments +where name like "wait/synch/rwlock/sql/%" + and name not in ("wait/synch/rwlock/sql/CRYPTO_dynlock_value::lock") master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/plugins/r/audit_null_debug.result b/mysql-test/suite/plugins/r/audit_null_debug.result index 840d4307fb3..9d5c7c4a02c 100644 --- a/mysql-test/suite/plugins/r/audit_null_debug.result +++ b/mysql-test/suite/plugins/r/audit_null_debug.result @@ -1,5 +1,6 @@ set @old_dbug=@@debug_dbug; call mtr.add_suppression("Index for table.*mysql.plugin.MYI"); +call mtr.add_suppression("Index for table 'plugin' is corrupt; try to repair it"); SET debug_dbug='+d,myisam_pretend_crashed_table_on_usage'; install plugin audit_null soname 'adt_null'; ERROR HY000: Index for table './mysql/plugin.MYI' is corrupt; try to repair it diff --git a/mysql-test/suite/plugins/r/qc_info.result b/mysql-test/suite/plugins/r/qc_info.result index 3115a372930..2f518a7ef65 100644 --- a/mysql-test/suite/plugins/r/qc_info.result +++ b/mysql-test/suite/plugins/r/qc_info.result @@ -28,7 +28,7 @@ set time_zone= @time_zone, default_week_format= @default_week_format, character_ select * from information_schema.query_cache_info; STATEMENT_SCHEMA STATEMENT_TEXT RESULT_BLOCKS_COUNT RESULT_BLOCKS_SIZE RESULT_BLOCKS_SIZE_USED LIMIT MAX_SORT_LENGTH GROUP_CONCAT_MAX_LENGTH CHARACTER_SET_CLIENT CHARACTER_SET_RESULT COLLATION TIMEZONE DEFAULT_WEEK_FORMAT DIV_PRECISION_INCREMENT SQL_MODE LC_TIME_NAMES CLIENT_LONG_FLAG CLIENT_PROTOCOL_41 PROTOCOL_TYPE MORE_RESULTS_EXISTS IN_TRANS AUTOCOMMIT PACKET_NUMBER test select * from t1 1 512 # -1 1011 513 binary utf32 utf32_bin Europe/Moscow 4 7 STRICT_ALL_TABLES ar_SD 1 1 # 0 0 0 # -test select * from t1 1 512 # -1 1024 1024 latin1 latin1 latin1_swedish_ci SYSTEM 0 4 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION en_US 1 1 # 0 0 1 # +test select * from t1 1 512 # -1 1024 1048576 latin1 latin1 latin1_swedish_ci SYSTEM 0 4 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION en_US 1 1 # 0 0 1 # drop table t1; select statement_schema, statement_text, result_blocks_count, result_blocks_size from information_schema.query_cache_info; statement_schema statement_text result_blocks_count result_blocks_size diff --git a/mysql-test/suite/plugins/r/qc_info_priv.result b/mysql-test/suite/plugins/r/qc_info_priv.result index 83a84bb76e9..ade6901dec5 100644 --- a/mysql-test/suite/plugins/r/qc_info_priv.result +++ b/mysql-test/suite/plugins/r/qc_info_priv.result @@ -28,7 +28,7 @@ set time_zone= @time_zone, default_week_format= @default_week_format, character_ select * from information_schema.query_cache_info; STATEMENT_SCHEMA STATEMENT_TEXT RESULT_BLOCKS_COUNT RESULT_BLOCKS_SIZE RESULT_BLOCKS_SIZE_USED LIMIT MAX_SORT_LENGTH GROUP_CONCAT_MAX_LENGTH CHARACTER_SET_CLIENT CHARACTER_SET_RESULT COLLATION TIMEZONE DEFAULT_WEEK_FORMAT DIV_PRECISION_INCREMENT SQL_MODE LC_TIME_NAMES CLIENT_LONG_FLAG CLIENT_PROTOCOL_41 PROTOCOL_TYPE MORE_RESULTS_EXISTS IN_TRANS AUTOCOMMIT PACKET_NUMBER test select * from t1 1 512 # -1 1011 513 binary utf32 utf32_bin Europe/Moscow 4 7 STRICT_ALL_TABLES ar_SD 1 1 # 0 0 0 # -test select * from t1 1 512 # -1 1024 1024 latin1 latin1 latin1_swedish_ci SYSTEM 0 4 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION en_US 1 1 # 0 0 1 # +test select * from t1 1 512 # -1 1024 1048576 latin1 latin1 latin1_swedish_ci SYSTEM 0 4 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION en_US 1 1 # 0 0 1 # create user mysqltest; connect conn1,localhost,mysqltest,,; connection conn1; diff --git a/mysql-test/suite/plugins/t/audit_null_debug.test b/mysql-test/suite/plugins/t/audit_null_debug.test index 2c457df4759..0534108b107 100644 --- a/mysql-test/suite/plugins/t/audit_null_debug.test +++ b/mysql-test/suite/plugins/t/audit_null_debug.test @@ -7,6 +7,7 @@ if (!$ADT_NULL_SO) { set @old_dbug=@@debug_dbug; call mtr.add_suppression("Index for table.*mysql.plugin.MYI"); +call mtr.add_suppression("Index for table 'plugin' is corrupt; try to repair it"); # # MySQL BUG#14485479 - INSTALL AUDIT PLUGIN HANGS IF WE TRY TO DISABLE AND ENABLED DURING DDL OPERATION diff --git a/mysql-test/suite/rpl/disabled.def b/mysql-test/suite/rpl/disabled.def index de3091a56e5..34171b98cda 100644 --- a/mysql-test/suite/rpl/disabled.def +++ b/mysql-test/suite/rpl/disabled.def @@ -13,3 +13,6 @@ rpl_spec_variables : BUG#11755836 2009-10-27 jasonh rpl_spec_variables fails on PB2 hpux rpl_get_master_version_and_clock : Bug#11766137 Jan 05 2011 joro Valgrind warnings rpl_get_master_version_and_clock rpl_partition_archive : MDEV-5077 2013-09-27 svoj Cannot exchange partition with archive table +rpl_row_binlog_max_cache_size : MDEV-11092 +rpl_blackhole : MDEV-11094 +rpl_row_mysqlbinlog : MDEV-11095 diff --git a/mysql-test/suite/rpl/r/create_or_replace_mix.result b/mysql-test/suite/rpl/r/create_or_replace_mix.result index 9029156c625..6ad37ab5e46 100644 --- a/mysql-test/suite/rpl/r/create_or_replace_mix.result +++ b/mysql-test/suite/rpl/r/create_or_replace_mix.result @@ -157,6 +157,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE `t2` ( `a` int(11) DEFAULT NULL ) +slave-bin.000001 # Annotate_rows # # create table t2 select * from t9 slave-bin.000001 # Table_map # # table_id: # (test.t2) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -168,6 +169,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE `t5` ( `a` int(11) DEFAULT NULL ) +slave-bin.000001 # Annotate_rows # # create table t5 select * from t9 slave-bin.000001 # Table_map # # table_id: # (test.t5) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -221,6 +223,7 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t1 (a int) slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # insert into t1 values (0),(1),(2) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -228,6 +231,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE `t2` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM +slave-bin.000001 # Annotate_rows # # create table t2 engine=myisam select * from t1 slave-bin.000001 # Table_map # # table_id: # (test.t2) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -235,6 +239,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE OR REPLACE TABLE `t2` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB +slave-bin.000001 # Annotate_rows # # create or replace table t2 engine=innodb select * from t1 slave-bin.000001 # Table_map # # table_id: # (test.t2) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/rpl/r/create_or_replace_row.result b/mysql-test/suite/rpl/r/create_or_replace_row.result index 78477ca4c73..ad7a537a2c9 100644 --- a/mysql-test/suite/rpl/r/create_or_replace_row.result +++ b/mysql-test/suite/rpl/r/create_or_replace_row.result @@ -19,6 +19,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t2 (a int) engine=myisam master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 values (0),(1),(2),(2) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -26,6 +27,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE `t1` ( `f1` int(1) NOT NULL ) +master-bin.000001 # Annotate_rows # # CREATE TABLE t1 AS SELECT 1 AS f1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -33,6 +35,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE OR REPLACE TABLE `t1` ( `f1` int(1) NOT NULL ) +master-bin.000001 # Annotate_rows # # CREATE OR REPLACE TABLE t1 AS SELECT 2 AS f1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -51,6 +54,7 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t2 (a int) engine=myisam slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # insert into t2 values (0),(1),(2),(2) slave-bin.000001 # Table_map # # table_id: # (test.t2) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -60,6 +64,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE `t1` ( `f1` int(1) NOT NULL ) +slave-bin.000001 # Annotate_rows # # CREATE TABLE t1 AS SELECT 1 AS f1 slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -67,6 +72,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE OR REPLACE TABLE `t1` ( `f1` int(1) NOT NULL ) +slave-bin.000001 # Annotate_rows # # CREATE OR REPLACE TABLE t1 AS SELECT 2 AS f1 slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -179,6 +185,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE `t2` ( `a` int(11) DEFAULT NULL ) +slave-bin.000001 # Annotate_rows # # create table t2 select * from t9 slave-bin.000001 # Table_map # # table_id: # (test.t2) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -190,6 +197,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE `t5` ( `a` int(11) DEFAULT NULL ) +slave-bin.000001 # Annotate_rows # # create table t5 select * from t9 slave-bin.000001 # Table_map # # table_id: # (test.t5) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -243,6 +251,7 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t1 (a int) slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # insert into t1 values (0),(1),(2) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -250,6 +259,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE `t2` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM +slave-bin.000001 # Annotate_rows # # create table t2 engine=myisam select * from t1 slave-bin.000001 # Table_map # # table_id: # (test.t2) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -257,6 +267,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE OR REPLACE TABLE `t2` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB +slave-bin.000001 # Annotate_rows # # create or replace table t2 engine=innodb select * from t1 slave-bin.000001 # Table_map # # table_id: # (test.t2) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result b/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result index 14286aa5aa0..ac610241bd1 100644 --- a/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result +++ b/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result @@ -49,12 +49,14 @@ master-bin.000001 # Intvar # # INSERT_ID=5 master-bin.000001 # Query # # use `test`; insert into t4(a) values(3) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1(a,b) values(1,1),(2,1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t3(a,b) values(1,1),(2,1) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -77,12 +79,14 @@ master-bin.000001 # Query # # use `test`; delete from t1 where b = 1 master-bin.000001 # Query # # use `test`; delete from t3 where b = 1 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1(a,b) values(4,2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t3(a,b) values(4,2) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -172,12 +176,14 @@ master-bin.000001 # Intvar # # INSERT_ID=5 master-bin.000001 # Query # # use `test`; insert into t4(a) values(3) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2(a) values(6) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t6(a) values(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -200,12 +206,14 @@ master-bin.000001 # Query # # use `test`; delete from t1 where b = 1 master-bin.000001 # Query # # use `test`; delete from t3 where b = 1 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2(a) values(6) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t6(a) values(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -297,12 +305,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; insert into t1(a,b) values(1,1),(2,1) master-bin.000001 # Query # # use `test`; insert into t3(a,b) values(1,1),(2,1) +master-bin.000001 # Annotate_rows # # update t1 set a = a + 5 where b = 1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Update_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Update_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # update t3 set a = a + 5 where b = 1 master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -329,12 +339,14 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; insert into t3(a,b) values(4,2) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # update t1 set a = a + 5 where b = 2 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Update_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # update t3 set a = a + 5 where b = 2 master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -420,12 +432,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; insert into t1(a,b) values(1,1),(2,1) master-bin.000001 # Query # # use `test`; insert into t3(a,b) values(1,1),(2,1) +master-bin.000001 # Annotate_rows # # insert into t2(a) values(6) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Update_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t6(a) values(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -452,12 +466,14 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; insert into t3(a,b) values(4,2) master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2(a) values(6) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t6(a) values(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -545,12 +561,14 @@ master-bin.000001 # Query # # use `test`; insert into t1(a,b) values(1,1),(2,1) master-bin.000001 # Query # # use `test`; insert into t3(a,b) values(1,1),(2,1) master-bin.000001 # Query # # use `test`; update t1 set a = a + 5 where b = 1 master-bin.000001 # Query # # use `test`; update t3 set a = a + 5 where b = 1 +master-bin.000001 # Annotate_rows # # delete from t1 where b = 1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Delete_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Delete_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # delete from t3 where b = 1 master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -581,12 +599,14 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; update t3 set a = a + 5 where b = 2 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # delete from t1 where b = 2 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Delete_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # delete from t3 where b = 2 master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -668,12 +688,14 @@ master-bin.000001 # Query # # use `test`; insert into t1(a,b) values(1,1),(2,1) master-bin.000001 # Query # # use `test`; insert into t3(a,b) values(1,1),(2,1) master-bin.000001 # Query # # use `test`; update t1 set a = a + 5 where b = 1 master-bin.000001 # Query # # use `test`; update t3 set a = a + 5 where b = 1 +master-bin.000001 # Annotate_rows # # insert into t2(a) values(6) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Delete_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t6(a) values(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -704,12 +726,14 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; update t3 set a = a + 5 where b = 2 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2(a) values(6) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t6(a) values(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t5) master-bin.000001 # Table_map # # table_id: # (test.t4) @@ -764,6 +788,7 @@ insert into t1(a) values(f1_two_inserts_trigger()); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2(a) values(4),(5) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -772,6 +797,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2(a) values(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) @@ -786,6 +812,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2(a) values(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) @@ -838,6 +865,7 @@ insert into t1(a) values(f1_two_inserts_trigger()); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t3(a) values(new.a) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -846,6 +874,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t3(a) values(new.a) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) @@ -860,6 +889,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t3(a) values(new.a) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) diff --git a/mysql-test/suite/rpl/r/rpl_binlog_errors.result b/mysql-test/suite/rpl/r/rpl_binlog_errors.result index a54b84227e5..8820aa23f53 100644 --- a/mysql-test/suite/rpl/r/rpl_binlog_errors.result +++ b/mysql-test/suite/rpl/r/rpl_binlog_errors.result @@ -88,6 +88,7 @@ DELETE FROM t2; RESET MASTER; ###################### TEST #7 SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@binlog_annotate_row_events= 0; SELECT count(*) FROM t4; count(*) 0 diff --git a/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result b/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result index c89de06485c..0b723a0f9c0 100644 --- a/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result +++ b/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result @@ -57,4 +57,10 @@ connection slave; include/stop_slave.inc CHANGE MASTER TO DO_DOMAIN_IDS=(), IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=NO; include/start_slave.inc +connection master; +call mtr.add_suppression("Table 'gtid_slave_pos' is marked as crashed and should be repaired"); +Warnings: +Error 145 Table './mtr/test_suppressions' is marked as crashed and should be repaired +Error 1194 Table 'test_suppressions' is marked as crashed and should be repaired +Error 1034 1 client is using or hasn't closed the table properly include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_gtid_basic.result b/mysql-test/suite/rpl/r/rpl_gtid_basic.result index 53ee39c2f3c..3722e438d32 100644 --- a/mysql-test/suite/rpl/r/rpl_gtid_basic.result +++ b/mysql-test/suite/rpl/r/rpl_gtid_basic.result @@ -464,9 +464,11 @@ include/stop_slave.inc connection server_1; SET gtid_domain_id=2; SET gtid_seq_no=1030; +SET @@binlog_annotate_row_events= 0; INSERT INTO t1 VALUES (17); INSERT INTO t1 VALUES (18); INSERT INTO t1 VALUES (19); +SET @@binlog_annotate_row_events= 1; connection server_2; SET sql_slave_skip_counter= 5; include/start_slave.inc diff --git a/mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result b/mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result index 0ae60b9073d..7c2471ba37c 100644 --- a/mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result +++ b/mysql-test/suite/rpl/r/rpl_gtid_errorhandling.result @@ -235,4 +235,5 @@ SET GLOBAL binlog_format=@old_format; connection master; DROP TABLE t1; DROP TABLE t2; +call mtr.add_suppression("Can't find record in 't2'"); include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_idempotency.result b/mysql-test/suite/rpl/r/rpl_idempotency.result index a31657d3ea1..a9485ca8933 100644 --- a/mysql-test/suite/rpl/r/rpl_idempotency.result +++ b/mysql-test/suite/rpl/r/rpl_idempotency.result @@ -4,6 +4,8 @@ call mtr.add_suppression("Slave SQL.*Can.t find record in .t[12].* error.* 1032" call mtr.add_suppression("Slave SQL.*Cannot delete or update a parent row: a foreign key constraint fails .* error.* 1451"); call mtr.add_suppression("Slave SQL.*Cannot add or update a child row: a foreign key constraint fails .* error.* 1452"); call mtr.add_suppression("Slave SQL.*Could not execute Write_rows event on table test.* Duplicate entry .1. for key .PRIMARY.* error.* 1062"); +call mtr.add_suppression("Can't find record in 't1'"); +call mtr.add_suppression("Can't find record in 't2'"); connection master; CREATE TABLE t1 (a INT PRIMARY KEY); CREATE TABLE t2 (a INT); diff --git a/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result b/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result index 35ba59730be..1f6a9370090 100644 --- a/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result +++ b/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result @@ -848,6 +848,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; DELETE FROM t1 WHERE a = 1 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE FROM t2 WHERE b <> UUID() master-bin.000001 # Table_map # # table_id: # (test_rpl.t2) master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -861,10 +862,12 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; INSERT INTO t1 VALUES(1, 't1, text 1') master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES(2, UUID()) master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 master-bin.000001 # Table_map # # table_id: # (test_rpl.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -884,6 +887,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; DELETE FROM t2 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # LOAD DATA INFILE 'MYSQLTEST_VARDIR/std_data/rpl_mixed.dat' INTO TABLE t1 FIELDS TERMINATED BY '|' master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -906,6 +910,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; REPLACE INTO t1 VALUES(1, 't1, text 11') master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # REPLACE INTO t1 VALUES(2, UUID()) master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1000,6 +1005,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; INSERT INTO t1 VALUES (5, 'before savepoint s2') master-bin.000001 # Query # # SAVEPOINT `s2` master-bin.000001 # Query # # use `test_rpl`; INSERT INTO t1 VALUES (6, 'after savepoint s2') +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (7, CONCAT('with UUID() ',UUID())) master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1053,6 +1059,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; INSERT INTO t1 VALUES(202, 'test 202') master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = UUID() WHERE a = 202 master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1077,6 +1084,7 @@ FOR EACH ROW BEGIN INSERT INTO t2 SET a = NEW.a, b = NEW.b; END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SET a = NEW.a, b = NEW.b master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Table_map # # table_id: # (test_rpl.t2) master-bin.000001 # Write_rows_v1 # # table_id: # diff --git a/mysql-test/suite/rpl/r/rpl_mariadb_slave_capability.result b/mysql-test/suite/rpl/r/rpl_mariadb_slave_capability.result index 6b60fcb1507..b96153a226a 100644 --- a/mysql-test/suite/rpl/r/rpl_mariadb_slave_capability.result +++ b/mysql-test/suite/rpl/r/rpl_mariadb_slave_capability.result @@ -41,12 +41,12 @@ a include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000005 # Query # # BEGIN -slave-relay-bin.000005 # User var # # @`!dummyvar`=NULL +slave-relay-bin.000005 # Annotate_rows # # DELETE FROM t1 slave-relay-bin.000005 # Table_map # # table_id: # (test.t1) slave-relay-bin.000005 # Delete_rows_v1 # # table_id: # flags: STMT_END_F slave-relay-bin.000005 # Query # # COMMIT slave-relay-bin.000005 # Query # # BEGIN -slave-relay-bin.000005 # Query # # # Dummy event replacing event type 160 that slave cannot handle. +slave-relay-bin.000005 # Annotate_rows # # INSERT INTO t1 /* A comment just to make the annotate event sufficiently long that the dummy event will need to get padded with spaces so that we can test that this works */ VALUES(1) slave-relay-bin.000005 # Table_map # # table_id: # (test.t1) slave-relay-bin.000005 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-relay-bin.000005 # Query # # COMMIT @@ -71,7 +71,7 @@ a include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000007 # Query # # BEGIN -slave-relay-bin.000007 # Query # # # Dummy ev +slave-relay-bin.000007 # Annotate_rows # # INSERT INTO t1 VALUES(2) slave-relay-bin.000007 # Table_map # # table_id: # (test.t1) slave-relay-bin.000007 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-relay-bin.000007 # Query # # COMMIT @@ -98,10 +98,12 @@ SET debug_sync='RESET'; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000003 # Gtid # # BEGIN GTID #-#-# cid=# +master-bin.000003 # Annotate_rows # # INSERT INTO t2 VALUES (1) master-bin.000003 # Table_map # # table_id: # (test.t2) master-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000003 # Xid # # COMMIT /* XID */ master-bin.000003 # Gtid # # BEGIN GTID #-#-# cid=# +master-bin.000003 # Annotate_rows # # INSERT INTO t2 VALUES (2) master-bin.000003 # Table_map # # table_id: # (test.t2) master-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000003 # Xid # # COMMIT /* XID */ @@ -145,7 +147,7 @@ select @@global.log_slave_updates; 1 select @@global.replicate_annotate_row_events; @@global.replicate_annotate_row_events -0 +1 set @@global.debug_dbug= @old_slave_dbug; Clean up. connection master; diff --git a/mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result b/mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result index 9b9beb5cfd1..76f812b7512 100644 --- a/mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result +++ b/mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result @@ -1870,6 +1870,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_tmp_xx_1() VALUES (1) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1 SELECT * FROM nt_tmp_xx_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1886,6 +1887,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1902,6 +1904,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1920,10 +1923,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (9), (9) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1942,6 +1947,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1960,10 +1966,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (10), (10) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1987,10 +1995,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1 SELECT * FROM nt_tmp_xx_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2009,6 +2019,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2027,6 +2038,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2045,6 +2057,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2065,10 +2078,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (11), (11) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2089,6 +2104,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2109,10 +2125,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (12), (12) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_mixed_mixing_engines.result b/mysql-test/suite/rpl/r/rpl_mixed_mixing_engines.result index 94c385faab6..8f5184fabc1 100644 --- a/mysql-test/suite/rpl/r/rpl_mixed_mixing_engines.result +++ b/mysql-test/suite/rpl/r/rpl_mixed_mixing_engines.result @@ -6630,6 +6630,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 206, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (206, 4) @@ -6639,6 +6640,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 206, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (206, 4) @@ -6655,6 +6657,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6677,6 +6680,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6697,6 +6701,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6719,6 +6724,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6739,6 +6745,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (209, 2, fc_i_tt_5_suc(209, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',209), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6767,6 +6774,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',209), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6806,6 +6814,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 210 --> 2", nt_4.info= "new text 210 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (210, 4) @@ -6819,6 +6828,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 210 --> 2", nt_4.info= "new text 210 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (210, 4) @@ -6848,6 +6858,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (211, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (211, 4) @@ -6861,6 +6872,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (211, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (211, 4) @@ -6894,6 +6906,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',212), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6913,6 +6926,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',212), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7010,6 +7024,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (215, 2), (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7030,6 +7045,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (215, 2), (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7049,6 +7065,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (216, 2, ''), (212, 2, fc_i_tt_5_suc (216, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7071,6 +7088,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (216, 2, ''), (212, 2, fc_i_tt_5_suc (216, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7240,6 +7258,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7258,6 +7277,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7273,6 +7293,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7291,6 +7312,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7306,6 +7328,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (223, 2, fc_i_tt_5_suc(223, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',223), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7326,6 +7349,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',223), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7516,6 +7540,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (229, 2), (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7534,6 +7559,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (229, 2), (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7550,6 +7576,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (230, 2, ''), (226, 2, fc_i_tt_5_suc (230, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7570,6 +7597,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (230, 2, ''), (226, 2, fc_i_tt_5_suc (230, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7677,6 +7705,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7693,6 +7722,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7720,6 +7750,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (234, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 234, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7729,6 +7760,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (234, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 234, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7748,6 +7780,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7766,6 +7799,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7790,6 +7824,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7808,6 +7843,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7832,6 +7868,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (237, 4, fc_i_tt_5_suc(237, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',237), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7856,6 +7893,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',237), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7896,6 +7934,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (238, 2) +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 238 --> 4", nt_4.info= "new text 238 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7909,6 +7948,7 @@ master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (238, 2) +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 238 --> 4", nt_4.info= "new text 238 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7938,6 +7978,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (239, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (239, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7951,6 +7992,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (239, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (239, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7984,6 +8026,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (240, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',240), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8003,6 +8046,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (240, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',240), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8035,6 +8079,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 241, 4, COUNT(*) FROM tt_1 UNION SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8051,6 +8096,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 241, 4, COUNT(*) FROM tt_1 UNION SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8104,6 +8150,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (243, 4), (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8120,6 +8167,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (243, 4), (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8143,6 +8191,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (244, 4, ''), (240, 2, fc_i_tt_5_suc (244, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8161,6 +8210,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (244, 4, ''), (240, 2, fc_i_tt_5_suc (244, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8281,6 +8331,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8295,6 +8346,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8335,6 +8387,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8349,6 +8402,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8368,6 +8422,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8382,6 +8437,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8401,6 +8457,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (251, 4, fc_i_tt_5_suc(251, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',251), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8417,6 +8474,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',251), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8556,6 +8614,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 255, 4, COUNT(*) FROM tt_1 UNION SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8570,6 +8629,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 255, 4, COUNT(*) FROM tt_1 UNION SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8612,6 +8672,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (257, 4), (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8626,6 +8687,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (257, 4), (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8646,6 +8708,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (258, 4, ''), (254, 2, fc_i_tt_5_suc (258, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8662,6 +8725,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (258, 4, ''), (254, 2, fc_i_tt_5_suc (258, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8815,6 +8879,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 262, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8826,6 +8891,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 262, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8841,6 +8907,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8866,6 +8933,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8888,6 +8956,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8913,6 +8982,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8935,6 +9005,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (265, 2, fc_i_tt_5_suc(265, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',265), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8966,6 +9037,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',265), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9011,6 +9083,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 266 --> 2", nt_4.info= "new text 266 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9026,6 +9099,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 266 --> 2", nt_4.info= "new text 266 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9058,6 +9132,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (267, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9073,6 +9148,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (267, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9109,6 +9185,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',268), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9130,6 +9207,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',268), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9227,6 +9305,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (271, 2), (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9247,6 +9326,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (271, 2), (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9266,6 +9346,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (272, 2, ''), (268, 2, fc_i_tt_5_suc (272, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9288,6 +9369,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (272, 2, ''), (268, 2, fc_i_tt_5_suc (272, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9475,6 +9557,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9497,6 +9580,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9515,6 +9599,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9537,6 +9622,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9555,6 +9641,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (279, 2, fc_i_tt_5_suc(279, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',279), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9579,6 +9666,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',279), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9811,6 +9899,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (285, 2), (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9833,6 +9922,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (285, 2), (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9852,6 +9942,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (286, 2, ''), (282, 2, fc_i_tt_5_suc (286, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9876,6 +9967,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (286, 2, ''), (282, 2, fc_i_tt_5_suc (286, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10045,6 +10137,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 290, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10056,6 +10149,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (290, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 290, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10079,6 +10173,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10099,6 +10194,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (291, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10126,6 +10222,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10146,6 +10243,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (292, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10173,6 +10271,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (293, 4, fc_i_tt_5_suc(293, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',293), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10199,6 +10298,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (293, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',293), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10241,6 +10341,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 294 --> 4", nt_4.info= "new text 294 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10256,6 +10357,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 294 --> 4", nt_4.info= "new text 294 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10288,6 +10390,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (295, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10303,6 +10406,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (295, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10339,6 +10443,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',296), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10360,6 +10465,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',296), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10464,6 +10570,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (299, 4), (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10479,6 +10586,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (299, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (299, 4), (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10503,6 +10611,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (300, 4, ''), (296, 2, fc_i_tt_5_suc (300, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10520,6 +10629,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (300, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (300, 4, ''), (296, 2, fc_i_tt_5_suc (300, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10711,6 +10821,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10728,6 +10839,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (305, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10751,6 +10863,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10768,6 +10881,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (306, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10791,6 +10905,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (307, 4, fc_i_tt_5_suc(307, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',307), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10810,6 +10925,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (307, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',307), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11046,6 +11162,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (313, 4), (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11063,6 +11180,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (313, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (313, 4), (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11087,6 +11205,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (314, 4, ''), (310, 2, fc_i_tt_5_suc (314, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11106,6 +11225,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (314, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (314, 4, ''), (310, 2, fc_i_tt_5_suc (314, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11638,10 +11758,8 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 3) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 6) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11653,10 +11771,8 @@ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 3) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 6) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11732,10 +11848,8 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (330, 4) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11746,10 +11860,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (330, 4) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11854,8 +11966,8 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 3) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 6) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11867,8 +11979,8 @@ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 3) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 6) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11944,8 +12056,8 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (336, 4) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11956,8 +12068,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (336, 4) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12053,8 +12165,8 @@ INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FR include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-T << -e-e-e-e-e-e-e-e-e-e-e- @@ -12077,8 +12189,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# @@ -12109,6 +12221,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12132,6 +12245,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12158,8 +12272,8 @@ INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FR include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-T << -e-e-e-e-e-e-e-e-e-e-e- @@ -12181,8 +12295,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# @@ -12208,6 +12322,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12230,6 +12345,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12289,10 +12405,8 @@ INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() F include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-N << -e-e-e-e-e-e-e-e-e-e-e- @@ -12315,10 +12429,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# @@ -12349,6 +12461,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12372,6 +12485,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12398,10 +12512,8 @@ INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() F include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-N << -e-e-e-e-e-e-e-e-e-e-e- @@ -12423,10 +12535,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# @@ -12452,6 +12562,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12474,6 +12585,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13040,6 +13152,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; SELECT `test`.`fc_i_tt_5_suc`(370,4) @@ -13054,6 +13167,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; SELECT `test`.`fc_i_tt_5_suc`(370,4) @@ -13085,6 +13199,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; SELECT `test`.`fc_i_tt_5_suc`(371,2) +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13099,6 +13214,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; SELECT `test`.`fc_i_tt_5_suc`(371,2) +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result b/mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result index 55d7a164324..2e553e0c305 100644 --- a/mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result +++ b/mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result @@ -3956,6 +3956,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (133, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (133, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3972,6 +3973,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (133, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3994,6 +3996,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (134, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (134, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4012,6 +4015,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (134, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4038,6 +4042,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',135), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4058,6 +4063,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',135), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4084,12 +4090,14 @@ CALL pc_i_nt_5_suc (136, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4108,12 +4116,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4138,6 +4148,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (137, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (137, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4154,6 +4165,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (137, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4176,6 +4188,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (138, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (138, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4194,6 +4207,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (138, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4220,6 +4234,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',139), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4240,6 +4255,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',139), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4266,12 +4282,14 @@ CALL pc_i_nt_5_suc (140, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4290,12 +4308,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4322,6 +4342,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (141, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (141, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4338,6 +4359,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (141, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4362,6 +4384,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (142, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (142, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4380,6 +4403,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (142, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4408,6 +4432,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4428,6 +4453,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4456,12 +4482,14 @@ CALL pc_i_nt_5_suc (144, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4480,12 +4508,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4510,6 +4540,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (145, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (145, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4527,6 +4558,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (145, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4550,6 +4582,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (146, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (146, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4569,6 +4602,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (146, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4596,6 +4630,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4617,6 +4652,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4644,12 +4680,14 @@ CALL pc_i_nt_5_suc (148, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4669,12 +4707,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4805,6 +4845,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (152, 4), (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4821,6 +4862,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (152, 4), (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4853,6 +4895,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (153, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (153, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4867,6 +4910,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (153, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4886,6 +4930,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (154, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (154, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4902,6 +4947,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (154, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4925,6 +4971,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',155), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4943,6 +4990,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',155), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4966,12 +5014,14 @@ CALL pc_i_nt_5_suc (156, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4988,12 +5038,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5015,6 +5067,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (157, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (157, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5029,6 +5082,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (157, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5048,6 +5102,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (158, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (158, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5064,6 +5119,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (158, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5087,6 +5143,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',159), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5105,6 +5162,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',159), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5128,12 +5186,14 @@ CALL pc_i_nt_5_suc (160, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5150,12 +5210,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5179,6 +5241,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (161, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (161, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5193,6 +5256,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (161, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5214,6 +5278,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (162, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (162, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5230,6 +5295,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (162, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5255,6 +5321,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',163), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5273,6 +5340,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',163), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5298,12 +5366,14 @@ CALL pc_i_nt_5_suc (164, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5320,12 +5390,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5347,6 +5419,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (165, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (165, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5361,6 +5434,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (165, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5380,6 +5454,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (166, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (166, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5396,6 +5471,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (166, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5419,6 +5495,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',167), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5437,6 +5514,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',167), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5460,12 +5538,14 @@ CALL pc_i_nt_5_suc (168, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5482,12 +5562,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5610,6 +5692,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (172, 4), (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5624,6 +5707,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (172, 4), (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6101,12 +6185,14 @@ CALL pc_i_nt_5_suc (185, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6129,12 +6215,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6155,12 +6243,14 @@ CALL pc_i_nt_5_suc (186, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6183,12 +6273,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6209,12 +6301,14 @@ CALL pc_i_nt_5_suc (187, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6239,12 +6333,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6265,12 +6361,14 @@ CALL pc_i_nt_5_suc (188, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6294,12 +6392,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6717,12 +6817,14 @@ CALL pc_i_nt_5_suc (201, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6743,12 +6845,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6766,12 +6870,14 @@ CALL pc_i_nt_5_suc (202, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6792,12 +6898,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6815,12 +6923,14 @@ CALL pc_i_nt_5_suc (203, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6841,12 +6951,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6864,12 +6976,14 @@ CALL pc_i_nt_5_suc (204, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6892,12 +7006,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6970,6 +7086,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 206, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (206, 4) @@ -6979,6 +7096,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 206, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (206, 4) @@ -6995,6 +7113,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7017,6 +7136,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7037,6 +7157,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7059,6 +7180,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7079,6 +7201,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (209, 2, fc_i_tt_5_suc(209, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',209), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7107,6 +7230,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',209), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7146,6 +7270,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 210 --> 2", nt_4.info= "new text 210 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (210, 4) @@ -7159,6 +7284,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 210 --> 2", nt_4.info= "new text 210 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (210, 4) @@ -7188,6 +7314,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (211, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (211, 4) @@ -7201,6 +7328,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (211, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (211, 4) @@ -7234,6 +7362,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',212), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7253,6 +7382,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',212), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7350,6 +7480,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (215, 2), (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7370,6 +7501,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (215, 2), (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7389,6 +7521,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (216, 2, ''), (212, 2, fc_i_tt_5_suc (216, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7411,6 +7544,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (216, 2, ''), (212, 2, fc_i_tt_5_suc (216, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7580,6 +7714,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7598,6 +7733,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7613,6 +7749,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7631,6 +7768,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7646,6 +7784,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (223, 2, fc_i_tt_5_suc(223, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',223), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7666,6 +7805,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',223), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7856,6 +7996,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (229, 2), (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7874,6 +8015,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (229, 2), (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7890,6 +8032,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (230, 2, ''), (226, 2, fc_i_tt_5_suc (230, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7910,6 +8053,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (230, 2, ''), (226, 2, fc_i_tt_5_suc (230, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8017,6 +8161,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8033,6 +8178,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8060,6 +8206,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (234, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 234, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8069,6 +8216,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (234, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 234, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8088,6 +8236,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8106,6 +8255,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8130,6 +8280,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8148,6 +8299,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8172,6 +8324,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (237, 4, fc_i_tt_5_suc(237, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',237), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8196,6 +8349,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',237), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8236,6 +8390,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (238, 2) +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 238 --> 4", nt_4.info= "new text 238 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8249,6 +8404,7 @@ master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (238, 2) +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 238 --> 4", nt_4.info= "new text 238 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8278,6 +8434,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (239, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (239, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8291,6 +8448,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (239, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (239, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8324,6 +8482,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (240, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',240), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8343,6 +8502,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (240, 2) +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',240), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8375,6 +8535,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 241, 4, COUNT(*) FROM tt_1 UNION SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8391,6 +8552,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 241, 4, COUNT(*) FROM tt_1 UNION SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8444,6 +8606,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (243, 4), (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8460,6 +8623,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (243, 4), (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8483,6 +8647,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (244, 4, ''), (240, 2, fc_i_tt_5_suc (244, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8501,6 +8666,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (244, 4, ''), (240, 2, fc_i_tt_5_suc (244, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8621,6 +8787,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8635,6 +8802,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8675,6 +8843,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8689,6 +8858,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8708,6 +8878,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8722,6 +8893,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8741,6 +8913,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (251, 4, fc_i_tt_5_suc(251, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',251), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8757,6 +8930,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',251), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8896,6 +9070,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 255, 4, COUNT(*) FROM tt_1 UNION SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8910,6 +9085,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 255, 4, COUNT(*) FROM tt_1 UNION SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8952,6 +9128,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (257, 4), (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8966,6 +9143,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (257, 4), (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8986,6 +9164,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (258, 4, ''), (254, 2, fc_i_tt_5_suc (258, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9002,6 +9181,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (258, 4, ''), (254, 2, fc_i_tt_5_suc (258, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9147,6 +9327,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9156,6 +9337,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 262, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9164,10 +9346,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 262, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9183,6 +9367,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9192,6 +9377,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (263, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (263, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9209,10 +9395,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (263, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9232,6 +9420,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9241,6 +9430,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (264, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (264, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9258,10 +9448,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (264, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9281,6 +9473,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (265, 2, fc_i_tt_5_suc(265, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',265), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9292,6 +9485,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (265, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (265, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9313,12 +9507,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',265), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (265, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9351,6 +9547,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9360,6 +9557,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 266 --> 2", nt_4.info= "new text 266 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9372,10 +9570,12 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 266 --> 2", nt_4.info= "new text 266 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9400,6 +9600,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9409,6 +9610,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (267, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9421,10 +9623,12 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (267, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9453,6 +9657,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9462,6 +9667,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',268), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9480,10 +9686,12 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',268), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9581,6 +9789,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (271, 2), (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9601,6 +9810,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (271, 2), (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9620,6 +9830,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (272, 2, ''), (268, 2, fc_i_tt_5_suc (272, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9642,6 +9853,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (272, 2, ''), (268, 2, fc_i_tt_5_suc (272, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9802,6 +10014,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (276, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (276, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9816,6 +10029,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (276, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9831,6 +10045,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9840,6 +10055,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (277, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (277, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9854,10 +10070,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (277, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9873,6 +10091,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9882,6 +10101,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (278, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (278, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9896,10 +10116,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (278, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9915,6 +10137,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (279, 2, fc_i_tt_5_suc(279, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',279), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9926,6 +10149,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (279, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (279, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9940,12 +10164,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',279), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (279, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9970,6 +10196,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (280, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (280, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9988,6 +10215,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (280, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10012,6 +10240,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (281, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (281, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10030,6 +10259,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (281, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10058,6 +10288,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (282, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (282, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10080,6 +10311,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (282, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10179,6 +10411,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (285, 2), (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10201,6 +10434,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (285, 2), (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10220,6 +10454,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (286, 2, ''), (282, 2, fc_i_tt_5_suc (286, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10244,6 +10479,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (286, 2, ''), (282, 2, fc_i_tt_5_suc (286, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10413,6 +10649,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 290, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10424,6 +10661,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (290, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 290, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10447,6 +10685,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10467,6 +10706,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (291, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10494,6 +10734,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10514,6 +10755,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (292, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10541,6 +10783,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (293, 4, fc_i_tt_5_suc(293, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',293), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10567,6 +10810,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (293, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',293), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10609,6 +10853,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 294 --> 4", nt_4.info= "new text 294 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10624,6 +10869,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 294 --> 4", nt_4.info= "new text 294 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10656,6 +10902,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (295, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10671,6 +10918,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (295, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10707,6 +10955,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',296), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10728,6 +10977,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',296), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10832,6 +11082,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (299, 4), (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10847,6 +11098,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (299, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (299, 4), (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10871,6 +11123,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (300, 4, ''), (296, 2, fc_i_tt_5_suc (300, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10888,6 +11141,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (300, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (300, 4, ''), (296, 2, fc_i_tt_5_suc (300, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11079,6 +11333,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11096,6 +11351,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (305, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11119,6 +11375,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11136,6 +11393,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (306, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11159,6 +11417,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (307, 4, fc_i_tt_5_suc(307, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',307), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11178,6 +11437,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (307, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',307), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11414,6 +11674,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (313, 4), (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11431,6 +11692,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (313, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (313, 4), (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11455,6 +11717,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (314, 4, ''), (310, 2, fc_i_tt_5_suc (314, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11474,6 +11737,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO nt_1(trans_id, stmt_id) VALUES (314, 2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (314, 4, ''), (310, 2, fc_i_tt_5_suc (314, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11683,6 +11947,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (319, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (319, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11716,6 +11981,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (319, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11745,6 +12011,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (320, 5); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (320, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11774,6 +12041,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (320, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12010,10 +12278,8 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 3) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 6) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12025,10 +12291,8 @@ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 3) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 6) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12104,10 +12368,8 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (330, 4) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12118,10 +12380,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (330, 4) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12226,8 +12486,8 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 3) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 6) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12239,8 +12499,8 @@ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 3) +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 6) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12316,8 +12576,8 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (336, 4) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12328,8 +12588,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; INSERT INTO tt_1(trans_id, stmt_id) VALUES (336, 4) master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12425,8 +12685,8 @@ INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FR include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-T << -e-e-e-e-e-e-e-e-e-e-e- @@ -12449,8 +12709,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# @@ -12481,6 +12741,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12504,6 +12765,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12530,8 +12792,8 @@ INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FR include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-T << -e-e-e-e-e-e-e-e-e-e-e- @@ -12553,8 +12815,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# @@ -12580,6 +12842,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12602,6 +12865,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12661,10 +12925,8 @@ INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() F include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-N << -e-e-e-e-e-e-e-e-e-e-e- @@ -12687,10 +12949,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# @@ -12721,6 +12981,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12744,6 +13005,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12770,10 +13032,8 @@ INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() F include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-N << -e-e-e-e-e-e-e-e-e-e-e- @@ -12795,10 +13055,8 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# @@ -12824,6 +13082,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12846,6 +13105,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13304,6 +13564,7 @@ SET @var= fc_i_nt_5_suc(367, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -13324,6 +13585,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -13381,6 +13643,7 @@ SET @var= fc_i_nt_5_suc(369, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',369), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -13399,6 +13662,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',369), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -13432,6 +13696,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; SELECT `test`.`fc_i_tt_5_suc`(370,4) @@ -13446,6 +13711,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # use `test`; SELECT `test`.`fc_i_tt_5_suc`(370,4) @@ -13477,6 +13743,7 @@ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; SELECT `test`.`fc_i_tt_5_suc`(371,2) +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13491,6 +13758,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; SELECT `test`.`fc_i_tt_5_suc`(371,2) +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/rpl/r/rpl_non_direct_row_mixing_engines.result b/mysql-test/suite/rpl/r/rpl_non_direct_row_mixing_engines.result index 775ae83c618..56368b9bb9e 100644 --- a/mysql-test/suite/rpl/r/rpl_non_direct_row_mixing_engines.result +++ b/mysql-test/suite/rpl/r/rpl_non_direct_row_mixing_engines.result @@ -127,6 +127,7 @@ INSERT INTO tt_1(trans_id, stmt_id) VALUES (7, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (7, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -135,6 +136,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (7, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -146,6 +148,7 @@ INSERT INTO tt_5(trans_id, stmt_id) VALUES (8, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (8, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -156,6 +159,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (8, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -171,6 +175,7 @@ fc_i_tt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',9), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -183,6 +188,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',9), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -198,12 +204,14 @@ CALL pc_i_tt_5_suc (10, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',10), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',10), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -214,12 +222,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',10), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',10), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -293,6 +303,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (15, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (15, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -301,6 +312,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (15, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -312,6 +324,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (16, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (16, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -322,6 +335,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (16, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -337,6 +351,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',17), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -349,6 +364,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',17), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -364,12 +380,14 @@ CALL pc_i_nt_5_suc (18, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',18), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',18), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -380,12 +398,14 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',18), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',18), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -420,6 +440,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (20, 1), (15, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -428,6 +449,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (20, 1), (15, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -440,6 +462,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (21, 1), (18, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -450,6 +473,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (21, 1), (18, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -464,6 +488,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (22, 1, ''), (20, 1, fc_i_nt_5_suc (22, 1)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -478,6 +503,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (22, 1, ''), (20, 1, fc_i_nt_5_suc (22, 1)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -506,6 +532,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 23, 1, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 23, 1, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -514,6 +541,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 23, 1, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -525,6 +553,7 @@ INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 24, 1, COUNT(*) FROM nt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 24, 1, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -533,6 +562,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 24, 1, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -544,6 +574,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 25 --> 1", tt_3.info= "new text 25 -- include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 25 --> 1", tt_3.info= "new text 25 --> 1" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_3) @@ -554,6 +585,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 25 --> 1", tt_3.info= "new text 25 --> 1" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_3) @@ -567,6 +599,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (26, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (26, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_4) @@ -577,6 +610,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (26, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_4) @@ -590,6 +624,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (27, 1, fc_i_tt_5_suc(27, 1)); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',27), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -606,6 +641,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',27), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -627,6 +663,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 28 --> 1", nt_4.info= "new text 28 --> 1" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -637,6 +674,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 28 --> 1", nt_4.info= "new text 28 --> 1" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -650,6 +688,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (29, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -660,6 +699,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (29, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -677,6 +717,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',30), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -693,6 +734,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',30), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -717,6 +759,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 31, 1, COUNT(*) FROM tt_1 UNION SELECT 23, 1, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -725,6 +768,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 31, 1, COUNT(*) FROM tt_1 UNION SELECT 23, 1, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -747,6 +791,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (33, 1), (26, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -755,6 +800,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (33, 1), (26, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -767,6 +813,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (34, 1, ''), (30, 2, fc_i_tt_5_suc (34, 1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -777,6 +824,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (34, 1, ''), (30, 2, fc_i_tt_5_suc (34, 1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -860,8 +908,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (37, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (37, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -870,8 +920,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (37, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (37, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -895,8 +947,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (38, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (38, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -907,8 +961,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (38, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (38, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -936,8 +992,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (39, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',39), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -950,8 +1008,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (39, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',39), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -979,12 +1039,15 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (40, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',40), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',40), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -995,12 +1058,15 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (40, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',40), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',40), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1026,10 +1092,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (41, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (41, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1038,10 +1106,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (41, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (41, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1065,10 +1135,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (42, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (42, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1079,10 +1151,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (42, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (42, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1110,10 +1184,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (43, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',43), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1126,10 +1202,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (43, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',43), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1157,14 +1235,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (44, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',44), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',44), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1175,14 +1256,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (44, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',44), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',44), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1210,12 +1294,14 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',45), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (45, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1224,12 +1310,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',45), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (45, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1255,12 +1343,14 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',46), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (46, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1271,12 +1361,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',46), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (46, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1306,12 +1398,14 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',47), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',47), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1324,12 +1418,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',47), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',47), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1359,16 +1455,19 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1379,16 +1478,19 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1414,14 +1516,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',49), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',49), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (49, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1430,14 +1535,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',49), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',49), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (49, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1461,14 +1569,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',50), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',50), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (50, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1479,14 +1590,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',50), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',50), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (50, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1514,14 +1628,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1534,14 +1651,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1569,18 +1689,22 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1591,18 +1715,22 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1639,6 +1767,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (53, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1647,6 +1776,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (53, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1671,6 +1801,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (54, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1679,6 +1810,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (54, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1703,6 +1835,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (55, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1711,6 +1844,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (55, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1735,6 +1869,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (56, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1743,6 +1878,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (56, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1767,6 +1903,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (57, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1775,6 +1912,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (57, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1799,6 +1937,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (58, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1807,6 +1946,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (58, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1831,6 +1971,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (59, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1839,6 +1980,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (59, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1863,6 +2005,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (60, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1871,6 +2014,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (60, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -2444,6 +2588,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2453,6 +2598,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2465,10 +2611,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2484,6 +2632,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (86, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (86, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2493,6 +2642,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (86, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (86, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2507,10 +2657,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (86, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (86, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2528,6 +2680,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (87, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (87, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2539,6 +2692,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',87), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2555,10 +2709,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (87, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',87), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2578,6 +2734,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (88, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (88, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2587,12 +2744,14 @@ CALL pc_i_nt_5_suc (88, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',88), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',88), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2607,16 +2766,19 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (88, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',88), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',88), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2634,6 +2796,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (89, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (89, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2645,6 +2808,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (89, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (89, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2657,12 +2821,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (89, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (89, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2678,6 +2844,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2689,6 +2856,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2703,12 +2871,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2726,6 +2896,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (91, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (91, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2739,6 +2910,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',91), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2755,12 +2927,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (91, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',91), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2780,6 +2954,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (92, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (92, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2791,12 +2966,14 @@ CALL pc_i_nt_5_suc (92, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',92), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',92), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2811,18 +2988,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (92, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',92), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',92), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2842,6 +3022,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',93), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2855,6 +3036,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (93, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (93, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2867,6 +3049,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',93), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2875,6 +3058,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (93, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2892,6 +3076,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',94), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2905,6 +3090,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (94, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (94, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2919,6 +3105,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',94), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2927,6 +3114,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (94, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2946,6 +3134,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',95), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2961,6 +3150,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',95), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2977,6 +3167,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',95), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2985,6 +3176,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',95), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3006,6 +3198,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3019,12 +3212,14 @@ CALL pc_i_nt_5_suc (96, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3039,6 +3234,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3047,12 +3243,14 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3070,12 +3268,14 @@ CALL pc_i_nt_5_suc (97, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',97), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',97), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3087,6 +3287,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (97, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (97, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3099,18 +3300,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',97), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',97), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (97, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3126,12 +3330,14 @@ CALL pc_i_nt_5_suc (98, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',98), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',98), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3143,6 +3349,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (98, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (98, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3157,18 +3364,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',98), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',98), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (98, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3186,12 +3396,14 @@ CALL pc_i_nt_5_suc (99, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3205,6 +3417,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3221,18 +3434,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3252,12 +3468,14 @@ CALL pc_i_nt_5_suc (100, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3269,12 +3487,14 @@ CALL pc_i_nt_5_suc (100, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3289,24 +3509,28 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3334,6 +3558,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (101, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (101, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3351,6 +3576,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (101, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3366,6 +3592,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3376,6 +3603,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 4), (102, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3388,10 +3616,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 4), (102, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3407,6 +3637,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (103, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (103, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3417,6 +3648,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (103, 4), (100, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3431,10 +3663,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (103, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (103, 4), (100, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3452,6 +3686,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (104, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (104, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3462,6 +3697,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (104, 4, ''), (104, 2, fc_i_nt_5_suc (104, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -3480,10 +3716,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (104, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (104, 4, ''), (104, 2, fc_i_nt_5_suc (104, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -3510,6 +3748,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (105, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (105, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3522,6 +3761,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (105, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3538,6 +3778,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 2), (105, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3547,6 +3788,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3559,10 +3801,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 2), (105, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3579,6 +3823,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (107, 2), (104, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3590,6 +3835,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (107, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (107, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3602,12 +3848,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (107, 2), (104, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (107, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3624,6 +3872,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (108, 2, ''), (107, 4, fc_i_nt_5_suc (108, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -3639,6 +3888,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (108, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (108, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3651,6 +3901,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (108, 2, ''), (107, 4, fc_i_nt_5_suc (108, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -3661,6 +3912,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (108, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3686,6 +3938,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3695,6 +3948,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3709,10 +3963,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3728,6 +3984,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (110, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (110, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3737,6 +3994,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (110, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (110, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3753,10 +4011,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (110, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (110, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3774,6 +4034,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (111, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (111, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3785,6 +4046,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',111), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3803,10 +4065,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (111, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',111), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3826,6 +4090,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (112, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (112, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3835,12 +4100,14 @@ CALL pc_i_nt_5_suc (112, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',112), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',112), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3857,16 +4124,19 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (112, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',112), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',112), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3884,6 +4154,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (113, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (113, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3895,6 +4166,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (113, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (113, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3909,12 +4181,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (113, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (113, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3930,6 +4204,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3941,6 +4216,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3957,12 +4233,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3980,6 +4258,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (115, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (115, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3993,6 +4272,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',115), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4011,12 +4291,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (115, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',115), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4036,6 +4318,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (116, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (116, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4047,12 +4330,14 @@ CALL pc_i_nt_5_suc (116, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',116), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',116), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4069,18 +4354,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (116, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',116), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',116), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4100,6 +4388,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',117), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4113,6 +4402,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (117, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (117, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4127,6 +4417,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',117), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4135,6 +4426,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (117, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4152,6 +4444,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',118), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4165,6 +4458,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (118, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (118, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4181,6 +4475,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',118), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4189,6 +4484,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (118, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4208,6 +4504,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',119), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4223,6 +4520,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',119), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4241,6 +4539,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',119), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4249,6 +4548,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',119), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4270,6 +4570,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4283,12 +4584,14 @@ CALL pc_i_nt_5_suc (120, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4305,6 +4608,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4313,12 +4617,14 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4336,12 +4642,14 @@ CALL pc_i_nt_5_suc (121, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',121), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',121), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4353,6 +4661,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (121, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (121, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4367,18 +4676,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',121), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',121), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (121, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4394,12 +4706,14 @@ CALL pc_i_nt_5_suc (122, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',122), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',122), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4411,6 +4725,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (122, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (122, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4427,18 +4742,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',122), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',122), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (122, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4456,12 +4774,14 @@ CALL pc_i_nt_5_suc (123, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4475,6 +4795,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4493,18 +4814,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4524,12 +4848,14 @@ CALL pc_i_nt_5_suc (124, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4541,12 +4867,14 @@ CALL pc_i_nt_5_suc (124, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4563,24 +4891,28 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4608,6 +4940,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (125, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (125, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4627,6 +4960,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (125, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4642,6 +4976,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4652,6 +4987,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 4), (126, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4666,10 +5002,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 4), (126, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4685,6 +5023,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (127, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (127, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4695,6 +5034,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (127, 4), (124, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4711,10 +5051,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (127, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (127, 4), (124, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4732,6 +5074,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (128, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (128, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4742,6 +5085,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (128, 4, ''), (128, 2, fc_i_nt_5_suc (128, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -4762,10 +5106,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (128, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (128, 4, ''), (128, 2, fc_i_nt_5_suc (128, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -4792,6 +5138,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (129, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (129, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4806,6 +5153,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (129, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4822,6 +5170,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 2), (129, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4831,6 +5180,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4845,10 +5195,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 2), (129, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4865,6 +5217,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (131, 2), (128, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4876,6 +5229,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (131, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (131, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4890,12 +5244,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (131, 2), (128, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (131, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4912,6 +5268,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (132, 2, ''), (131, 4, fc_i_nt_5_suc (132, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -4927,6 +5284,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (132, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (132, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4941,6 +5299,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (132, 2, ''), (131, 4, fc_i_nt_5_suc (132, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -4951,6 +5310,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (132, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4980,6 +5340,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (133, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (133, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4989,6 +5350,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (133, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -4997,10 +5359,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (133, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (133, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5020,6 +5384,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (134, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (134, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5031,6 +5396,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (134, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5039,12 +5405,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (134, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (134, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5066,6 +5434,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',135), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5079,6 +5448,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (135, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5087,6 +5457,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',135), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5095,6 +5466,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (135, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5114,12 +5486,14 @@ CALL pc_i_nt_5_suc (136, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5131,6 +5505,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (136, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5139,18 +5514,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (136, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5170,6 +5548,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (137, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (137, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5179,6 +5558,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (137, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5189,10 +5569,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (137, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (137, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5214,6 +5596,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (138, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (138, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5225,6 +5608,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (138, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5235,12 +5619,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (138, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (138, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5264,6 +5650,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',139), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5277,6 +5664,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (139, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5287,6 +5675,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',139), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5295,6 +5684,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (139, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5316,12 +5706,14 @@ CALL pc_i_nt_5_suc (140, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5333,6 +5725,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (140, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5343,18 +5736,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (140, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5378,6 +5774,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (141, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (141, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5387,6 +5784,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',141), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5399,10 +5797,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (141, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',141), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5428,6 +5828,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (142, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (142, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5439,6 +5840,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',142), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5451,12 +5853,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (142, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',142), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5484,6 +5888,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5497,6 +5902,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5509,6 +5915,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5517,6 +5924,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5542,12 +5950,14 @@ CALL pc_i_nt_5_suc (144, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5559,6 +5969,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5571,18 +5982,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5606,6 +6020,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (145, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (145, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5615,10 +6030,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',145), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',145), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5629,14 +6046,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (145, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',145), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',145), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5658,6 +6078,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (146, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (146, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5669,10 +6090,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',146), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',146), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5683,16 +6106,19 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (146, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',146), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',146), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5716,6 +6142,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5729,10 +6156,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5743,6 +6172,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5751,10 +6181,12 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5776,12 +6208,14 @@ CALL pc_i_nt_5_suc (148, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5793,10 +6227,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5807,22 +6243,26 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5859,6 +6299,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (149, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (149, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5871,6 +6312,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (149, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5891,6 +6333,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (150, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5903,6 +6346,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5927,6 +6371,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (151, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5935,6 +6380,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (151, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5955,6 +6401,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (152, 4), (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5964,6 +6411,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (152, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5972,10 +6420,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (152, 4), (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (152, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -6005,6 +6455,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (153, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (153, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6019,6 +6470,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (153, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6038,6 +6490,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (154, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (154, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6054,6 +6507,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (154, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6077,6 +6531,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',155), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6095,6 +6550,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',155), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6118,12 +6574,14 @@ CALL pc_i_nt_5_suc (156, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6140,12 +6598,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6167,6 +6627,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (157, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (157, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6181,6 +6642,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (157, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6200,6 +6662,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (158, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (158, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6216,6 +6679,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (158, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6239,6 +6703,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',159), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6257,6 +6722,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',159), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6280,12 +6746,14 @@ CALL pc_i_nt_5_suc (160, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6302,12 +6770,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6331,6 +6801,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (161, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (161, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6345,6 +6816,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (161, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6366,6 +6838,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (162, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (162, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6382,6 +6855,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (162, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6407,6 +6881,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',163), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6425,6 +6900,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',163), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6450,12 +6926,14 @@ CALL pc_i_nt_5_suc (164, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6472,12 +6950,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6499,6 +6979,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (165, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (165, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6513,6 +6994,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (165, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6532,6 +7014,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (166, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (166, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6548,6 +7031,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (166, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6571,6 +7055,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',167), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6589,6 +7074,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',167), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6612,12 +7098,14 @@ CALL pc_i_nt_5_suc (168, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6634,12 +7122,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6676,6 +7166,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (169, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (169, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6690,6 +7181,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (169, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6710,6 +7202,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (170, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6724,6 +7217,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6766,6 +7260,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (172, 4), (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6780,6 +7275,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (172, 4), (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6805,6 +7301,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (173, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (173, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6818,6 +7315,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (173, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -6826,10 +7324,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (173, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (173, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -6845,6 +7345,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (174, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (174, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6858,6 +7359,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (174, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6868,10 +7370,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (174, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (174, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6889,6 +7393,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (175, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (175, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6904,6 +7409,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',175), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6916,10 +7422,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (175, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',175), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6939,6 +7447,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (176, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (176, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6952,10 +7461,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',176), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',176), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6966,14 +7477,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (176, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',176), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',176), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6991,6 +7505,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (177, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (177, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7006,6 +7521,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (177, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7014,12 +7530,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (177, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (177, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7035,6 +7553,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (178, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (178, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7050,6 +7569,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (178, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7060,12 +7580,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (178, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (178, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7083,6 +7605,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (179, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (179, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7100,6 +7623,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',179), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7112,12 +7636,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (179, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',179), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7137,6 +7663,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (180, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (180, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7152,10 +7679,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',180), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',180), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7166,16 +7695,19 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (180, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',180), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',180), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7195,6 +7727,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',181), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7212,6 +7745,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (181, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7220,6 +7754,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',181), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7228,6 +7763,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (181, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7245,6 +7781,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',182), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7262,6 +7799,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (182, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7272,6 +7810,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',182), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7280,6 +7819,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (182, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7299,6 +7839,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',183), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7318,6 +7859,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',183), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7330,6 +7872,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',183), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7338,6 +7881,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',183), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7359,6 +7903,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7376,10 +7921,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7390,6 +7937,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7398,10 +7946,12 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7419,12 +7969,14 @@ CALL pc_i_nt_5_suc (185, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7440,6 +7992,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (185, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7448,18 +8001,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (185, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7475,12 +8031,14 @@ CALL pc_i_nt_5_suc (186, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7496,6 +8054,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (186, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7506,18 +8065,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (186, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7535,12 +8097,14 @@ CALL pc_i_nt_5_suc (187, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7558,6 +8122,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7570,18 +8135,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7601,12 +8169,14 @@ CALL pc_i_nt_5_suc (188, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7622,10 +8192,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7636,22 +8208,26 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7679,6 +8255,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (189, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (189, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7697,6 +8274,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (189, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7712,6 +8290,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (190, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (190, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7730,6 +8309,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (190, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7745,6 +8325,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (191, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (191, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7763,6 +8344,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (191, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7778,6 +8360,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (192, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (192, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7798,6 +8381,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (192, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7813,6 +8397,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (193, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (193, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7833,6 +8418,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (193, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7850,6 +8436,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (194, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (194, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7870,6 +8457,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (194, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7887,6 +8475,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (195, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (195, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7909,6 +8498,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (195, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7926,6 +8516,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (196, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (196, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7946,6 +8537,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (196, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7965,6 +8557,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',197), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7987,6 +8580,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',197), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8008,6 +8602,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',198), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8030,6 +8625,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',198), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8051,6 +8647,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',199), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8075,6 +8672,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',199), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8096,6 +8694,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',200), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8118,6 +8717,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',200), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8137,12 +8737,14 @@ CALL pc_i_nt_5_suc (201, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8163,12 +8765,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8186,12 +8790,14 @@ CALL pc_i_nt_5_suc (202, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8212,12 +8818,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8235,12 +8843,14 @@ CALL pc_i_nt_5_suc (203, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8261,12 +8871,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8284,12 +8896,14 @@ CALL pc_i_nt_5_suc (204, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8312,12 +8926,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8346,6 +8962,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 205, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 205, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8359,6 +8976,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (205, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8367,10 +8985,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 205, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (205, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8394,8 +9014,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 206, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (206, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8404,8 +9026,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 206, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (206, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8421,6 +9045,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8436,6 +9061,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (207, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8444,12 +9070,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (207, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8465,6 +9093,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8480,6 +9109,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (208, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8488,12 +9118,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (208, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8509,6 +9141,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (209, 2, fc_i_tt_5_suc(209, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',209), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8530,6 +9163,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (209, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8538,6 +9172,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',209), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8550,6 +9185,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (209, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8578,8 +9214,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 210 --> 2", nt_4.info= "new text 210 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (210, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8592,8 +9230,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 210 --> 2", nt_4.info= "new text 210 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (210, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8622,8 +9262,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (211, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (211, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8636,8 +9278,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (211, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (211, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8670,10 +9314,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',212), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (212, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8690,10 +9336,12 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',212), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (212, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8721,6 +9369,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 213, 2, COUNT(*) FROM tt_1 UNION SELECT 205, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8734,6 +9383,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (213, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8742,10 +9392,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 213, 2, COUNT(*) FROM tt_1 UNION SELECT 205, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (213, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8770,6 +9422,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (214, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8778,6 +9431,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (214, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8794,6 +9448,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (215, 2), (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8807,6 +9462,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (215, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8815,10 +9471,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (215, 2), (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (215, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8835,6 +9493,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (216, 2, ''), (212, 2, fc_i_tt_5_suc (216, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8850,6 +9509,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (216, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8858,12 +9518,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (216, 2, ''), (212, 2, fc_i_tt_5_suc (216, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (216, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8893,6 +9555,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (217, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8905,6 +9568,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (217, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8938,6 +9602,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (218, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8954,6 +9619,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (218, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8980,6 +9646,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 219, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 219, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8998,6 +9665,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 219, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9034,6 +9702,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9052,6 +9721,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9067,6 +9737,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9085,6 +9756,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9100,6 +9772,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (223, 2, fc_i_tt_5_suc(223, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',223), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9120,6 +9793,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',223), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9256,6 +9930,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 227, 2, COUNT(*) FROM tt_1 UNION SELECT 219, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9274,6 +9949,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 227, 2, COUNT(*) FROM tt_1 UNION SELECT 219, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9312,6 +9988,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (229, 2), (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9330,6 +10007,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (229, 2), (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9346,6 +10024,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (230, 2, ''), (226, 2, fc_i_tt_5_suc (230, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9366,6 +10045,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (230, 2, ''), (226, 2, fc_i_tt_5_suc (230, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9473,6 +10153,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9482,6 +10163,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (233, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9490,10 +10172,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (233, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9517,8 +10201,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (234, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 234, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9527,8 +10213,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (234, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 234, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9548,6 +10236,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9557,6 +10246,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (235, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_3) @@ -9567,10 +10257,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (235, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_3) @@ -9592,6 +10284,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9601,6 +10294,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (236, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_4) @@ -9611,10 +10305,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (236, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_4) @@ -9636,6 +10332,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (237, 4, fc_i_tt_5_suc(237, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',237), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9647,6 +10344,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (237, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_5) @@ -9661,12 +10359,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',237), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (237, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_5) @@ -9701,8 +10401,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (238, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 238 --> 4", nt_4.info= "new text 238 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9715,8 +10417,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (238, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 238 --> 4", nt_4.info= "new text 238 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9745,8 +10449,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (239, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (239, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9759,8 +10465,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (239, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (239, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9793,8 +10501,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (240, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',240), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9813,8 +10523,10 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (240, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',240), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9847,6 +10559,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 241, 4, COUNT(*) FROM tt_1 UNION SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9856,6 +10569,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (241, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9864,10 +10578,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 241, 4, COUNT(*) FROM tt_1 UNION SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (241, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9892,6 +10608,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (242, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9900,6 +10617,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (242, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9920,6 +10638,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (243, 4), (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9929,6 +10648,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (243, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9937,10 +10657,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (243, 4), (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (243, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9961,6 +10683,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (244, 4, ''), (240, 2, fc_i_tt_5_suc (244, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9972,6 +10695,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (244, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9980,12 +10704,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (244, 4, ''), (240, 2, fc_i_tt_5_suc (244, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (244, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10015,6 +10741,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (245, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10027,6 +10754,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (245, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10060,6 +10788,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (246, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10076,6 +10805,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (246, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10105,6 +10835,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10119,6 +10850,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10159,6 +10891,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10173,6 +10906,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10192,6 +10926,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10206,6 +10941,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10225,6 +10961,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (251, 4, fc_i_tt_5_suc(251, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',251), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10241,6 +10978,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',251), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10380,6 +11118,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 255, 4, COUNT(*) FROM tt_1 UNION SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10394,6 +11133,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 255, 4, COUNT(*) FROM tt_1 UNION SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10436,6 +11176,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (257, 4), (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10450,6 +11191,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (257, 4), (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10470,6 +11212,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (258, 4, ''), (254, 2, fc_i_tt_5_suc (258, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10486,6 +11229,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (258, 4, ''), (254, 2, fc_i_tt_5_suc (258, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10591,6 +11335,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 261, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 261, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10600,6 +11345,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (261, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (261, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10612,10 +11358,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 261, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (261, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10635,6 +11383,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10644,6 +11393,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 262, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10652,10 +11402,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 262, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10671,6 +11423,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10680,6 +11433,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (263, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (263, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10697,10 +11451,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (263, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10720,6 +11476,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10729,6 +11486,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (264, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (264, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10746,10 +11504,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (264, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10769,6 +11529,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (265, 2, fc_i_tt_5_suc(265, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',265), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10780,6 +11541,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (265, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (265, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10801,12 +11563,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',265), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (265, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10839,6 +11603,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10848,6 +11613,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 266 --> 2", nt_4.info= "new text 266 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10860,10 +11626,12 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 266 --> 2", nt_4.info= "new text 266 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10888,6 +11656,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10897,6 +11666,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (267, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10909,10 +11679,12 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (267, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10941,6 +11713,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10950,6 +11723,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',268), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10968,10 +11742,12 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',268), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11002,6 +11778,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 269, 2, COUNT(*) FROM tt_1 UNION SELECT 268, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11011,6 +11788,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (269, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (269, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11023,10 +11801,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 269, 2, COUNT(*) FROM tt_1 UNION SELECT 268, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (269, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11047,6 +11827,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (270, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (270, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11059,6 +11840,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (270, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11075,6 +11857,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (271, 2), (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11084,6 +11867,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (271, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (271, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11096,10 +11880,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (271, 2), (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (271, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11116,6 +11902,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (272, 2, ''), (268, 2, fc_i_tt_5_suc (272, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11127,6 +11914,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (272, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (272, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11139,12 +11927,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (272, 2, ''), (268, 2, fc_i_tt_5_suc (272, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (272, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11170,6 +11960,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (273, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (273, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11186,6 +11977,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (273, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11215,6 +12007,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (274, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (274, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11235,6 +12028,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (274, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11262,6 +12056,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 275, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 275, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11271,6 +12066,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (275, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (275, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11285,10 +12081,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 275, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (275, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11308,6 +12106,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (276, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (276, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11322,6 +12121,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (276, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11337,6 +12137,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11346,6 +12147,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (277, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (277, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11360,10 +12162,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (277, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11379,6 +12183,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11388,6 +12193,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (278, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (278, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11402,10 +12208,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (278, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11421,6 +12229,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (279, 2, fc_i_tt_5_suc(279, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',279), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11432,6 +12241,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (279, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (279, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11446,12 +12256,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',279), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (279, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11476,6 +12288,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (280, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (280, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11494,6 +12307,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (280, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11518,6 +12332,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (281, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (281, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11536,6 +12351,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (281, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11564,6 +12380,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (282, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (282, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11586,6 +12403,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (282, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11614,6 +12432,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 283, 2, COUNT(*) FROM tt_1 UNION SELECT 282, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11623,6 +12442,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (283, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (283, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11637,10 +12457,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 283, 2, COUNT(*) FROM tt_1 UNION SELECT 282, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (283, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11661,6 +12483,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (284, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (284, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11675,6 +12498,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (284, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11691,6 +12515,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (285, 2), (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11700,6 +12525,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (285, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (285, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11714,10 +12540,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (285, 2), (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (285, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11734,6 +12562,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (286, 2, ''), (282, 2, fc_i_tt_5_suc (286, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11745,6 +12574,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (286, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (286, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11759,12 +12589,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (286, 2, ''), (282, 2, fc_i_tt_5_suc (286, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (286, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11790,6 +12622,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (287, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (287, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11808,6 +12641,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (287, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11837,6 +12671,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (288, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (288, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11859,6 +12694,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (288, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11885,6 +12721,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (289, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (289, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11894,6 +12731,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 289, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 289, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11906,10 +12744,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (289, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 289, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11925,6 +12765,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (290, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (290, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11938,6 +12779,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 290, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11946,10 +12788,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (290, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 290, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11965,6 +12809,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (291, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (291, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11974,6 +12819,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11991,10 +12837,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (291, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12014,6 +12862,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (292, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (292, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12023,6 +12872,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12040,10 +12890,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (292, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12063,6 +12915,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (293, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (293, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12072,6 +12925,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (293, 4, fc_i_tt_5_suc(293, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',293), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12095,10 +12949,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (293, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',293), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12124,6 +12980,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (294, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (294, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12142,6 +12999,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 294 --> 4", nt_4.info= "new text 294 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12150,6 +13008,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (294, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12158,6 +13017,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 294 --> 4", nt_4.info= "new text 294 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12173,6 +13033,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (295, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (295, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12191,6 +13052,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (295, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12199,6 +13061,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (295, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12207,6 +13070,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (295, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12222,6 +13086,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (296, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (296, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12244,6 +13109,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',296), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12254,6 +13120,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (296, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12266,6 +13133,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',296), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12294,6 +13162,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (297, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (297, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12304,6 +13173,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 297, 4, COUNT(*) FROM tt_1 UNION SELECT 297, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12316,10 +13186,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (297, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 297, 4, COUNT(*) FROM tt_1 UNION SELECT 297, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12335,6 +13207,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (298, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (298, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12352,6 +13225,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (298, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12367,6 +13241,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (299, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (299, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12377,6 +13252,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (299, 4), (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12389,10 +13265,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (299, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (299, 4), (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12408,6 +13286,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (300, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (300, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12418,6 +13297,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (300, 4, ''), (296, 2, fc_i_tt_5_suc (300, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12432,10 +13312,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (300, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (300, 4, ''), (296, 2, fc_i_tt_5_suc (300, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12453,6 +13335,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (301, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (301, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12475,6 +13358,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (301, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12494,6 +13378,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (302, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (302, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12520,6 +13405,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (302, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12554,6 +13440,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (303, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (303, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12563,6 +13450,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 303, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 303, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12577,10 +13465,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (303, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 303, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12596,6 +13486,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (304, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (304, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12614,6 +13505,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (304, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12629,6 +13521,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (305, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (305, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12638,6 +13531,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12652,10 +13546,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (305, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12671,6 +13567,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (306, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (306, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12680,6 +13577,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12694,10 +13592,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (306, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12713,6 +13613,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (307, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (307, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12722,6 +13623,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (307, 4, fc_i_tt_5_suc(307, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',307), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12738,10 +13640,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (307, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',307), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12759,6 +13663,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (308, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (308, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12782,6 +13687,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (308, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12801,6 +13707,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (309, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (309, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12824,6 +13731,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (309, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12843,6 +13751,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (310, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (310, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12870,6 +13779,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (310, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12904,6 +13814,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (311, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (311, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12914,6 +13825,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 311, 4, COUNT(*) FROM tt_1 UNION SELECT 311, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12928,10 +13840,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (311, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 311, 4, COUNT(*) FROM tt_1 UNION SELECT 311, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12947,6 +13861,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (312, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (312, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12966,6 +13881,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (312, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12981,6 +13897,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (313, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (313, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12991,6 +13908,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (313, 4), (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13005,10 +13923,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (313, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (313, 4), (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13024,6 +13944,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (314, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (314, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13034,6 +13955,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (314, 4, ''), (310, 2, fc_i_tt_5_suc (314, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -13050,10 +13972,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (314, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (314, 4, ''), (310, 2, fc_i_tt_5_suc (314, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -13071,6 +13995,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (315, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (315, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13095,6 +14020,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (315, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13114,6 +14040,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (316, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (316, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13142,6 +14069,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (316, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13184,6 +14112,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (317, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` @@ -13193,6 +14122,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (317, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` @@ -13209,6 +14139,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (318, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (318, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13236,9 +14167,11 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (318, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (318, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13248,13 +14181,16 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (318, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (318, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (318, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13275,6 +14211,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (319, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (319, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13298,9 +14235,11 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (319, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (319, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13310,13 +14249,16 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (319, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (319, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (319, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13341,6 +14283,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (320, 5); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (320, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13360,9 +14303,11 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (320, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (320, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13372,13 +14317,16 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (320, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (320, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (320, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13405,6 +14353,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_1` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_1 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13426,6 +14375,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_1` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_1 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13450,8 +14400,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_2` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_2 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_2) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -13472,8 +14422,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_2` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_2 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_2) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# @@ -13497,8 +14447,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_3` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_3 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_3) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ -e-e-e-e-e-e-e-e-e-e-e- >> CS-T->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -13519,8 +14469,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_3` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_3 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_3) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# @@ -13544,6 +14494,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_4` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_4 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13565,6 +14516,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_4` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_4 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13589,6 +14541,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_5` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_5 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_5) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13610,6 +14563,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_5` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_5 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_5) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13634,6 +14588,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_6` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_6 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_6) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13655,6 +14610,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_6` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_6 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_6) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13677,6 +14633,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_7` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_7 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13691,6 +14648,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_7` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_7 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13725,13 +14683,13 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13742,13 +14700,13 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13784,8 +14742,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (329, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (329, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13796,8 +14756,10 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (329, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (329, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13828,11 +14790,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (330, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13843,11 +14804,10 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (330, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13879,6 +14839,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (331, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13889,6 +14850,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (331, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13921,6 +14883,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_8` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_8 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13935,6 +14898,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_8` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_8 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13969,11 +14933,13 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13984,11 +14950,13 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14024,8 +14992,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (335, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (335, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14036,8 +15006,10 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (335, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (335, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14068,9 +15040,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (336, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14081,9 +15054,10 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (336, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14115,6 +15089,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (337, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14125,6 +15100,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (337, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14157,8 +15133,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_9` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_9 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14172,8 +15148,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_9` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_9 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14199,8 +15175,8 @@ INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FR include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-T << -e-e-e-e-e-e-e-e-e-e-e- @@ -14213,8 +15189,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (340, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (340, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14225,13 +15203,15 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (340, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (340, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14259,6 +15239,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14272,8 +15253,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (341, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (341, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14284,12 +15267,15 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (341, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (341, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14312,8 +15298,8 @@ INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FR include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-T << -e-e-e-e-e-e-e-e-e-e-e- @@ -14326,6 +15312,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (342, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14336,11 +15323,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (342, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14364,6 +15352,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14377,6 +15366,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (343, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14387,10 +15377,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (343, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14423,8 +15415,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_10` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_10 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14438,8 +15430,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_10` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_10 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14465,10 +15457,8 @@ INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() F include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14481,8 +15471,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (346, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (346, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14493,15 +15485,15 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (346, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (346, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14529,6 +15521,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14542,8 +15535,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (347, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (347, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14554,12 +15549,15 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (347, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (347, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14582,10 +15580,8 @@ INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() F include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14598,6 +15594,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (348, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14608,13 +15605,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (348, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14638,6 +15634,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14651,6 +15648,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (349, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14661,10 +15659,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (349, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14706,6 +15706,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (351, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14714,6 +15715,7 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (351, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14760,9 +15762,11 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (353, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (353, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -14772,9 +15776,11 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (353, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (353, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -14812,8 +15818,10 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (355, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (355, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14822,8 +15830,10 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (355, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (355, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14848,6 +15858,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 357, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 357, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14867,6 +15878,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (357, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14875,10 +15887,12 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 357, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (357, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14911,6 +15925,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (359, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14919,6 +15934,7 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (359, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14943,6 +15959,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (361, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (361, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14962,6 +15979,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (361, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14970,10 +15988,12 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (361, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (361, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14997,6 +16017,7 @@ SET @var= fc_i_tt_5_suc(363, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',363), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15009,6 +16030,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',363), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15024,6 +16046,7 @@ SET @var= fc_i_nt_5_suc(364, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',364), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15036,6 +16059,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',364), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15054,6 +16078,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',365), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -15065,6 +16090,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',365), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -15080,6 +16106,7 @@ SET @var= fc_i_nt_5_suc(366, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',366), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15097,6 +16124,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',366), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15109,6 +16137,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',366), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15117,6 +16146,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',366), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15140,6 +16170,7 @@ SET @var= fc_i_nt_5_suc(367, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15153,6 +16184,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15165,6 +16197,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15173,6 +16206,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15192,6 +16226,7 @@ SET @var= fc_i_nt_5_suc(368, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',368), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15214,6 +16249,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',368), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15237,6 +16273,7 @@ SET @var= fc_i_nt_5_suc(369, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',369), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15255,6 +16292,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',369), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15288,8 +16326,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15307,8 +16347,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15342,12 +16384,14 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -15361,12 +16405,14 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/rpl/r/rpl_parallel_optimistic.result b/mysql-test/suite/rpl/r/rpl_parallel_optimistic.result index 7a51ba2b3c9..0bb0f57e463 100644 --- a/mysql-test/suite/rpl/r/rpl_parallel_optimistic.result +++ b/mysql-test/suite/rpl/r/rpl_parallel_optimistic.result @@ -1,4 +1,7 @@ include/rpl_init.inc [topology=1->2] +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); +call mtr.add_suppression("Can't find record in 't1'"); +call mtr.add_suppression("Can't find record in 't2'"); connection server_1; ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB; CREATE TABLE t1 (a int PRIMARY KEY, b INT) ENGINE=InnoDB; diff --git a/mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result b/mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result index effebdddaba..62c400d7138 100644 --- a/mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result +++ b/mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result @@ -11,6 +11,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1,1), (2,2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3,UUID()), (4,UUID()) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -23,6 +24,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1,1), (2,2) slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3,UUID()), (4,UUID()) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_row_annotate_do.result b/mysql-test/suite/rpl/r/rpl_row_annotate_do.result index c778355d182..4cd3debf3f3 100644 --- a/mysql-test/suite/rpl/r/rpl_row_annotate_do.result +++ b/mysql-test/suite/rpl/r/rpl_row_annotate_do.result @@ -153,26 +153,22 @@ slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 2 # BEGIN GTID 0-2-25 +slave-bin.000001 # Annotate_rows 2 # DELETE FROM t3 WHERE a=2 slave-bin.000001 # Table_map 2 # table_id: # (test1.t3) slave-bin.000001 # Delete_rows_v1 2 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 2 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-25 slave-bin.000001 # Annotate_rows 1 # INSERT INTO t5 (a) SELECT a.a*10000+b.a*1000+c.a*100+d.a*10 FROM t5 a, t5 b, t5 c, t5 d slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) -slave-bin.000001 # Write_rows_v1 1 # table_id: # -slave-bin.000001 # Write_rows_v1 1 # table_id: # -slave-bin.000001 # Write_rows_v1 1 # table_id: # slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-26 slave-bin.000001 # Annotate_rows 1 # INSERT INTO t3 (a) SELECT a FROM t5 WHERE a > 10 slave-bin.000001 # Table_map 1 # table_id: # (test1.t3) -slave-bin.000001 # Write_rows_v1 1 # table_id: # -slave-bin.000001 # Write_rows_v1 1 # table_id: # -slave-bin.000001 # Write_rows_v1 1 # table_id: # slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 2 # BEGIN GTID 0-2-27 +slave-bin.000001 # Annotate_rows 2 # INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Slave: Can\'t find record in \'t3\' Error_code: 1032' COLLATE 'latin1_swedish_ci')) slave-bin.000001 # Table_map 2 # table_id: # (mtr.test_suppressions) slave-bin.000001 # Write_rows_v1 2 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 2 # COMMIT @@ -197,4 +193,7 @@ connection slave; ######################################################################## FLUSH LOGS; connection master; +use test; +connection slave; +call mtr.add_suppression("Can't find record in 't3'"); include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_row_annotate_dont.result b/mysql-test/suite/rpl/r/rpl_row_annotate_dont.result index aaab2199725..4cd3debf3f3 100644 --- a/mysql-test/suite/rpl/r/rpl_row_annotate_dont.result +++ b/mysql-test/suite/rpl/r/rpl_row_annotate_dont.result @@ -45,7 +45,15 @@ a b 5 gås ######################################################################## # EVENTS ON SLAVE -# No Annotate_rows events should appear below +# The following Annotate_rows events should appear below: +# - UPDATE t1 SET b = b + 1; +# - REPLACE t1 VALUES (1,1), (2,2), (3,3); +# - INSERT INTO t2 VALUES (1,1), (2,2), (3,3) +# - INSERT INTO t3 VALUES (1,1), (2,2), (3,3) +# - DELETE t1, t2 FROM <...> +# - INSERT INTO t2 VALUES (1,1), (2,2), (3,3) +# - DELETE xt1, t2 FROM <...> +# - INSERT INTO t5(b) VALUES <...> (3 instances) ######################################################################## # Ensure that a replication failure doesn't segfault - MDEV-7864 ######################################################################## @@ -92,67 +100,75 @@ slave-bin.000001 # Table_map 1 # table_id: # (test1.t1) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-11 +slave-bin.000001 # Annotate_rows 1 # UPDATE t1 SET b = b + 1 slave-bin.000001 # Table_map 1 # table_id: # (test1.t1) slave-bin.000001 # Update_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-12 +slave-bin.000001 # Annotate_rows 1 # REPLACE t1 VALUES (1,1), (2,2), (3,3) slave-bin.000001 # Table_map 1 # table_id: # (test1.t1) slave-bin.000001 # Update_rows_v1 1 # table_id: # slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-13 +slave-bin.000001 # Annotate_rows 1 # INSERT INTO t2 VALUES (1,1), (2,2), (3,3) slave-bin.000001 # Table_map 1 # table_id: # (test1.t2) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-14 +slave-bin.000001 # Annotate_rows 1 # INSERT INTO t3 VALUES (1,1), (2,2), (3,3) slave-bin.000001 # Table_map 1 # table_id: # (test1.t3) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-15 +slave-bin.000001 # Annotate_rows 1 # DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.a=t2.a AND t2.a=t3.a slave-bin.000001 # Table_map 1 # table_id: # (test1.t2) slave-bin.000001 # Table_map 1 # table_id: # (test1.t1) slave-bin.000001 # Delete_rows_v1 1 # table_id: # slave-bin.000001 # Delete_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-17 +slave-bin.000001 # Annotate_rows 1 # INSERT INTO t2 VALUES (1,1), (2,2), (3,3) slave-bin.000001 # Table_map 1 # table_id: # (test1.t2) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-18 +slave-bin.000001 # Annotate_rows 1 # DELETE xt1, t2 FROM xt1 INNER JOIN t2 INNER JOIN t3 WHERE xt1.a=t2.a AND t2.a=t3.a slave-bin.000001 # Table_map 1 # table_id: # (test1.t2) slave-bin.000001 # Delete_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-22 +slave-bin.000001 # Annotate_rows 1 # INSERT INTO t5(b) VALUES ('foo'), ('bar'), ('baz') slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-23 +slave-bin.000001 # Annotate_rows 1 # INSERT INTO t5(b) VALUES ('gås') slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-24 +slave-bin.000001 # Annotate_rows 1 # INSERT INTO t5(b) VALUES ('gÃ¥s') slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 2 # BEGIN GTID 0-2-25 +slave-bin.000001 # Annotate_rows 2 # DELETE FROM t3 WHERE a=2 slave-bin.000001 # Table_map 2 # table_id: # (test1.t3) slave-bin.000001 # Delete_rows_v1 2 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 2 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-25 +slave-bin.000001 # Annotate_rows 1 # INSERT INTO t5 (a) SELECT a.a*10000+b.a*1000+c.a*100+d.a*10 FROM t5 a, t5 b, t5 c, t5 d slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) -slave-bin.000001 # Write_rows_v1 1 # table_id: # -slave-bin.000001 # Write_rows_v1 1 # table_id: # -slave-bin.000001 # Write_rows_v1 1 # table_id: # slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-26 +slave-bin.000001 # Annotate_rows 1 # INSERT INTO t3 (a) SELECT a FROM t5 WHERE a > 10 slave-bin.000001 # Table_map 1 # table_id: # (test1.t3) -slave-bin.000001 # Write_rows_v1 1 # table_id: # -slave-bin.000001 # Write_rows_v1 1 # table_id: # -slave-bin.000001 # Write_rows_v1 1 # table_id: # slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 2 # BEGIN GTID 0-2-27 +slave-bin.000001 # Annotate_rows 2 # INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Slave: Can\'t find record in \'t3\' Error_code: 1032' COLLATE 'latin1_swedish_ci')) slave-bin.000001 # Table_map 2 # table_id: # (mtr.test_suppressions) slave-bin.000001 # Write_rows_v1 2 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 2 # COMMIT @@ -177,4 +193,7 @@ connection slave; ######################################################################## FLUSH LOGS; connection master; +use test; +connection slave; +call mtr.add_suppression("Can't find record in 't3'"); include/rpl_end.inc 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 1072cb60f01..2778ac1bf61 100644 --- a/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result +++ b/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result @@ -25,12 +25,14 @@ INSERT INTO t2 VALUES (3,3), (4,4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Can\'t find record in \'t.\'' COLLATE 'latin1_swedish_ci')) master-bin.000001 # Table_map # # table_id: # (mtr.test_suppressions) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT, b INT) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1,1), (2,2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -66,6 +68,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1),(2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT 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 1727ff4985d..ed3035299c1 100644 --- a/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result +++ b/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result @@ -546,6 +546,7 @@ SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* error.* 1535"); call mtr.add_suppression("Slave SQL.*Could not execute Delete_rows event on table test.t1.* error.* 1032"); call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t.. cannot be converted from type.*, error.* 1677"); +call mtr.add_suppression("Can't find record in 't1'"); include/rpl_reset.inc [expecting slave to replicate correctly] connection master; @@ -713,4 +714,6 @@ include/diff_tables.inc [master:t1, slave:t1] connection master; drop table t1; connection slave; +connection slave; +call mtr.add_suppression("Can't find record in 't1'"); include/rpl_end.inc 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 f12f363a3d4..2194d8855d4 100644 --- a/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result +++ b/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result @@ -551,6 +551,7 @@ SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* error.* 1535"); call mtr.add_suppression("Slave SQL.*Could not execute Delete_rows event on table test.t1.* error.* 1032"); call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t.. cannot be converted from type.*, error.* 1677"); +call mtr.add_suppression("Can't find record in 't1'"); include/rpl_reset.inc [expecting slave to replicate correctly] connection master; diff --git a/mysql-test/suite/rpl/r/rpl_row_create_table.result b/mysql-test/suite/rpl/r/rpl_row_create_table.result index 9ba89b2fc15..b8a1e2f8246 100644 --- a/mysql-test/suite/rpl/r/rpl_row_create_table.result +++ b/mysql-test/suite/rpl/r/rpl_row_create_table.result @@ -133,6 +133,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t7 (a INT, b INT UNIQUE) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t7 SELECT a,b FROM tt3 master-bin.000001 # Table_map # # table_id: # (test.t7) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -154,6 +155,7 @@ Warning 1196 Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t7 SELECT a,b FROM tt4 master-bin.000001 # Table_map # # table_id: # (test.t7) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -273,6 +275,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1),(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -280,6 +283,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE `t2` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE t2 ENGINE=INNODB SELECT * FROM t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -287,6 +291,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE `t3` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE t3 ENGINE=INNODB SELECT * FROM t1 master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -294,10 +299,12 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE `t4` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE t4 ENGINE=INNODB SELECT * FROM t1 master-bin.000001 # Table_map # # table_id: # (test.t4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (4),(5),(6) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -360,14 +367,17 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1),(2),(3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a INT) ENGINE=INNODB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT a*a FROM t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT a+2 FROM tt1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -399,8 +409,10 @@ a include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT a*a FROM t1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT a+2 FROM tt2 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -445,6 +457,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE `mysqltest1`.`with_select` ( `f1` int(1) NOT NULL ) +master-bin.000001 # Annotate_rows # # CREATE TABLE mysqltest1.with_select AS SELECT 1 AS f1 master-bin.000001 # Table_map # # table_id: # (mysqltest1.with_select) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result b/mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result index d41ec925f00..cc85e454cd2 100644 --- a/mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result +++ b/mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result @@ -157,6 +157,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -173,10 +174,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -191,6 +194,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -207,10 +211,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -226,6 +232,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -244,10 +251,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -264,6 +273,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */ @@ -285,10 +295,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */ @@ -306,6 +318,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -324,10 +337,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -344,6 +359,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */ @@ -365,10 +381,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */ @@ -386,6 +404,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -404,10 +423,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -424,6 +445,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */ @@ -445,10 +467,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */ @@ -465,6 +489,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -481,10 +506,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -499,6 +526,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -514,10 +542,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -532,6 +562,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -547,10 +578,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -568,14 +601,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (1), (1) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -593,12 +629,15 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_error_1() VALUES (1), (1) master-bin.000001 # Table_map # # table_id: # (test.tt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -616,14 +655,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (2), (2) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -642,6 +684,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -660,10 +703,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -678,6 +723,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -696,10 +742,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -715,6 +763,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -735,10 +784,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -755,6 +806,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */ @@ -778,10 +830,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_xx_1` /* generated by server */ @@ -799,6 +853,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -819,10 +874,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -839,6 +896,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */ @@ -862,10 +920,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */ @@ -883,6 +943,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -903,10 +964,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -923,6 +986,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */ @@ -946,10 +1010,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tt_1` /* generated by server */ @@ -966,6 +1032,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -984,10 +1051,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1002,6 +1071,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1019,10 +1089,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1037,6 +1109,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1054,10 +1127,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1077,14 +1152,17 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (3), (3) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1104,12 +1182,15 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_error_1() VALUES (2), (2) master-bin.000001 # Table_map # # table_id: # (test.tt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1129,14 +1210,17 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (4), (4) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1282,6 +1366,7 @@ DROP TABLE tt_2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1297,6 +1382,7 @@ DROP TABLE nt_2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1313,6 +1399,7 @@ ERROR 42S02: Unknown table 'test.xx_1' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1328,6 +1415,7 @@ Note 1051 Unknown table 'test.xx_1' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1344,6 +1432,7 @@ ERROR 42S02: Unknown table 'test.xx_1' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1361,6 +1450,7 @@ Note 1051 Unknown table 'test.xx_1' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1377,6 +1467,7 @@ ERROR 42S02: Unknown table 'test.xx_1' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1394,6 +1485,7 @@ Note 1051 Unknown table 'test.xx_1' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1409,6 +1501,7 @@ DROP TABLE tt_2, nt_2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1424,6 +1517,7 @@ DROP TABLE tt_1, tt_2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1439,6 +1533,7 @@ DROP TABLE nt_1, nt_2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1454,6 +1549,7 @@ DROP TABLE tt_tmp_2, nt_tmp_2, nt_2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1469,6 +1565,7 @@ DROP TABLE tt_tmp_2, nt_tmp_2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1516,6 +1613,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1545,6 +1643,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (5), (5) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1563,6 +1662,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_error_1() VALUES (3), (3) master-bin.000001 # Table_map # # table_id: # (test.tt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1581,6 +1681,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (6), (6) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1602,6 +1703,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1633,6 +1735,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (7), (7) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1651,6 +1754,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_error_1() VALUES (4), (4) master-bin.000001 # Table_map # # table_id: # (test.tt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -1671,6 +1775,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (8), (8) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1695,10 +1800,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1 SELECT * FROM nt_tmp_xx_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1715,10 +1822,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_1 SELECT * FROM nt_tmp_xx_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1735,6 +1844,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1751,6 +1861,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1769,10 +1880,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (9), (9) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1791,6 +1904,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1809,10 +1923,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (10), (10) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1836,10 +1952,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1 SELECT * FROM nt_tmp_xx_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1858,6 +1976,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1876,6 +1995,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1894,6 +2014,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1914,10 +2035,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (11), (11) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1938,6 +2061,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -1958,10 +2082,12 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_1() VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.nt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_error_1() VALUES (12), (12) master-bin.000001 # Table_map # # table_id: # (test.nt_error_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result b/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result index 9f925482db1..491fb68615c 100644 --- a/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result +++ b/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result @@ -18,6 +18,6 @@ connection slave; Occurrences: update=1, delete=1 include/stop_slave.inc SET GLOBAL debug_dbug = ''; -SET GLOBAL log_warnings = 1; +SET GLOBAL log_warnings = 2; include/start_slave.inc include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_row_idempotency.result b/mysql-test/suite/rpl/r/rpl_row_idempotency.result index 96dbb090491..c655ae67185 100644 --- a/mysql-test/suite/rpl/r/rpl_row_idempotency.result +++ b/mysql-test/suite/rpl/r/rpl_row_idempotency.result @@ -6,6 +6,8 @@ call mtr.add_suppression("Can.t find record in .t[12].* error.* 1032"); call mtr.add_suppression("Cannot delete or update a parent row: a foreign key constraint fails .* error.* 1451"); call mtr.add_suppression("Cannot add or update a child row: a foreign key constraint fails .* error.* 1452"); call mtr.add_suppression("Duplicate entry .1. for key .PRIMARY.* error.* 1062"); +call mtr.add_suppression("Can't find record in 't1'"); +call mtr.add_suppression("Can't find record in 't2'"); connection slave; set @old_slave_exec_mode= @@global.slave_exec_mode; set @@global.slave_exec_mode= IDEMPOTENT; diff --git a/mysql-test/suite/rpl/r/rpl_row_loaddata_concurrent.result b/mysql-test/suite/rpl/r/rpl_row_loaddata_concurrent.result index 6c02d361058..0704f5c69a1 100644 --- a/mysql-test/suite/rpl/r/rpl_row_loaddata_concurrent.result +++ b/mysql-test/suite/rpl/r/rpl_row_loaddata_concurrent.result @@ -6,10 +6,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (c1 char(50)) engine=myisam master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # LOAD DATA CONCURRENT INFILE '../../std_data/words.dat' INTO TABLE t1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_row_log.result b/mysql-test/suite/rpl/r/rpl_row_log.result index f743e0aeb4b..0aa718cd405 100644 --- a/mysql-test/suite/rpl/r/rpl_row_log.result +++ b/mysql-test/suite/rpl/r/rpl_row_log.result @@ -24,6 +24,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -32,6 +33,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # load data infile '../../std_data/words.dat' into table t1 ignore 1 lines master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -47,6 +49,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -207,6 +210,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -215,6 +219,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # load data infile '../../std_data/words.dat' into table t1 ignore 1 lines master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -227,6 +232,7 @@ master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=MyISAM master-bin.000002 # Gtid # # GTID #-#-# master-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=MyISAM master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Annotate_rows # # insert into t2 values (1) master-bin.000002 # Table_map # # table_id: # (test.t2) master-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000002 # Query # # COMMIT @@ -244,6 +250,7 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=MyISAM slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # insert into t1 values (NULL) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -252,6 +259,7 @@ slave-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=MyISAM slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # load data infile '../../std_data/words.dat' into table t1 ignore 1 lines slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -264,6 +272,7 @@ slave-bin.000002 # Binlog_checkpoint # # slave-bin.000002 slave-bin.000002 # Gtid # # GTID #-#-# slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=MyISAM slave-bin.000002 # Gtid # # BEGIN GTID #-#-# +slave-bin.000002 # Annotate_rows # # insert into t2 values (1) slave-bin.000002 # Table_map # # table_id: # (test.t2) slave-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000002 # Query # # COMMIT @@ -285,10 +294,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(a int auto_increment primary key, b int) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL, 1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL, last_insert_id()), (NULL, last_insert_id()) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_row_log_innodb.result b/mysql-test/suite/rpl/r/rpl_row_log_innodb.result index c7598f072d9..46ad3cb9557 100644 --- a/mysql-test/suite/rpl/r/rpl_row_log_innodb.result +++ b/mysql-test/suite/rpl/r/rpl_row_log_innodb.result @@ -24,6 +24,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -32,6 +33,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=InnoDB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # load data infile '../../std_data/words.dat' into table t1 ignore 1 lines master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -47,6 +49,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -207,6 +210,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -215,6 +219,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=InnoDB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # load data infile '../../std_data/words.dat' into table t1 ignore 1 lines master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -227,6 +232,7 @@ master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=InnoDB master-bin.000002 # Gtid # # GTID #-#-# master-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=InnoDB master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Annotate_rows # # insert into t2 values (1) master-bin.000002 # Table_map # # table_id: # (test.t2) master-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000002 # Xid # # COMMIT /* XID */ @@ -244,6 +250,7 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=InnoDB slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # insert into t1 values (NULL) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Xid # # COMMIT /* XID */ @@ -252,6 +259,7 @@ slave-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=InnoDB slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # load data infile '../../std_data/words.dat' into table t1 ignore 1 lines slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Xid # # COMMIT /* XID */ @@ -264,6 +272,7 @@ slave-bin.000002 # Binlog_checkpoint # # slave-bin.000002 slave-bin.000002 # Gtid # # GTID #-#-# slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=InnoDB slave-bin.000002 # Gtid # # BEGIN GTID #-#-# +slave-bin.000002 # Annotate_rows # # insert into t2 values (1) slave-bin.000002 # Table_map # # table_id: # (test.t2) slave-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000002 # Xid # # COMMIT /* XID */ @@ -285,10 +294,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(a int auto_increment primary key, b int) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL, 1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL, last_insert_id()), (NULL, last_insert_id()) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_row_mixing_engines.result b/mysql-test/suite/rpl/r/rpl_row_mixing_engines.result index 775ae83c618..56368b9bb9e 100644 --- a/mysql-test/suite/rpl/r/rpl_row_mixing_engines.result +++ b/mysql-test/suite/rpl/r/rpl_row_mixing_engines.result @@ -127,6 +127,7 @@ INSERT INTO tt_1(trans_id, stmt_id) VALUES (7, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (7, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -135,6 +136,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (7, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -146,6 +148,7 @@ INSERT INTO tt_5(trans_id, stmt_id) VALUES (8, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (8, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -156,6 +159,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (8, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -171,6 +175,7 @@ fc_i_tt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',9), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -183,6 +188,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',9), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -198,12 +204,14 @@ CALL pc_i_tt_5_suc (10, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',10), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',10), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -214,12 +222,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',10), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',10), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -293,6 +303,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (15, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (15, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -301,6 +312,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (15, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -312,6 +324,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (16, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (16, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -322,6 +335,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (16, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -337,6 +351,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',17), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -349,6 +364,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',17), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -364,12 +380,14 @@ CALL pc_i_nt_5_suc (18, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',18), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',18), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -380,12 +398,14 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',18), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',18), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -420,6 +440,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (20, 1), (15, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -428,6 +449,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (20, 1), (15, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -440,6 +462,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (21, 1), (18, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -450,6 +473,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (21, 1), (18, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -464,6 +488,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (22, 1, ''), (20, 1, fc_i_nt_5_suc (22, 1)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -478,6 +503,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (22, 1, ''), (20, 1, fc_i_nt_5_suc (22, 1)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -506,6 +532,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 23, 1, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 23, 1, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -514,6 +541,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 23, 1, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -525,6 +553,7 @@ INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 24, 1, COUNT(*) FROM nt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 24, 1, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -533,6 +562,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 24, 1, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -544,6 +574,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 25 --> 1", tt_3.info= "new text 25 -- include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 25 --> 1", tt_3.info= "new text 25 --> 1" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_3) @@ -554,6 +585,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 25 --> 1", tt_3.info= "new text 25 --> 1" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_3) @@ -567,6 +599,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (26, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (26, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_4) @@ -577,6 +610,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (26, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_4) @@ -590,6 +624,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (27, 1, fc_i_tt_5_suc(27, 1)); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',27), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -606,6 +641,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',27), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -627,6 +663,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 28 --> 1", nt_4.info= "new text 28 --> 1" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -637,6 +674,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 28 --> 1", nt_4.info= "new text 28 --> 1" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -650,6 +688,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (29, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -660,6 +699,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (29, 1) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -677,6 +717,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',30), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -693,6 +734,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',30), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -717,6 +759,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 31, 1, COUNT(*) FROM tt_1 UNION SELECT 23, 1, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -725,6 +768,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 31, 1, COUNT(*) FROM tt_1 UNION SELECT 23, 1, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -747,6 +791,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (33, 1), (26, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -755,6 +800,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (33, 1), (26, 1) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -767,6 +813,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (34, 1, ''), (30, 2, fc_i_tt_5_suc (34, 1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -777,6 +824,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (34, 1, ''), (30, 2, fc_i_tt_5_suc (34, 1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -860,8 +908,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (37, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (37, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -870,8 +920,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (37, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (37, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -895,8 +947,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (38, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (38, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -907,8 +961,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (38, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (38, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -936,8 +992,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (39, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',39), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -950,8 +1008,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (39, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',39), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -979,12 +1039,15 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (40, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',40), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',40), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -995,12 +1058,15 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (40, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',40), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',40), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1026,10 +1092,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (41, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (41, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1038,10 +1106,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (41, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (41, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1065,10 +1135,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (42, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (42, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1079,10 +1151,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (42, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (42, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1110,10 +1184,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (43, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',43), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1126,10 +1202,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (43, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',43), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1157,14 +1235,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (44, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',44), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',44), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1175,14 +1256,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (44, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',44), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',44), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1210,12 +1294,14 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',45), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (45, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1224,12 +1310,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',45), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (45, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1255,12 +1343,14 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',46), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (46, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1271,12 +1361,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',46), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (46, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1306,12 +1398,14 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',47), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',47), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1324,12 +1418,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',47), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',47), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1359,16 +1455,19 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1379,16 +1478,19 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',48), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1414,14 +1516,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',49), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',49), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (49, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1430,14 +1535,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',49), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',49), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (49, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1461,14 +1569,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',50), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',50), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (50, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1479,14 +1590,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',50), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',50), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (50, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1514,14 +1628,17 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1534,14 +1651,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',51), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1569,18 +1689,22 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1591,18 +1715,22 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',52), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -1639,6 +1767,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (53, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1647,6 +1776,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (53, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1671,6 +1801,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (54, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1679,6 +1810,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (54, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1703,6 +1835,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (55, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1711,6 +1844,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (55, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1735,6 +1869,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (56, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1743,6 +1878,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (56, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1767,6 +1903,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (57, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1775,6 +1912,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (57, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1799,6 +1937,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (58, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1807,6 +1946,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (58, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1831,6 +1971,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (59, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1839,6 +1980,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (59, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1863,6 +2005,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (60, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1871,6 +2014,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (60, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -2444,6 +2588,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2453,6 +2598,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2465,10 +2611,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (85, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2484,6 +2632,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (86, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (86, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2493,6 +2642,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (86, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (86, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2507,10 +2657,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (86, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (86, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2528,6 +2680,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (87, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (87, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2539,6 +2692,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',87), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2555,10 +2709,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (87, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',87), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2578,6 +2734,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (88, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (88, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2587,12 +2744,14 @@ CALL pc_i_nt_5_suc (88, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',88), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',88), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2607,16 +2766,19 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (88, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',88), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',88), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2634,6 +2796,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (89, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (89, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2645,6 +2808,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (89, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (89, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2657,12 +2821,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (89, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (89, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2678,6 +2844,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2689,6 +2856,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2703,12 +2871,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (90, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2726,6 +2896,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (91, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (91, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2739,6 +2910,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',91), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2755,12 +2927,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (91, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',91), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2780,6 +2954,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (92, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (92, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2791,12 +2966,14 @@ CALL pc_i_nt_5_suc (92, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',92), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',92), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2811,18 +2988,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (92, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',92), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',92), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2842,6 +3022,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',93), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2855,6 +3036,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (93, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (93, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2867,6 +3049,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',93), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2875,6 +3058,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (93, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2892,6 +3076,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',94), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2905,6 +3090,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (94, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (94, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2919,6 +3105,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',94), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2927,6 +3114,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (94, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2946,6 +3134,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',95), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2961,6 +3150,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',95), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2977,6 +3167,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',95), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2985,6 +3176,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',95), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3006,6 +3198,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3019,12 +3212,14 @@ CALL pc_i_nt_5_suc (96, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3039,6 +3234,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3047,12 +3243,14 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',96), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3070,12 +3268,14 @@ CALL pc_i_nt_5_suc (97, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',97), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',97), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3087,6 +3287,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (97, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (97, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3099,18 +3300,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',97), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',97), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (97, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3126,12 +3330,14 @@ CALL pc_i_nt_5_suc (98, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',98), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',98), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3143,6 +3349,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (98, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (98, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3157,18 +3364,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',98), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',98), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (98, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3186,12 +3396,14 @@ CALL pc_i_nt_5_suc (99, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3205,6 +3417,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3221,18 +3434,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',99), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3252,12 +3468,14 @@ CALL pc_i_nt_5_suc (100, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3269,12 +3487,14 @@ CALL pc_i_nt_5_suc (100, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3289,24 +3509,28 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',100), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3334,6 +3558,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (101, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (101, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3351,6 +3576,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (101, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3366,6 +3592,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3376,6 +3603,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 4), (102, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3388,10 +3616,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (102, 4), (102, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3407,6 +3637,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (103, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (103, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3417,6 +3648,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (103, 4), (100, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3431,10 +3663,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (103, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (103, 4), (100, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3452,6 +3686,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (104, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (104, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3462,6 +3697,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (104, 4, ''), (104, 2, fc_i_nt_5_suc (104, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -3480,10 +3716,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (104, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (104, 4, ''), (104, 2, fc_i_nt_5_suc (104, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -3510,6 +3748,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (105, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (105, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3522,6 +3761,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (105, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3538,6 +3778,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 2), (105, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3547,6 +3788,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3559,10 +3801,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 2), (105, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (106, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3579,6 +3823,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (107, 2), (104, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3590,6 +3835,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (107, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (107, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3602,12 +3848,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (107, 2), (104, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (107, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3624,6 +3872,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (108, 2, ''), (107, 4, fc_i_nt_5_suc (108, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -3639,6 +3888,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (108, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (108, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3651,6 +3901,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (108, 2, ''), (107, 4, fc_i_nt_5_suc (108, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -3661,6 +3912,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (108, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3686,6 +3938,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3695,6 +3948,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3709,10 +3963,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (109, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3728,6 +3984,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (110, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (110, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3737,6 +3994,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (110, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (110, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3753,10 +4011,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (110, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (110, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3774,6 +4034,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (111, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (111, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3785,6 +4046,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',111), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3803,10 +4065,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (111, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',111), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3826,6 +4090,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (112, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (112, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3835,12 +4100,14 @@ CALL pc_i_nt_5_suc (112, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',112), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',112), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3857,16 +4124,19 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (112, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',112), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',112), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3884,6 +4154,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (113, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (113, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3895,6 +4166,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (113, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (113, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3909,12 +4181,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (113, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (113, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -3930,6 +4204,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3941,6 +4216,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3957,12 +4233,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (114, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3980,6 +4258,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (115, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (115, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -3993,6 +4272,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',115), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4011,12 +4291,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (115, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',115), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4036,6 +4318,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (116, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (116, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4047,12 +4330,14 @@ CALL pc_i_nt_5_suc (116, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',116), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',116), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4069,18 +4354,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (116, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',116), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',116), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4100,6 +4388,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',117), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4113,6 +4402,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (117, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (117, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4127,6 +4417,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',117), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4135,6 +4426,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (117, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4152,6 +4444,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',118), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4165,6 +4458,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (118, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (118, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4181,6 +4475,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',118), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4189,6 +4484,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (118, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4208,6 +4504,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',119), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4223,6 +4520,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',119), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4241,6 +4539,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',119), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4249,6 +4548,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',119), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4270,6 +4570,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4283,12 +4584,14 @@ CALL pc_i_nt_5_suc (120, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4305,6 +4608,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4313,12 +4617,14 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',120), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4336,12 +4642,14 @@ CALL pc_i_nt_5_suc (121, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',121), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',121), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4353,6 +4661,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (121, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (121, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4367,18 +4676,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',121), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',121), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (121, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4394,12 +4706,14 @@ CALL pc_i_nt_5_suc (122, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',122), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',122), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4411,6 +4725,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (122, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (122, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4427,18 +4742,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',122), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',122), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (122, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4456,12 +4774,14 @@ CALL pc_i_nt_5_suc (123, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4475,6 +4795,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4493,18 +4814,21 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',123), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4524,12 +4848,14 @@ CALL pc_i_nt_5_suc (124, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4541,12 +4867,14 @@ CALL pc_i_nt_5_suc (124, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4563,24 +4891,28 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',124), NAME_CONST('in_stmt_id',4) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4608,6 +4940,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (125, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (125, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4627,6 +4960,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (125, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4642,6 +4976,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4652,6 +4987,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 4), (126, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4666,10 +5002,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (126, 4), (126, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4685,6 +5023,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (127, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (127, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4695,6 +5034,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (127, 4), (124, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4711,10 +5051,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (127, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (127, 4), (124, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4732,6 +5074,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (128, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (128, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4742,6 +5085,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (128, 4, ''), (128, 2, fc_i_nt_5_suc (128, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -4762,10 +5106,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (128, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (128, 4, ''), (128, 2, fc_i_nt_5_suc (128, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -4792,6 +5138,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (129, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (129, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4806,6 +5153,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (129, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4822,6 +5170,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 2), (129, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4831,6 +5180,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4845,10 +5195,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 2), (129, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (130, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4865,6 +5217,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (131, 2), (128, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -4876,6 +5229,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (131, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (131, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4890,12 +5244,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (131, 2), (128, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (131, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4912,6 +5268,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (132, 2, ''), (131, 4, fc_i_nt_5_suc (132, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -4927,6 +5284,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (132, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (132, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4941,6 +5299,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) VALUES (132, 2, ''), (131, 4, fc_i_nt_5_suc (132, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) @@ -4951,6 +5310,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (132, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4980,6 +5340,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (133, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (133, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -4989,6 +5350,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (133, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -4997,10 +5359,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (133, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (133, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5020,6 +5384,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (134, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (134, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5031,6 +5396,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (134, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5039,12 +5405,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (134, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (134, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5066,6 +5434,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',135), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5079,6 +5448,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (135, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5087,6 +5457,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',135), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5095,6 +5466,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (135, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5114,12 +5486,14 @@ CALL pc_i_nt_5_suc (136, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5131,6 +5505,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (136, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5139,18 +5514,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',136), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (136, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5170,6 +5548,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (137, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (137, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5179,6 +5558,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (137, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5189,10 +5569,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (137, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (137, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5214,6 +5596,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (138, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (138, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5225,6 +5608,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (138, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5235,12 +5619,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (138, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (138, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5264,6 +5650,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',139), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5277,6 +5664,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (139, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5287,6 +5675,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',139), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5295,6 +5684,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (139, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5316,12 +5706,14 @@ CALL pc_i_nt_5_suc (140, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5333,6 +5725,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (140, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5343,18 +5736,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',140), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (140, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5378,6 +5774,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (141, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (141, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5387,6 +5784,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',141), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5399,10 +5797,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (141, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',141), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5428,6 +5828,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (142, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (142, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5439,6 +5840,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',142), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5451,12 +5853,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (142, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',142), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5484,6 +5888,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5497,6 +5902,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5509,6 +5915,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5517,6 +5924,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',143), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5542,12 +5950,14 @@ CALL pc_i_nt_5_suc (144, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5559,6 +5969,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5571,18 +5982,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',144), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5606,6 +6020,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (145, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (145, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5615,10 +6030,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',145), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',145), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5629,14 +6046,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (145, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',145), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',145), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5658,6 +6078,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (146, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (146, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5669,10 +6090,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',146), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',146), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5683,16 +6106,19 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (146, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',146), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',146), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5716,6 +6142,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5729,10 +6156,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5743,6 +6172,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5751,10 +6181,12 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',147), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5776,12 +6208,14 @@ CALL pc_i_nt_5_suc (148, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5793,10 +6227,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5807,22 +6243,26 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',148), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -5859,6 +6299,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (149, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (149, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5871,6 +6312,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (149, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5891,6 +6333,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (150, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5903,6 +6346,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5927,6 +6371,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (151, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5935,6 +6380,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (151, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5955,6 +6401,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (152, 4), (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -5964,6 +6411,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (152, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -5972,10 +6420,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (152, 4), (150, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (152, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -6005,6 +6455,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (153, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (153, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6019,6 +6470,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (153, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6038,6 +6490,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (154, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (154, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6054,6 +6507,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (154, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6077,6 +6531,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',155), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6095,6 +6550,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',155), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6118,12 +6574,14 @@ CALL pc_i_nt_5_suc (156, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6140,12 +6598,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',156), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6167,6 +6627,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (157, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (157, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6181,6 +6642,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (157, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6200,6 +6662,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (158, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (158, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6216,6 +6679,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (158, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6239,6 +6703,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',159), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6257,6 +6722,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',159), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6280,12 +6746,14 @@ CALL pc_i_nt_5_suc (160, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6302,12 +6770,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',160), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6331,6 +6801,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (161, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (161, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6345,6 +6816,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (161, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6366,6 +6838,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (162, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (162, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6382,6 +6855,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (162, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6407,6 +6881,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',163), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6425,6 +6900,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',163), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6450,12 +6926,14 @@ CALL pc_i_nt_5_suc (164, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6472,12 +6950,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',164), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6499,6 +6979,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (165, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (165, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6513,6 +6994,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (165, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6532,6 +7014,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (166, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (166, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6548,6 +7031,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (166, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6571,6 +7055,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',167), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6589,6 +7074,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',167), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6612,12 +7098,14 @@ CALL pc_i_nt_5_suc (168, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6634,12 +7122,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',168), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6676,6 +7166,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (169, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (169, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6690,6 +7181,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (169, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6710,6 +7202,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (170, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6724,6 +7217,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6766,6 +7260,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (172, 4), (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6780,6 +7275,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (172, 4), (170, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6805,6 +7301,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (173, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (173, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6818,6 +7315,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (173, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -6826,10 +7324,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (173, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (173, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -6845,6 +7345,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (174, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (174, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6858,6 +7359,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (174, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6868,10 +7370,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (174, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (174, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6889,6 +7393,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (175, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (175, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6904,6 +7409,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',175), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6916,10 +7422,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (175, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',175), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6939,6 +7447,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (176, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (176, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -6952,10 +7461,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',176), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',176), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6966,14 +7477,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (176, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',176), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',176), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -6991,6 +7505,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (177, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (177, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7006,6 +7521,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (177, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7014,12 +7530,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (177, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (177, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7035,6 +7553,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (178, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (178, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7050,6 +7569,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (178, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7060,12 +7580,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (178, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (178, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7083,6 +7605,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (179, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (179, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7100,6 +7623,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',179), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7112,12 +7636,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (179, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',179), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7137,6 +7663,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (180, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (180, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7152,10 +7679,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',180), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',180), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7166,16 +7695,19 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (180, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',180), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',180), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7195,6 +7727,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',181), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7212,6 +7745,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (181, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7220,6 +7754,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',181), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7228,6 +7763,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (181, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7245,6 +7781,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',182), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7262,6 +7799,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (182, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7272,6 +7810,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',182), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7280,6 +7819,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (182, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7299,6 +7839,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',183), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7318,6 +7859,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',183), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7330,6 +7872,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',183), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7338,6 +7881,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',183), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7359,6 +7903,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7376,10 +7921,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7390,6 +7937,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7398,10 +7946,12 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',184), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7419,12 +7969,14 @@ CALL pc_i_nt_5_suc (185, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7440,6 +7992,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (185, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7448,18 +8001,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',185), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (185, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -7475,12 +8031,14 @@ CALL pc_i_nt_5_suc (186, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7496,6 +8054,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (186, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7506,18 +8065,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',186), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES (186, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7535,12 +8097,14 @@ CALL pc_i_nt_5_suc (187, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7558,6 +8122,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7570,18 +8135,21 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',187), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7601,12 +8169,14 @@ CALL pc_i_nt_5_suc (188, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7622,10 +8192,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7636,22 +8208,26 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',188), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7679,6 +8255,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (189, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (189, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7697,6 +8274,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (189, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7712,6 +8290,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (190, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (190, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7730,6 +8309,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (190, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7745,6 +8325,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (191, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (191, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7763,6 +8344,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (191, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7778,6 +8360,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (192, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (192, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7798,6 +8381,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (192, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -7813,6 +8397,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (193, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (193, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7833,6 +8418,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (193, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7850,6 +8436,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (194, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (194, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7870,6 +8457,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (194, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7887,6 +8475,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (195, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (195, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7909,6 +8498,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (195, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7926,6 +8516,7 @@ INSERT INTO nt_5(trans_id, stmt_id) VALUES (196, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (196, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7946,6 +8537,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES (196, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7965,6 +8557,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',197), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -7987,6 +8580,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',197), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8008,6 +8602,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',198), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8030,6 +8625,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',198), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8051,6 +8647,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',199), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8075,6 +8672,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',199), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8096,6 +8694,7 @@ fc_i_nt_5_suc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',200), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8118,6 +8717,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',200), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8137,12 +8737,14 @@ CALL pc_i_nt_5_suc (201, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8163,12 +8765,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',201), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8186,12 +8790,14 @@ CALL pc_i_nt_5_suc (202, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8212,12 +8818,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',202), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8235,12 +8843,14 @@ CALL pc_i_nt_5_suc (203, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8261,12 +8871,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',203), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8284,12 +8896,14 @@ CALL pc_i_nt_5_suc (204, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8312,12 +8926,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',204), NAME_CONST('in_stmt_id',1) + 1) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8346,6 +8962,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 205, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 205, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8359,6 +8976,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (205, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8367,10 +8985,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 205, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (205, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8394,8 +9014,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 206, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (206, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8404,8 +9026,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 206, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (206, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8421,6 +9045,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8436,6 +9061,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (207, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8444,12 +9070,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 207 --> 2", tt_3.info= "new text 207 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (207, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8465,6 +9093,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8480,6 +9109,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (208, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8488,12 +9118,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (208, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8509,6 +9141,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (209, 2, fc_i_tt_5_suc(209, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',209), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8530,6 +9163,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (209, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8538,6 +9172,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',209), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8550,6 +9185,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (209, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8578,8 +9214,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 210 --> 2", nt_4.info= "new text 210 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (210, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8592,8 +9230,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 210 --> 2", nt_4.info= "new text 210 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (210, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8622,8 +9262,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (211, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (211, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8636,8 +9278,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (211, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (211, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8670,10 +9314,12 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',212), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (212, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8690,10 +9336,12 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',212), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (212, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8721,6 +9369,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 213, 2, COUNT(*) FROM tt_1 UNION SELECT 205, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8734,6 +9383,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (213, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8742,10 +9392,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 213, 2, COUNT(*) FROM tt_1 UNION SELECT 205, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (213, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8770,6 +9422,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (214, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8778,6 +9431,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (214, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8794,6 +9448,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (215, 2), (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8807,6 +9462,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (215, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8815,10 +9471,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (215, 2), (208, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (215, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8835,6 +9493,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (216, 2, ''), (212, 2, fc_i_tt_5_suc (216, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -8850,6 +9509,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (216, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8858,12 +9518,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (216, 2, ''), (212, 2, fc_i_tt_5_suc (216, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (216, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8893,6 +9555,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (217, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8905,6 +9568,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (217, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8938,6 +9602,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (218, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8954,6 +9619,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (218, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -8980,6 +9646,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 219, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 219, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -8998,6 +9665,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 219, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9034,6 +9702,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9052,6 +9721,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 221 --> 2", tt_3.info= "new text 221 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9067,6 +9737,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9085,6 +9756,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9100,6 +9772,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (223, 2, fc_i_tt_5_suc(223, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',223), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9120,6 +9793,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',223), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9256,6 +9930,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 227, 2, COUNT(*) FROM tt_1 UNION SELECT 219, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9274,6 +9949,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 227, 2, COUNT(*) FROM tt_1 UNION SELECT 219, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9312,6 +9988,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (229, 2), (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9330,6 +10007,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (229, 2), (222, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9346,6 +10024,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (230, 2, ''), (226, 2, fc_i_tt_5_suc (230, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9366,6 +10045,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (230, 2, ''), (226, 2, fc_i_tt_5_suc (230, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9473,6 +10153,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9482,6 +10163,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (233, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9490,10 +10172,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (233, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9517,8 +10201,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (234, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 234, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9527,8 +10213,10 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (234, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 234, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9548,6 +10236,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9557,6 +10246,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (235, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_3) @@ -9567,10 +10257,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 235 --> 4", tt_3.info= "new text 235 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (235, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_3) @@ -9592,6 +10284,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9601,6 +10294,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (236, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_4) @@ -9611,10 +10305,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (236, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_4) @@ -9636,6 +10332,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (237, 4, fc_i_tt_5_suc(237, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',237), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9647,6 +10344,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (237, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_5) @@ -9661,12 +10359,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',237), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (237, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Table_map # # table_id: # (test.tt_5) @@ -9701,8 +10401,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (238, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 238 --> 4", nt_4.info= "new text 238 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9715,8 +10417,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (238, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 238 --> 4", nt_4.info= "new text 238 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9745,8 +10449,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (239, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (239, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9759,8 +10465,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (239, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (239, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9793,8 +10501,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (240, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',240), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9813,8 +10523,10 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (240, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',240), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9847,6 +10559,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 241, 4, COUNT(*) FROM tt_1 UNION SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9856,6 +10569,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (241, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9864,10 +10578,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 241, 4, COUNT(*) FROM tt_1 UNION SELECT 233, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (241, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9892,6 +10608,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (242, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9900,6 +10617,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (242, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9920,6 +10638,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (243, 4), (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -9929,6 +10648,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (243, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9937,10 +10657,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (243, 4), (236, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (243, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9961,6 +10683,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (244, 4, ''), (240, 2, fc_i_tt_5_suc (244, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -9972,6 +10695,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (244, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -9980,12 +10704,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (244, 4, ''), (240, 2, fc_i_tt_5_suc (244, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (244, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10015,6 +10741,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (245, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10027,6 +10754,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (245, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10060,6 +10788,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (246, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10076,6 +10805,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (246, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10105,6 +10835,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10119,6 +10850,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10159,6 +10891,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10173,6 +10906,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 249 --> 4", tt_3.info= "new text 249 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10192,6 +10926,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10206,6 +10941,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10225,6 +10961,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (251, 4, fc_i_tt_5_suc(251, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',251), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10241,6 +10978,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',251), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10380,6 +11118,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 255, 4, COUNT(*) FROM tt_1 UNION SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10394,6 +11133,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 255, 4, COUNT(*) FROM tt_1 UNION SELECT 247, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10436,6 +11176,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (257, 4), (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10450,6 +11191,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (257, 4), (250, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10470,6 +11212,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (258, 4, ''), (254, 2, fc_i_tt_5_suc (258, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10486,6 +11229,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (258, 4, ''), (254, 2, fc_i_tt_5_suc (258, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10591,6 +11335,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 261, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 261, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10600,6 +11345,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (261, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (261, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10612,10 +11358,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 261, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (261, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10635,6 +11383,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10644,6 +11393,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 262, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10652,10 +11402,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (262, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 262, 2, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10671,6 +11423,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10680,6 +11433,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (263, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (263, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10697,10 +11451,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 263 --> 2", tt_3.info= "new text 263 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (263, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10720,6 +11476,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10729,6 +11486,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (264, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (264, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10746,10 +11504,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (264, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10769,6 +11529,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (265, 2, fc_i_tt_5_suc(265, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',265), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10780,6 +11541,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (265, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (265, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10801,12 +11563,14 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',265), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (265, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10839,6 +11603,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10848,6 +11613,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 266 --> 2", nt_4.info= "new text 266 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10860,10 +11626,12 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (266, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 266 --> 2", nt_4.info= "new text 266 --> 2" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10888,6 +11656,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10897,6 +11666,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (267, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10909,10 +11679,12 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (267, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (267, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -10941,6 +11713,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -10950,6 +11723,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',268), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -10968,10 +11742,12 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (268, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',268), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11002,6 +11778,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 269, 2, COUNT(*) FROM tt_1 UNION SELECT 268, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11011,6 +11788,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (269, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (269, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11023,10 +11801,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 269, 2, COUNT(*) FROM tt_1 UNION SELECT 268, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (269, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11047,6 +11827,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (270, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (270, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11059,6 +11840,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (270, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11075,6 +11857,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (271, 2), (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11084,6 +11867,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (271, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (271, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11096,10 +11880,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (271, 2), (264, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (271, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11116,6 +11902,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (272, 2, ''), (268, 2, fc_i_tt_5_suc (272, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11127,6 +11914,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (272, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (272, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11139,12 +11927,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (272, 2, ''), (268, 2, fc_i_tt_5_suc (272, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (272, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11170,6 +11960,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (273, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (273, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11186,6 +11977,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (273, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11215,6 +12007,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (274, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (274, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11235,6 +12028,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (274, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11262,6 +12056,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 275, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 275, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11271,6 +12066,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (275, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (275, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11285,10 +12081,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 275, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (275, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11308,6 +12106,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (276, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (276, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11322,6 +12121,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (276, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11337,6 +12137,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11346,6 +12147,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (277, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (277, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11360,10 +12162,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 277 --> 2", tt_3.info= "new text 277 --> 2" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (277, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11379,6 +12183,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11388,6 +12193,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (278, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (278, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11402,10 +12208,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (278, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11421,6 +12229,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (279, 2, fc_i_tt_5_suc(279, 2)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',279), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11432,6 +12241,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (279, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (279, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11446,12 +12256,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',279), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (279, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11476,6 +12288,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (280, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (280, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11494,6 +12307,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (280, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11518,6 +12332,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (281, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (281, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11536,6 +12351,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (281, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11564,6 +12380,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (282, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (282, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11586,6 +12403,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (282, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11614,6 +12432,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 283, 2, COUNT(*) FROM tt_1 UNION SELECT 282, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11623,6 +12442,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (283, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (283, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11637,10 +12457,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 283, 2, COUNT(*) FROM tt_1 UNION SELECT 282, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (283, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11661,6 +12483,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (284, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (284, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11675,6 +12498,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (284, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11691,6 +12515,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (285, 2), (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11700,6 +12525,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (285, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (285, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11714,10 +12540,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (285, 2), (278, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (285, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11734,6 +12562,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (286, 2, ''), (282, 2, fc_i_tt_5_suc (286, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -11745,6 +12574,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (286, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (286, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11759,12 +12589,14 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (286, 2, ''), (282, 2, fc_i_tt_5_suc (286, 2)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (286, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11790,6 +12622,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (287, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (287, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11808,6 +12641,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (287, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11837,6 +12671,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (288, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (288, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11859,6 +12694,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (288, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11885,6 +12721,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (289, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (289, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11894,6 +12731,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 289, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 289, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11906,10 +12744,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (289, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 289, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11925,6 +12765,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (290, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (290, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11938,6 +12779,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 290, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11946,10 +12788,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (290, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id, info) SELECT 290, 4, COUNT(*) FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -11965,6 +12809,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (291, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (291, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11974,6 +12819,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -11991,10 +12837,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (291, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 291 --> 4", tt_3.info= "new text 291 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12014,6 +12862,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (292, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (292, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12023,6 +12872,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12040,10 +12890,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (292, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12063,6 +12915,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (293, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (293, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12072,6 +12925,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (293, 4, fc_i_tt_5_suc(293, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',293), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12095,10 +12949,12 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (293, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',293), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12124,6 +12980,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (294, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (294, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12142,6 +12999,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 294 --> 4", nt_4.info= "new text 294 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12150,6 +13008,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (294, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12158,6 +13017,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE tt_4, nt_4 SET tt_4.info= "new text 294 --> 4", nt_4.info= "new text 294 --> 4" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.tt_4) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12173,6 +13033,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (295, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (295, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12191,6 +13052,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (295, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12199,6 +13061,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (295, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12207,6 +13070,7 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_3(trans_id, stmt_id) VALUES (295, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -12222,6 +13086,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (296, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (296, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12244,6 +13109,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',296), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12254,6 +13120,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (296, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12266,6 +13133,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',296), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12294,6 +13162,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (297, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (297, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12304,6 +13173,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 297, 4, COUNT(*) FROM tt_1 UNION SELECT 297, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12316,10 +13186,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (297, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 297, 4, COUNT(*) FROM tt_1 UNION SELECT 297, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12335,6 +13207,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (298, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (298, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12352,6 +13225,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (298, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12367,6 +13241,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (299, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (299, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12377,6 +13252,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (299, 4), (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12389,10 +13265,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (299, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (299, 4), (292, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12408,6 +13286,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (300, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (300, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12418,6 +13297,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (300, 4, ''), (296, 2, fc_i_tt_5_suc (300, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12432,10 +13312,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (300, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (300, 4, ''), (296, 2, fc_i_tt_5_suc (300, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12453,6 +13335,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (301, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (301, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12475,6 +13358,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (301, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12494,6 +13378,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (302, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (302, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12520,6 +13405,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (302, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12554,6 +13440,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (303, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (303, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12563,6 +13450,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 303, 4, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 303, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12577,10 +13465,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (303, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 303, 4, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12596,6 +13486,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (304, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (304, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12614,6 +13505,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (304, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12629,6 +13521,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (305, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (305, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12638,6 +13531,7 @@ UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12652,10 +13546,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (305, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE nt_3, tt_3 SET nt_3.info= "new text 305 --> 4", tt_3.info= "new text 305 --> 4" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1 master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12671,6 +13567,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (306, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (306, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12680,6 +13577,7 @@ INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12694,10 +13592,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (306, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12713,6 +13613,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (307, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (307, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12722,6 +13623,7 @@ INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (307, 4, fc_i_tt_5_suc(307, 4)) include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',307), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12738,10 +13640,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (307, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',307), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -12759,6 +13663,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (308, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (308, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12782,6 +13687,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (308, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12801,6 +13707,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (309, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (309, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12824,6 +13731,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (309, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12843,6 +13751,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (310, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (310, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12870,6 +13779,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (310, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12904,6 +13814,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (311, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (311, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12914,6 +13825,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 311, 4, COUNT(*) FROM tt_1 UNION SELECT 311, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12928,10 +13840,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (311, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 311, 4, COUNT(*) FROM tt_1 UNION SELECT 311, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12947,6 +13861,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (312, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (312, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12966,6 +13881,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (312, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12981,6 +13897,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (313, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (313, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -12991,6 +13908,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (313, 4), (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13005,10 +13923,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (313, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_4(trans_id, stmt_id) VALUES (313, 4), (306, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13024,6 +13944,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (314, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (314, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13034,6 +13955,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (314, 4, ''), (310, 2, fc_i_tt_5_suc (314, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -13050,10 +13972,12 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (314, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id, info) VALUES (314, 4, ''), (310, 2, fc_i_tt_5_suc (314, 4)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -13071,6 +13995,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (315, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (315, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13095,6 +14020,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (315, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13114,6 +14040,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (316, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (316, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13142,6 +14069,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (316, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13184,6 +14112,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (317, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` @@ -13193,6 +14122,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (317, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` @@ -13209,6 +14139,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (318, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (318, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13236,9 +14167,11 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (318, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (318, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13248,13 +14181,16 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (318, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (318, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (318, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13275,6 +14211,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (319, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (319, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13298,9 +14235,11 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (319, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (319, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13310,13 +14249,16 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (319, 4) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (319, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (319, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13341,6 +14283,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (320, 5); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (320, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13360,9 +14303,11 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (320, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (320, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13372,13 +14317,16 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (320, 5) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (320, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (320, 7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -13405,6 +14353,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_1` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_1 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13426,6 +14375,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_1` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_1 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13450,8 +14400,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_2` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_2 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_2) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -13472,8 +14422,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_2` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_2 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_2) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# @@ -13497,8 +14447,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_3` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_3 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_3) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ -e-e-e-e-e-e-e-e-e-e-e- >> CS-T->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -13519,8 +14469,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_3` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_3 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_3) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# @@ -13544,6 +14494,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_4` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_4 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13565,6 +14516,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_4` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_4 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_4) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13589,6 +14541,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_5` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_5 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_5) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13610,6 +14563,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_5` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_5 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_5) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13634,6 +14588,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_6` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_6 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_6) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13655,6 +14610,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_6` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_6 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_6) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -13677,6 +14633,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_7` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_7 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13691,6 +14648,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_7` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_7 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13725,13 +14683,13 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13742,13 +14700,13 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (328, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13784,8 +14742,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (329, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (329, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13796,8 +14756,10 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (329, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (329, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13828,11 +14790,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (330, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13843,11 +14804,10 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_7(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_7) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (330, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13879,6 +14839,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (331, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13889,6 +14850,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_7 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (331, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13921,6 +14883,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_8` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_8 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13935,6 +14898,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `tt_xx_8` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=InnoDB +master-bin.000001 # Annotate_rows # # CREATE TABLE tt_xx_8 (PRIMARY KEY(trans_id, stmt_id)) engine=Innodb SELECT * FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13969,11 +14933,13 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -13984,11 +14950,13 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (334, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14024,8 +14992,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (335, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (335, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14036,8 +15006,10 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (335, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (335, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14068,9 +15040,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (336, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14081,9 +15054,10 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_xx_8(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.tt_xx_8) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (336, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14115,6 +15089,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (337, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14125,6 +15100,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_xx_8 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (337, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14157,8 +15133,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_9` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_9 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14172,8 +15148,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_9` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_9 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14199,8 +15175,8 @@ INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FR include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-T << -e-e-e-e-e-e-e-e-e-e-e- @@ -14213,8 +15189,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (340, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (340, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14225,13 +15203,15 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (340, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (340, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14259,6 +15239,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14272,8 +15253,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (341, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (341, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14284,12 +15267,15 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (341, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (341, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14312,8 +15298,8 @@ INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FR include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-T << -e-e-e-e-e-e-e-e-e-e-e- @@ -14326,6 +15312,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (342, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14336,11 +15323,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (342, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14364,6 +15352,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14377,6 +15366,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (343, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14387,10 +15377,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_9 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_9(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_9) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (343, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14423,8 +15415,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_10` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_10 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14438,8 +15430,8 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE `nt_xx_10` ( `info` varchar(64) DEFAULT NULL, PRIMARY KEY (`trans_id`,`stmt_id`) ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE nt_xx_10 (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> CS-N->N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14465,10 +15457,8 @@ INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() F include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14481,8 +15471,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (346, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (346, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14493,15 +15485,15 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (346, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (346, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14529,6 +15521,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14542,8 +15535,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (347, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (347, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14554,12 +15549,15 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (347, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (347, 6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14582,10 +15580,8 @@ INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() F include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -e-e-e-e-e-e-e-e-e-e-e- >> IS-N<-N << -e-e-e-e-e-e-e-e-e-e-e- @@ -14598,6 +15594,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (348, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14608,13 +15605,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # -master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (348, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14638,6 +15634,7 @@ Got one of the listed errors include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14651,6 +15648,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (349, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14661,10 +15659,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_xx_10 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_xx_10(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_xx_10) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (349, 4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -14706,6 +15706,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (351, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14714,6 +15715,7 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (351, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14760,9 +15762,11 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (353, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (353, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -14772,9 +15776,11 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (353, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `S_0` +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (353, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK TO `S_0` @@ -14812,8 +15818,10 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (355, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (355, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14822,8 +15830,10 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (355, 2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (355, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14848,6 +15858,7 @@ INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 357, 2, COUNT(*) FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 357, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14867,6 +15878,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (357, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14875,10 +15887,12 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id, info) SELECT 357, 2, COUNT(*) FROM tt_1 master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (357, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14911,6 +15925,7 @@ ROLLBACK; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (359, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14919,6 +15934,7 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (359, 3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14943,6 +15959,7 @@ INSERT INTO nt_1(trans_id, stmt_id) VALUES (361, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (361, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -14962,6 +15979,7 @@ Warning # Some non-transactional changed tables couldn't be rolled back include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (361, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14970,10 +15988,12 @@ master-bin.000001 # Query # # ROLLBACK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_1(trans_id, stmt_id) VALUES (361, 2) master-bin.000001 # Table_map # # table_id: # (test.nt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(trans_id, stmt_id) VALUES (361, 5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # ROLLBACK @@ -14997,6 +16017,7 @@ SET @var= fc_i_tt_5_suc(363, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',363), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15009,6 +16030,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',363), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15024,6 +16046,7 @@ SET @var= fc_i_nt_5_suc(364, 1); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',364), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15036,6 +16059,7 @@ master-bin.000001 # Query # # COMMIT include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',364), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15054,6 +16078,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',365), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -15065,6 +16090,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',365), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -15080,6 +16106,7 @@ SET @var= fc_i_nt_5_suc(366, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',366), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15097,6 +16124,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',366), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15109,6 +16137,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',366), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15117,6 +16146,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',366), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15140,6 +16170,7 @@ SET @var= fc_i_nt_5_suc(367, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15153,6 +16184,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15165,6 +16197,7 @@ master-bin.000001 # Xid # # COMMIT /* XID */ include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15173,6 +16206,7 @@ master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',367), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15192,6 +16226,7 @@ SET @var= fc_i_nt_5_suc(368, 2); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',368), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15214,6 +16249,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',368), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15237,6 +16273,7 @@ SET @var= fc_i_nt_5_suc(369, 4); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',369), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15255,6 +16292,7 @@ include/show_binlog_events.inc include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',369), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.nt_5) master-bin.000001 # Table_map # # table_id: # (test.nt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15288,8 +16326,10 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15307,8 +16347,10 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',370), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -15342,12 +16384,14 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -15361,12 +16405,14 @@ master-bin.000001 # Table_map # # table_id: # (test.nt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_5(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_5) master-bin.000001 # Table_map # # table_id: # (test.tt_6) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO nt_3(trans_id, stmt_id) VALUES ( NAME_CONST('p_trans_id',371), NAME_CONST('in_stmt_id',1)) master-bin.000001 # Table_map # # table_id: # (test.tt_3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/rpl/r/rpl_row_rollback_to_savepoint.result b/mysql-test/suite/rpl/r/rpl_row_rollback_to_savepoint.result index 65203f32167..2f2b635a470 100644 --- a/mysql-test/suite/rpl/r/rpl_row_rollback_to_savepoint.result +++ b/mysql-test/suite/rpl/r/rpl_row_rollback_to_savepoint.result @@ -38,15 +38,18 @@ INSERT INTO t2 VALUES (1); RELEASE SAVEPOINT event_logging_1; END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `event_logging_1` +master-bin.000001 # Annotate_rows # # INSERT t3 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) @@ -94,15 +97,18 @@ INSERT INTO t2 VALUES (1); RELEASE SAVEPOINT event_logging_1; END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `event_logging_1` +master-bin.000001 # Annotate_rows # # INSERT t3 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) @@ -111,14 +117,17 @@ master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; DROP TRIGGER tr1 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE FROM t1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE FROM t2 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE FROM t3 master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -137,15 +146,18 @@ END master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW CALL p1() master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `event_logging_2` +master-bin.000001 # Annotate_rows # # INSERT t3 VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t3) @@ -179,11 +191,13 @@ SAVEPOINT savepoint_1; ROLLBACK TO savepoint_1; END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `savepoint_1` master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `savepoint_1` @@ -224,17 +238,20 @@ SAVEPOINT savepoint_1; INSERT INTO t1 VALUES (5); END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (5) master-bin.000001 # Table_map # # table_id: # (test.t) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `savepoint_1` +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (5) master-bin.000001 # Table_map # # table_id: # (test.t) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (30) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -285,13 +302,16 @@ BEGIN SAVEPOINT savepoint_1; END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t VALUES (2), (3) master-bin.000001 # Table_map # # table_id: # (test.t) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `savepoint_1` +master-bin.000001 # Annotate_rows # # INSERT INTO t VALUES (2), (3) master-bin.000001 # Table_map # # table_id: # (test.t) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (30) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -344,15 +364,18 @@ ROLLBACK TO event_logging_2; RETURN 0; END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1), (f1()), (2), (4) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `event_logging_2` +master-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1), (f1()), (2), (4) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (10) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -409,16 +432,19 @@ INSERT INTO t1 VALUES (1); RETURN 0; END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1), (f1()), (2), (4) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `event_logging_2` +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (10) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -472,13 +498,16 @@ SAVEPOINT event_logging_2; RETURN 0; END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1), (f1()), (2), (4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # SAVEPOINT `event_logging_2` +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1), (f1()), (2), (4) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (10) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result b/mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result index 800a3f41f45..8f872190cc3 100644 --- a/mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result +++ b/mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result @@ -13,14 +13,17 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -29,10 +32,11 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) -******** [master] SHOW BINLOG EVENTS IN LIMIT 2,3 ******** +******** [master] SHOW BINLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F ******** [master] SHOW BINLOG EVENTS ******** @@ -41,14 +45,17 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -59,14 +66,17 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -75,10 +85,11 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) -******** [slave] SHOW BINLOG EVENTS IN LIMIT 2,3 ******** +******** [slave] SHOW BINLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F ******** [slave] SHOW BINLOG EVENTS ******** @@ -87,14 +98,17 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -108,14 +122,17 @@ slave-relay-bin.000002 # Binlog_checkpoint # # master-bin.000001 slave-relay-bin.000002 # Gtid # # GTID #-#-# slave-relay-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT) slave-relay-bin.000002 # Gtid # # BEGIN GTID #-#-# +slave-relay-bin.000002 # Annotate_rows # # INSERT INTO t1 VALUES (1) slave-relay-bin.000002 # Table_map # # table_id: # (test.t1) slave-relay-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-relay-bin.000002 # Query # # COMMIT slave-relay-bin.000002 # Gtid # # BEGIN GTID #-#-# +slave-relay-bin.000002 # Annotate_rows # # INSERT INTO t1 VALUES (2) slave-relay-bin.000002 # Table_map # # table_id: # (test.t1) slave-relay-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-relay-bin.000002 # Query # # COMMIT slave-relay-bin.000002 # Gtid # # BEGIN GTID #-#-# +slave-relay-bin.000002 # Annotate_rows # # INSERT INTO t1 VALUES (3) slave-relay-bin.000002 # Table_map # # table_id: # (test.t1) slave-relay-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-relay-bin.000002 # Query # # COMMIT @@ -124,12 +141,13 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000002 # Rotate # # master-bin.000001;pos=POS slave-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION -******** [slave] SHOW RELAYLOG EVENTS IN LIMIT 2,3 ******** +******** [slave] SHOW RELAYLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000002 # Gtid_list # # [] slave-relay-bin.000002 # Binlog_checkpoint # # master-bin.000001 slave-relay-bin.000002 # Gtid # # GTID #-#-# +slave-relay-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT) ******** [slave] SHOW RELAYLOG EVENTS ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info @@ -149,7 +167,7 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000002 # Binlog_checkpoint # # master-bin.000002 master-bin.000002 # Gtid # # GTID #-#-# -******** [master] SHOW BINLOG EVENTS IN LIMIT 2,3 ******** +******** [master] SHOW BINLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ @@ -159,14 +177,17 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -183,7 +204,7 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000002 # Binlog_checkpoint # # slave-bin.000002 slave-bin.000002 # Gtid # # GTID #-#-# -******** [slave] SHOW BINLOG EVENTS IN LIMIT 2,3 ******** +******** [slave] SHOW BINLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000002 # Query # # use `test`; DROP TABLE IF EXISTS `t1` /* generated by server */ @@ -193,14 +214,17 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -220,12 +244,13 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000005 # Rotate # # master-bin.000002;pos=POS slave-relay-bin.000005 # Format_desc # # SERVER_VERSION, BINLOG_VERSION -******** [slave] SHOW RELAYLOG EVENTS IN LIMIT 2,3 ******** +******** [slave] SHOW RELAYLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000005 # Gtid_list # # [#-#-#] slave-relay-bin.000005 # Binlog_checkpoint # # master-bin.000001 slave-relay-bin.000005 # Binlog_checkpoint # # master-bin.000002 +slave-relay-bin.000005 # Gtid # # GTID #-#-# ******** [slave] SHOW RELAYLOG EVENTS ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info diff --git a/mysql-test/suite/rpl/r/rpl_row_to_stmt.result b/mysql-test/suite/rpl/r/rpl_row_to_stmt.result index 0cbbee4c82e..8bed108162f 100644 --- a/mysql-test/suite/rpl/r/rpl_row_to_stmt.result +++ b/mysql-test/suite/rpl/r/rpl_row_to_stmt.result @@ -18,10 +18,12 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t1 (a int primary key) slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # insert into t1 values (1),(2),(3),(4),(5) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # update t1 set a=a*10 slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_slave_skip.result b/mysql-test/suite/rpl/r/rpl_slave_skip.result index 2a0670e0b82..b9fe6842a11 100644 --- a/mysql-test/suite/rpl/r/rpl_slave_skip.result +++ b/mysql-test/suite/rpl/r/rpl_slave_skip.result @@ -17,14 +17,17 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT, b INT) ENGINE= master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (c INT, d INT) ENGINE=MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1,1),(2,4),(3,9) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1,1),(2,8),(3,27) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1,t2 SET b = d, d = b * 2 WHERE a = c master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Update_rows_v1 # # table_id: # @@ -213,7 +216,7 @@ a b 6 master only 7 master only connection slave; -SET GLOBAL SQL_SLAVE_SKIP_COUNTER=10; +SET GLOBAL SQL_SLAVE_SKIP_COUNTER=12; include/start_slave.inc SELECT * FROM t4 ORDER BY a; a b diff --git a/mysql-test/suite/rpl/r/rpl_stm_log.result b/mysql-test/suite/rpl/r/rpl_stm_log.result index bfa39abdcfc..6453538009a 100644 --- a/mysql-test/suite/rpl/r/rpl_stm_log.result +++ b/mysql-test/suite/rpl/r/rpl_stm_log.result @@ -50,6 +50,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Intvar # # INSERT_ID=1 master-bin.000001 # Query # # use `test`; insert into t1 values (NULL) master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# flush logs; create table t3 (a int)ENGINE=MyISAM; connection master; diff --git a/mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result b/mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result index 627dfb066ba..ff521eea089 100644 --- a/mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result +++ b/mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result @@ -26,12 +26,13 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) -******** [master] SHOW BINLOG EVENTS IN LIMIT 2,3 ******** +******** [master] SHOW BINLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1) master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# ******** [master] SHOW BINLOG EVENTS ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info @@ -66,12 +67,13 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) -******** [slave] SHOW BINLOG EVENTS IN LIMIT 2,3 ******** +******** [slave] SHOW BINLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1) slave-bin.000001 # Query # # COMMIT +slave-bin.000001 # Gtid # # BEGIN GTID #-#-# ******** [slave] SHOW BINLOG EVENTS ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info @@ -109,12 +111,13 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000002 # Rotate # # master-bin.000001;pos=POS slave-relay-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION -******** [slave] SHOW RELAYLOG EVENTS IN LIMIT 2,3 ******** +******** [slave] SHOW RELAYLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000002 # Gtid_list # # [] slave-relay-bin.000002 # Binlog_checkpoint # # master-bin.000001 slave-relay-bin.000002 # Gtid # # GTID #-#-# +slave-relay-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT) ******** [slave] SHOW RELAYLOG EVENTS ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info @@ -134,7 +137,7 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000002 # Binlog_checkpoint # # master-bin.000002 master-bin.000002 # Gtid # # GTID #-#-# -******** [master] SHOW BINLOG EVENTS IN LIMIT 2,3 ******** +******** [master] SHOW BINLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ @@ -165,7 +168,7 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000002 # Binlog_checkpoint # # slave-bin.000002 slave-bin.000002 # Gtid # # GTID #-#-# -******** [slave] SHOW BINLOG EVENTS IN LIMIT 2,3 ******** +******** [slave] SHOW BINLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000002 # Query # # use `test`; DROP TABLE IF EXISTS `t1` /* generated by server */ @@ -199,12 +202,13 @@ include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000005 # Rotate # # master-bin.000002;pos=POS slave-relay-bin.000005 # Format_desc # # SERVER_VERSION, BINLOG_VERSION -******** [slave] SHOW RELAYLOG EVENTS IN LIMIT 2,3 ******** +******** [slave] SHOW RELAYLOG EVENTS IN LIMIT 2,4 ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-relay-bin.000005 # Gtid_list # # [#-#-#] slave-relay-bin.000005 # Binlog_checkpoint # # master-bin.000001 slave-relay-bin.000005 # Binlog_checkpoint # # master-bin.000002 +slave-relay-bin.000005 # Gtid # # GTID #-#-# ******** [slave] SHOW RELAYLOG EVENTS ******** include/show_events.inc Log_name Pos Event_type Server_id End_log_pos Info diff --git a/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result b/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result index 6c709945111..d82f02ccd9f 100644 --- a/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result +++ b/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result @@ -21,7 +21,7 @@ binlog_format ROW set global binlog_format=DEFAULT; show global variables like "binlog_format%"; Variable_name Value -binlog_format STATEMENT +binlog_format MIXED set global binlog_format=MIXED; show global variables like "binlog_format%"; Variable_name Value diff --git a/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result b/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result index 585ebfd9bdb..23e1813d3ff 100644 --- a/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result +++ b/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result @@ -71,6 +71,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `test`; INSERT INTO t1 values(1) slave-bin.000001 # Xid # # COMMIT /* XID */ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t2 (i1) select * from t1 slave-bin.000001 # Table_map # # table_id: # (test.t2) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Query # # COMMIT @@ -79,6 +80,7 @@ slave-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`t1_tmp` /* g slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t2` /* generated by server */ slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Xid # # COMMIT /* XID */ @@ -106,6 +108,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; CREATE TABLE `t1` ( `rand()` double NOT NULL ) ENGINE=MyISAM +master-bin.000001 # Annotate_rows # # CREATE TABLE t1 ENGINE=MyISAM SELECT rand() master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -121,6 +124,7 @@ COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES(uuid()+0) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_temporary_error2.result b/mysql-test/suite/rpl/r/rpl_temporary_error2.result index 901fbb18c32..7d60d467ec7 100644 --- a/mysql-test/suite/rpl/r/rpl_temporary_error2.result +++ b/mysql-test/suite/rpl/r/rpl_temporary_error2.result @@ -1,5 +1,6 @@ include/master-slave.inc [connection master] +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); *** Provoke a deadlock on the slave, check that transaction retry succeeds. *** connection master; CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; diff --git a/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test b/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test index 0ed936d0267..07c391b6fb6 100644 --- a/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test +++ b/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test @@ -86,4 +86,7 @@ sync_slave_with_master; CHANGE MASTER TO DO_DOMAIN_IDS=(), IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=NO; --source include/start_slave.inc +connection master; +call mtr.add_suppression("Table 'gtid_slave_pos' is marked as crashed and should be repaired"); + --source include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_gtid_errorhandling.test b/mysql-test/suite/rpl/t/rpl_gtid_errorhandling.test index 9739ba8bc43..05da466597e 100644 --- a/mysql-test/suite/rpl/t/rpl_gtid_errorhandling.test +++ b/mysql-test/suite/rpl/t/rpl_gtid_errorhandling.test @@ -285,4 +285,6 @@ SET GLOBAL binlog_format=@old_format; DROP TABLE t1; DROP TABLE t2; +call mtr.add_suppression("Can't find record in 't2'"); + --source include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_idempotency.test b/mysql-test/suite/rpl/t/rpl_idempotency.test index 186c6260154..fcfe6f65e6d 100644 --- a/mysql-test/suite/rpl/t/rpl_idempotency.test +++ b/mysql-test/suite/rpl/t/rpl_idempotency.test @@ -8,6 +8,8 @@ call mtr.add_suppression("Slave SQL.*Can.t find record in .t[12].* error.* 1032" call mtr.add_suppression("Slave SQL.*Cannot delete or update a parent row: a foreign key constraint fails .* error.* 1451"); call mtr.add_suppression("Slave SQL.*Cannot add or update a child row: a foreign key constraint fails .* error.* 1452"); call mtr.add_suppression("Slave SQL.*Could not execute Write_rows event on table test.* Duplicate entry .1. for key .PRIMARY.* error.* 1062"); +call mtr.add_suppression("Can't find record in 't1'"); +call mtr.add_suppression("Can't find record in 't2'"); connection master; CREATE TABLE t1 (a INT PRIMARY KEY); diff --git a/mysql-test/suite/rpl/t/rpl_mariadb_slave_capability.test b/mysql-test/suite/rpl/t/rpl_mariadb_slave_capability.test index 0e6608fd848..a8a6d562ee5 100644 --- a/mysql-test/suite/rpl/t/rpl_mariadb_slave_capability.test +++ b/mysql-test/suite/rpl/t/rpl_mariadb_slave_capability.test @@ -111,7 +111,7 @@ REAP; SET debug_sync='RESET'; --connection master SET debug_sync='RESET'; -let $binlog_limit= 0, 8; +let $binlog_limit= 0, 10; --source include/show_binlog_events.inc --save_master_pos diff --git a/mysql-test/suite/rpl/t/rpl_parallel_optimistic.test b/mysql-test/suite/rpl/t/rpl_parallel_optimistic.test index 93dfe4d5e7c..789f59a3637 100644 --- a/mysql-test/suite/rpl/t/rpl_parallel_optimistic.test +++ b/mysql-test/suite/rpl/t/rpl_parallel_optimistic.test @@ -4,6 +4,10 @@ --let $rpl_topology=1->2 --source include/rpl_init.inc +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); +call mtr.add_suppression("Can't find record in 't1'"); +call mtr.add_suppression("Can't find record in 't2'"); + --connection server_1 ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB; CREATE TABLE t1 (a int PRIMARY KEY, b INT) ENGINE=InnoDB; diff --git a/mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test b/mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test index f1f5c584543..d4a1777a8dc 100644 --- a/mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test +++ b/mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test @@ -4,4 +4,8 @@ let $type= 'MYISAM' ; let $extra_index= ; -- source extra/rpl_tests/rpl_row_basic.test + +connection slave; +call mtr.add_suppression("Can't find record in 't1'"); + --source include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_row_idempotency.test b/mysql-test/suite/rpl/t/rpl_row_idempotency.test index cbc04a918dc..85775832b2b 100644 --- a/mysql-test/suite/rpl/t/rpl_row_idempotency.test +++ b/mysql-test/suite/rpl/t/rpl_row_idempotency.test @@ -13,6 +13,9 @@ call mtr.add_suppression("Can.t find record in .t[12].* error.* 1032"); call mtr.add_suppression("Cannot delete or update a parent row: a foreign key constraint fails .* error.* 1451"); call mtr.add_suppression("Cannot add or update a child row: a foreign key constraint fails .* error.* 1452"); call mtr.add_suppression("Duplicate entry .1. for key .PRIMARY.* error.* 1062"); +call mtr.add_suppression("Can't find record in 't1'"); +call mtr.add_suppression("Can't find record in 't2'"); + # bug#31609 Not all RBR slave errors reported as errors # bug#31552 Replication breaks when deleting rows from out-of-sync table diff --git a/mysql-test/suite/rpl/t/rpl_row_until.test b/mysql-test/suite/rpl/t/rpl_row_until.test index 8a5d743a238..478c2206a5a 100644 --- a/mysql-test/suite/rpl/t/rpl_row_until.test +++ b/mysql-test/suite/rpl/t/rpl_row_until.test @@ -18,7 +18,7 @@ let $master_pos_drop_t1= query_get_value(SHOW MASTER STATUS, Position, 1); DROP TABLE t1; # Save master log position for query DROP TABLE t1 save_master_pos; -let $master_pos_drop_t1= query_get_value(SHOW BINLOG EVENTS, Pos, 10); +#let $master_pos_drop_t1= query_get_value(SHOW BINLOG EVENTS, Pos, 10); let $master_log_file= query_get_value(SHOW BINLOG EVENTS, Log_name, 10); # Save master log position for query CREATE TABLE t2 diff --git a/mysql-test/suite/rpl/t/rpl_slave_skip.test b/mysql-test/suite/rpl/t/rpl_slave_skip.test index 8248f749c04..09ecccaf193 100644 --- a/mysql-test/suite/rpl/t/rpl_slave_skip.test +++ b/mysql-test/suite/rpl/t/rpl_slave_skip.test @@ -212,7 +212,7 @@ SELECT * FROM t6 ORDER BY a; save_master_pos; connection slave; -SET GLOBAL SQL_SLAVE_SKIP_COUNTER=10; +SET GLOBAL SQL_SLAVE_SKIP_COUNTER=12; source include/start_slave.inc; sync_with_master; diff --git a/mysql-test/suite/rpl/t/rpl_temporary_error2.test b/mysql-test/suite/rpl/t/rpl_temporary_error2.test index b4fbca7113b..49194c5d914 100644 --- a/mysql-test/suite/rpl/t/rpl_temporary_error2.test +++ b/mysql-test/suite/rpl/t/rpl_temporary_error2.test @@ -1,6 +1,8 @@ --source include/have_innodb.inc --source include/master-slave.inc +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); + --echo *** Provoke a deadlock on the slave, check that transaction retry succeeds. *** --connection master CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; diff --git a/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result b/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result index 04c45aa0dbb..0399b531eeb 100644 --- a/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result +++ b/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result @@ -1,21 +1,21 @@ SET @start_global_value = @@global.aria_recover_options; select @@global.aria_recover_options; @@global.aria_recover_options -NORMAL +BACKUP,QUICK select @@session.aria_recover_options; ERROR HY000: Variable 'aria_recover_options' is a GLOBAL variable show global variables like 'aria_recover_options'; Variable_name Value -aria_recover_options NORMAL +aria_recover_options BACKUP,QUICK show session variables like 'aria_recover_options'; Variable_name Value -aria_recover_options NORMAL +aria_recover_options BACKUP,QUICK select * from information_schema.global_variables where variable_name='aria_recover_options'; VARIABLE_NAME VARIABLE_VALUE -ARIA_RECOVER_OPTIONS NORMAL +ARIA_RECOVER_OPTIONS BACKUP,QUICK select * from information_schema.session_variables where variable_name='aria_recover_options'; VARIABLE_NAME VARIABLE_VALUE -ARIA_RECOVER_OPTIONS NORMAL +ARIA_RECOVER_OPTIONS BACKUP,QUICK set global aria_recover_options=1; select @@global.aria_recover_options; @@global.aria_recover_options diff --git a/mysql-test/suite/sys_vars/r/binlog_annotate_row_events_basic.result b/mysql-test/suite/sys_vars/r/binlog_annotate_row_events_basic.result index 6fef4fc1d32..cfebfe905b1 100644 --- a/mysql-test/suite/sys_vars/r/binlog_annotate_row_events_basic.result +++ b/mysql-test/suite/sys_vars/r/binlog_annotate_row_events_basic.result @@ -1,22 +1,22 @@ SET @start_global_value = @@global.binlog_annotate_row_events; select @@global.binlog_annotate_row_events; @@global.binlog_annotate_row_events -0 +1 select @@session.binlog_annotate_row_events; @@session.binlog_annotate_row_events -0 +1 show global variables like 'binlog_annotate_row_events'; Variable_name Value -binlog_annotate_row_events OFF +binlog_annotate_row_events ON show session variables like 'binlog_annotate_row_events'; Variable_name Value -binlog_annotate_row_events OFF +binlog_annotate_row_events ON select * from information_schema.global_variables where variable_name='binlog_annotate_row_events'; VARIABLE_NAME VARIABLE_VALUE -BINLOG_ANNOTATE_ROW_EVENTS OFF +BINLOG_ANNOTATE_ROW_EVENTS ON select * from information_schema.session_variables where variable_name='binlog_annotate_row_events'; VARIABLE_NAME VARIABLE_VALUE -BINLOG_ANNOTATE_ROW_EVENTS OFF +BINLOG_ANNOTATE_ROW_EVENTS ON set global binlog_annotate_row_events=ON; select @@global.binlog_annotate_row_events; @@global.binlog_annotate_row_events diff --git a/mysql-test/suite/sys_vars/r/binlog_format_basic.result b/mysql-test/suite/sys_vars/r/binlog_format_basic.result index 0d76d9686e3..a14fb505e6d 100644 --- a/mysql-test/suite/sys_vars/r/binlog_format_basic.result +++ b/mysql-test/suite/sys_vars/r/binlog_format_basic.result @@ -1,6 +1,6 @@ SELECT @@GLOBAL.binlog_format; @@GLOBAL.binlog_format -STATEMENT +MIXED '#---------------------BS_STVARS_002_01----------------------#' SET @start_value= @@global.binlog_format; SELECT COUNT(@@GLOBAL.binlog_format); diff --git a/mysql-test/suite/sys_vars/r/group_concat_max_len_basic.result b/mysql-test/suite/sys_vars/r/group_concat_max_len_basic.result index 48126d33ee8..fa1cc5554b0 100644 --- a/mysql-test/suite/sys_vars/r/group_concat_max_len_basic.result +++ b/mysql-test/suite/sys_vars/r/group_concat_max_len_basic.result @@ -1,22 +1,22 @@ SET @start_global_value = @@global.group_concat_max_len; SELECT @start_global_value; @start_global_value -1024 +1048576 SET @start_session_value = @@session.group_concat_max_len; SELECT @start_session_value; @start_session_value -1024 +1048576 '#--------------------FN_DYNVARS_034_01-------------------------#' SET @@global.group_concat_max_len = 100; SET @@global.group_concat_max_len = DEFAULT; SELECT @@global.group_concat_max_len; @@global.group_concat_max_len -1024 +1048576 SET @@session.group_concat_max_len = 200; SET @@session.group_concat_max_len = DEFAULT; SELECT @@session.group_concat_max_len; @@session.group_concat_max_len -1024 +1048576 '#--------------------FN_DYNVARS_034_02-------------------------#' SET @@global.group_concat_max_len = DEFAULT; SELECT @@global.group_concat_max_len = 1; @@ -160,8 +160,8 @@ ERROR 42S22: Unknown column 'group_concat_max_len' in 'field list' SET @@global.group_concat_max_len = @start_global_value; SELECT @@global.group_concat_max_len; @@global.group_concat_max_len -1024 +1048576 SET @@session.group_concat_max_len = @start_session_value; SELECT @@session.group_concat_max_len; @@session.group_concat_max_len -1024 +1048576 diff --git a/mysql-test/suite/sys_vars/r/innodb_log_compressed_pages_basic.result b/mysql-test/suite/sys_vars/r/innodb_log_compressed_pages_basic.result index 3b1ad38fd31..8cb8d900b59 100644 --- a/mysql-test/suite/sys_vars/r/innodb_log_compressed_pages_basic.result +++ b/mysql-test/suite/sys_vars/r/innodb_log_compressed_pages_basic.result @@ -1,7 +1,7 @@ SET @start_global_value = @@global.innodb_log_compressed_pages; SELECT @start_global_value; @start_global_value -0 +1 '#---------------------BS_STVARS_028_01----------------------#' SELECT COUNT(@@GLOBAL.innodb_log_compressed_pages); COUNT(@@GLOBAL.innodb_log_compressed_pages) @@ -66,4 +66,4 @@ ERROR 42S22: Unknown column 'innodb_log_compressed_pages' in 'field list' SET @@global.innodb_log_compressed_pages = @start_global_value; SELECT @@global.innodb_log_compressed_pages; @@global.innodb_log_compressed_pages -0 +1 diff --git a/mysql-test/suite/sys_vars/r/lock_wait_timeout_basic.result b/mysql-test/suite/sys_vars/r/lock_wait_timeout_basic.result index 6d1e8d3bb59..bc127bf339a 100644 --- a/mysql-test/suite/sys_vars/r/lock_wait_timeout_basic.result +++ b/mysql-test/suite/sys_vars/r/lock_wait_timeout_basic.result @@ -1,31 +1,31 @@ SET @start_global_value = @@global.lock_wait_timeout; SELECT @start_global_value; @start_global_value -31536000 +86400 SET @start_session_value = @@session.lock_wait_timeout; SELECT @start_session_value; @start_session_value -31536000 +86400 '#--------------------FN_DYNVARS_002_01-------------------------#' SET @@global.lock_wait_timeout = 100; SET @@global.lock_wait_timeout = DEFAULT; SELECT @@global.lock_wait_timeout; @@global.lock_wait_timeout -31536000 +86400 SET @@session.lock_wait_timeout = 200; SET @@session.lock_wait_timeout = DEFAULT; SELECT @@session.lock_wait_timeout; @@session.lock_wait_timeout -31536000 +86400 '#--------------------FN_DYNVARS_002_02-------------------------#' SET @@global.lock_wait_timeout = @start_global_value; SELECT @@global.lock_wait_timeout = 31536000; @@global.lock_wait_timeout = 31536000 -1 +0 SET @@session.lock_wait_timeout = @start_session_value; SELECT @@session.lock_wait_timeout = 31536000; @@session.lock_wait_timeout = 31536000 -1 +0 '#--------------------FN_DYNVARS_002_03-------------------------#' SET @@global.lock_wait_timeout = 1; SELECT @@global.lock_wait_timeout; @@ -170,8 +170,8 @@ ERROR 42S22: Unknown column 'lock_wait_timeout' in 'field list' SET @@global.lock_wait_timeout = @start_global_value; SELECT @@global.lock_wait_timeout; @@global.lock_wait_timeout -31536000 +86400 SET @@session.lock_wait_timeout = @start_session_value; SELECT @@session.lock_wait_timeout; @@session.lock_wait_timeout -31536000 +86400 diff --git a/mysql-test/suite/sys_vars/r/log_warnings_basic.result b/mysql-test/suite/sys_vars/r/log_warnings_basic.result index fee7f8966ca..eac8949f7c6 100644 --- a/mysql-test/suite/sys_vars/r/log_warnings_basic.result +++ b/mysql-test/suite/sys_vars/r/log_warnings_basic.result @@ -1,31 +1,31 @@ SET @start_global_value = @@global.log_warnings; SELECT @start_global_value; @start_global_value -1 +2 SET @start_session_value = @@session.log_warnings; SELECT @start_session_value; @start_session_value -1 +2 '#--------------------FN_DYNVARS_067_01-------------------------#' SET @@global.log_warnings = 100; SET @@global.log_warnings = DEFAULT; SELECT @@global.log_warnings; @@global.log_warnings -1 +2 SET @@session.log_warnings = 200; SET @@session.log_warnings = DEFAULT; SELECT @@session.log_warnings; @@session.log_warnings -1 +2 '#--------------------FN_DYNVARS_067_02-------------------------#' SET @@global.log_warnings = DEFAULT; SELECT @@global.log_warnings = 1; @@global.log_warnings = 1 -1 +0 SET @@session.log_warnings = DEFAULT; SELECT @@session.log_warnings = 1; @@session.log_warnings = 1 -1 +0 '#--------------------FN_DYNVARS_067_03-------------------------#' SET @@global.log_warnings = 0; SELECT @@global.log_warnings; @@ -158,8 +158,8 @@ ERROR 42S22: Unknown column 'log_warnings' in 'field list' SET @@global.log_warnings = @start_global_value; SELECT @@global.log_warnings; @@global.log_warnings -1 +2 SET @@session.log_warnings = @start_session_value; SELECT @@session.log_warnings; @@session.log_warnings -1 +2 diff --git a/mysql-test/suite/sys_vars/r/max_allowed_packet_basic.result b/mysql-test/suite/sys_vars/r/max_allowed_packet_basic.result index ec99256a862..10bda48dd43 100644 --- a/mysql-test/suite/sys_vars/r/max_allowed_packet_basic.result +++ b/mysql-test/suite/sys_vars/r/max_allowed_packet_basic.result @@ -1,7 +1,7 @@ SET @start_global_value = @@global.max_allowed_packet; SELECT @start_global_value; @start_global_value -4194304 +16777216 SET @@global.max_allowed_packet = DEFAULT; connect conn1, localhost, root,,; '#--------------------FN_DYNVARS_070_01-------------------------#' @@ -12,14 +12,14 @@ Warning 1708 The value of 'max_allowed_packet' should be no less than the value SET @@global.max_allowed_packet = DEFAULT; SELECT @@global.max_allowed_packet; @@global.max_allowed_packet -4194304 +16777216 SET @@session.max_allowed_packet = 20000; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SET @@session.max_allowed_packet = DEFAULT; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 '#--------------------FN_DYNVARS_070_02-------------------------#' SET @@global.max_allowed_packet = DEFAULT; SELECT @@global.max_allowed_packet = 1048576; @@ -54,27 +54,27 @@ SET @@session.max_allowed_packet = 1024; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 SET @@session.max_allowed_packet = 1025; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 SET @@session.max_allowed_packet = 65535; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 SET @@session.max_allowed_packet = 1073741824; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 SET @@session.max_allowed_packet = 1073741823; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 '#------------------FN_DYNVARS_070_05-----------------------#' SET @@global.max_allowed_packet = 0; Warnings: @@ -117,29 +117,29 @@ SET @@session.max_allowed_packet = 0; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 SET @@session.max_allowed_packet = 1023; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 SET @@session.max_allowed_packet = -2; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 SET @@session.max_allowed_packet = 65530.34; ERROR 42000: Incorrect argument type to variable 'max_allowed_packet' SET @@session.max_allowed_packet = 10737418241; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 SET @@session.max_allowed_packet = test; ERROR 42000: Incorrect argument type to variable 'max_allowed_packet' SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 '#------------------FN_DYNVARS_070_06-----------------------#' SELECT @@global.max_allowed_packet = VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES @@ -188,7 +188,7 @@ SET max_allowed_packet = 1024; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@max_allowed_packet; @@max_allowed_packet -4194304 +16777216 SELECT local.max_allowed_packet; ERROR 42S02: Unknown table 'local' in field list SELECT session.max_allowed_packet; @@ -199,7 +199,7 @@ connection default; SET @@global.max_allowed_packet = @start_global_value; SELECT @@global.max_allowed_packet; @@global.max_allowed_packet -4194304 +16777216 SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 diff --git a/mysql-test/suite/sys_vars/r/max_allowed_packet_func.result b/mysql-test/suite/sys_vars/r/max_allowed_packet_func.result index c31a64b3a94..62d543d0a0f 100644 --- a/mysql-test/suite/sys_vars/r/max_allowed_packet_func.result +++ b/mysql-test/suite/sys_vars/r/max_allowed_packet_func.result @@ -14,7 +14,7 @@ SET @@session.max_allowed_packet = 1024; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value SELECT @@session.max_allowed_packet; @@session.max_allowed_packet -4194304 +16777216 SET @@session.net_buffer_length = 1024; ERROR HY000: SESSION variable 'net_buffer_length' is read-only. Use SET GLOBAL to assign the value SELECT @@session.net_buffer_length; diff --git a/mysql-test/suite/sys_vars/r/myisam_recover_options_basic.result b/mysql-test/suite/sys_vars/r/myisam_recover_options_basic.result index 3fc0f563298..365b3f24c28 100644 --- a/mysql-test/suite/sys_vars/r/myisam_recover_options_basic.result +++ b/mysql-test/suite/sys_vars/r/myisam_recover_options_basic.result @@ -1,20 +1,20 @@ select @@global.myisam_recover_options; @@global.myisam_recover_options -DEFAULT +BACKUP,QUICK select @@session.myisam_recover_options; ERROR HY000: Variable 'myisam_recover_options' is a GLOBAL variable show global variables like 'myisam_recover_options'; Variable_name Value -myisam_recover_options DEFAULT +myisam_recover_options BACKUP,QUICK show session variables like 'myisam_recover_options'; Variable_name Value -myisam_recover_options DEFAULT +myisam_recover_options BACKUP,QUICK select * from information_schema.global_variables where variable_name='myisam_recover_options'; VARIABLE_NAME VARIABLE_VALUE -MYISAM_RECOVER_OPTIONS DEFAULT +MYISAM_RECOVER_OPTIONS BACKUP,QUICK select * from information_schema.session_variables where variable_name='myisam_recover_options'; VARIABLE_NAME VARIABLE_VALUE -MYISAM_RECOVER_OPTIONS DEFAULT +MYISAM_RECOVER_OPTIONS BACKUP,QUICK set global myisam_recover_options=1; ERROR HY000: Variable 'myisam_recover_options' is a read only variable set session myisam_recover_options=1; diff --git a/mysql-test/suite/sys_vars/r/replicate_annotate_row_events_basic.result b/mysql-test/suite/sys_vars/r/replicate_annotate_row_events_basic.result index 802c92268d6..08298a4f316 100644 --- a/mysql-test/suite/sys_vars/r/replicate_annotate_row_events_basic.result +++ b/mysql-test/suite/sys_vars/r/replicate_annotate_row_events_basic.result @@ -1,20 +1,20 @@ select @@global.replicate_annotate_row_events; @@global.replicate_annotate_row_events -0 +1 select @@session.replicate_annotate_row_events; ERROR HY000: Variable 'replicate_annotate_row_events' is a GLOBAL variable show global variables like 'replicate_annotate_row_events'; Variable_name Value -replicate_annotate_row_events OFF +replicate_annotate_row_events ON show session variables like 'replicate_annotate_row_events'; Variable_name Value -replicate_annotate_row_events OFF +replicate_annotate_row_events ON select * from information_schema.global_variables where variable_name='replicate_annotate_row_events'; VARIABLE_NAME VARIABLE_VALUE -REPLICATE_ANNOTATE_ROW_EVENTS OFF +REPLICATE_ANNOTATE_ROW_EVENTS ON select * from information_schema.session_variables where variable_name='replicate_annotate_row_events'; VARIABLE_NAME VARIABLE_VALUE -REPLICATE_ANNOTATE_ROW_EVENTS OFF +REPLICATE_ANNOTATE_ROW_EVENTS ON set global replicate_annotate_row_events=1; ERROR HY000: Variable 'replicate_annotate_row_events' is a read only variable set session replicate_annotate_row_events=1; diff --git a/mysql-test/suite/sys_vars/r/slave_net_timeout_basic.result b/mysql-test/suite/sys_vars/r/slave_net_timeout_basic.result index 1ef0b27b756..1b4d62c6c00 100644 --- a/mysql-test/suite/sys_vars/r/slave_net_timeout_basic.result +++ b/mysql-test/suite/sys_vars/r/slave_net_timeout_basic.result @@ -7,12 +7,12 @@ SET @@global.slave_net_timeout = 500000; SET @@global.slave_net_timeout = DEFAULT; SELECT @@global.slave_net_timeout; @@global.slave_net_timeout -3600 +60 '#--------------------FN_DYNVARS_146_02-------------------------#' SET @@global.slave_net_timeout = DEFAULT; SELECT @@global.slave_net_timeout = 3600; @@global.slave_net_timeout = 3600 -1 +0 '#--------------------FN_DYNVARS_146_03-------------------------#' SET @@global.slave_net_timeout = 0; Warnings: diff --git a/mysql-test/suite/sys_vars/r/sync_binlog_basic.result b/mysql-test/suite/sys_vars/r/sync_binlog_basic.result index bb0c8136391..2f070d05e52 100644 --- a/mysql-test/suite/sys_vars/r/sync_binlog_basic.result +++ b/mysql-test/suite/sys_vars/r/sync_binlog_basic.result @@ -1,18 +1,18 @@ SET @start_value = @@global.sync_binlog; SELECT @start_value; @start_value -0 +1 '#--------------------FN_DYNVARS_168_01------------------------#' SET @@global.sync_binlog = 99; SET @@global.sync_binlog = DEFAULT; SELECT @@global.sync_binlog; @@global.sync_binlog -0 +1 '#---------------------FN_DYNVARS_168_02-------------------------#' SET @@global.sync_binlog = @start_value; SELECT @@global.sync_binlog = 0; @@global.sync_binlog = 0 -1 +0 '#--------------------FN_DYNVARS_168_03------------------------#' SET @@global.sync_binlog = 0; SELECT @@global.sync_binlog; @@ -111,4 +111,4 @@ ERROR 42S22: Unknown column 'sync_binlog' in 'field list' SET @@global.sync_binlog = @start_value; SELECT @@global.sync_binlog; @@global.sync_binlog -0 +1 diff --git a/mysql-test/suite/sys_vars/r/sysvars_aria.result b/mysql-test/suite/sys_vars/r/sysvars_aria.result index 461eef9ec47..6516260a05d 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_aria.result +++ b/mysql-test/suite/sys_vars/r/sysvars_aria.result @@ -213,9 +213,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_RECOVER_OPTIONS SESSION_VALUE NULL -GLOBAL_VALUE NORMAL +GLOBAL_VALUE BACKUP,QUICK GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NORMAL +DEFAULT_VALUE BACKUP,QUICK VARIABLE_SCOPE GLOBAL VARIABLE_TYPE SET VARIABLE_COMMENT Specifies how corrupted tables should be automatically repaired diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result index 4b4e10141ab..46b80370912 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result @@ -1520,9 +1520,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LOG_COMPRESSED_PAGES SESSION_VALUE NULL -GLOBAL_VALUE OFF +GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF +DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enables/disables the logging of entire compressed page images. InnoDB logs the compressed pages to prevent corruption if the zlib compression algorithm changes. When turned OFF, InnoDB will assume that the zlib compression algorithm doesn't change. diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result index d9ca81542cc..ae01d4b0b29 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result @@ -122,10 +122,10 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BINLOG_ANNOTATE_ROW_EVENTS -SESSION_VALUE OFF -GLOBAL_VALUE OFF +SESSION_VALUE ON +GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF +DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Tells the master to annotate RBR events with the statement that caused these events @@ -206,10 +206,10 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BINLOG_FORMAT -SESSION_VALUE STATEMENT -GLOBAL_VALUE STATEMENT +SESSION_VALUE MIXED +GLOBAL_VALUE MIXED GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE STATEMENT +DEFAULT_VALUE MIXED VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT What form of binary logging the master will use: either ROW for row-based binary logging, STATEMENT for statement-based binary logging, or MIXED. MIXED is statement-based binary logging except for those statements where only row-based is correct: those which involve user-defined functions (i.e. UDFs) or the UUID() function; for those, row-based binary logging is automatically used. @@ -1004,13 +1004,13 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GROUP_CONCAT_MAX_LEN -SESSION_VALUE 1024 -GLOBAL_VALUE 1024 +SESSION_VALUE 1048576 +GLOBAL_VALUE 1048576 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 +DEFAULT_VALUE 1048576 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT The maximum length of the result of function GROUP_CONCAT() +VARIABLE_COMMENT The maximum length of the result of function GROUP_CONCAT() NUMERIC_MIN_VALUE 4 NUMERIC_MAX_VALUE 18446744073709551615 NUMERIC_BLOCK_SIZE 1 @@ -1592,10 +1592,10 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOCK_WAIT_TIMEOUT -SESSION_VALUE 31536000 -GLOBAL_VALUE 31536000 +SESSION_VALUE 86400 +GLOBAL_VALUE 86400 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 31536000 +DEFAULT_VALUE 86400 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Timeout in seconds to wait for a lock before returning an error. @@ -1705,9 +1705,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_SLOW_ADMIN_STATEMENTS SESSION_VALUE NULL -GLOBAL_VALUE OFF +GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF +DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow OPTIMIZE, ANALYZE, ALTER and other administrative statements to the slow log if it is open. @@ -1747,9 +1747,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_SLOW_SLAVE_STATEMENTS SESSION_VALUE NULL -GLOBAL_VALUE OFF +GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF +DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow statements executed by slave thread to the slow log if it is open. @@ -1774,10 +1774,10 @@ ENUM_VALUE_LIST innodb,query_plan,explain READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_WARNINGS -SESSION_VALUE 1 -GLOBAL_VALUE 1 +SESSION_VALUE 2 +GLOBAL_VALUE 2 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 +DEFAULT_VALUE 2 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Log some not critical warnings to the general log file.Value can be between 0 and 11. Higher values mean more verbosity @@ -1816,10 +1816,10 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MAX_ALLOWED_PACKET -SESSION_VALUE 4194304 -GLOBAL_VALUE 4194304 +SESSION_VALUE 16777216 +GLOBAL_VALUE 16777216 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4194304 +DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max packet length to send to or receive from the server @@ -1999,7 +1999,7 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_LONG_DATA_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 4194304 +GLOBAL_VALUE 16777216 GLOBAL_VALUE_ORIGIN AUTO DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL @@ -2279,9 +2279,9 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_RECOVER_OPTIONS SESSION_VALUE NULL -GLOBAL_VALUE DEFAULT +GLOBAL_VALUE BACKUP,QUICK GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT +DEFAULT_VALUE BACKUP,QUICK VARIABLE_SCOPE GLOBAL VARIABLE_TYPE SET VARIABLE_COMMENT Specifies how corrupted tables should be automatically repaired @@ -3861,9 +3861,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SYNC_BINLOG SESSION_VALUE NULL -GLOBAL_VALUE 0 +GLOBAL_VALUE 1 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 +DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush binary log to disk after every #th event. Use 0 (default) to disable synchronous flushing diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result index fd5102d8a60..5ac6920d42c 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result @@ -122,10 +122,10 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BINLOG_ANNOTATE_ROW_EVENTS -SESSION_VALUE OFF -GLOBAL_VALUE OFF +SESSION_VALUE ON +GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF +DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Tells the master to annotate RBR events with the statement that caused these events @@ -206,10 +206,10 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BINLOG_FORMAT -SESSION_VALUE STATEMENT -GLOBAL_VALUE STATEMENT +SESSION_VALUE MIXED +GLOBAL_VALUE MIXED GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE STATEMENT +DEFAULT_VALUE MIXED VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT What form of binary logging the master will use: either ROW for row-based binary logging, STATEMENT for statement-based binary logging, or MIXED. MIXED is statement-based binary logging except for those statements where only row-based is correct: those which involve user-defined functions (i.e. UDFs) or the UUID() function; for those, row-based binary logging is automatically used. @@ -1032,13 +1032,13 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GROUP_CONCAT_MAX_LEN -SESSION_VALUE 1024 -GLOBAL_VALUE 1024 +SESSION_VALUE 1048576 +GLOBAL_VALUE 1048576 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 +DEFAULT_VALUE 1048576 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT The maximum length of the result of function GROUP_CONCAT() +VARIABLE_COMMENT The maximum length of the result of function GROUP_CONCAT() NUMERIC_MIN_VALUE 4 NUMERIC_MAX_VALUE 18446744073709551615 NUMERIC_BLOCK_SIZE 1 @@ -1718,10 +1718,10 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOCK_WAIT_TIMEOUT -SESSION_VALUE 31536000 -GLOBAL_VALUE 31536000 +SESSION_VALUE 86400 +GLOBAL_VALUE 86400 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 31536000 +DEFAULT_VALUE 86400 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Timeout in seconds to wait for a lock before returning an error. @@ -1873,9 +1873,9 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_SLOW_ADMIN_STATEMENTS SESSION_VALUE NULL -GLOBAL_VALUE OFF +GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF +DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow OPTIMIZE, ANALYZE, ALTER and other administrative statements to the slow log if it is open. @@ -1915,9 +1915,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_SLOW_SLAVE_STATEMENTS SESSION_VALUE NULL -GLOBAL_VALUE OFF +GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF +DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow statements executed by slave thread to the slow log if it is open. @@ -1942,10 +1942,10 @@ ENUM_VALUE_LIST innodb,query_plan,explain READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_WARNINGS -SESSION_VALUE 1 -GLOBAL_VALUE 1 +SESSION_VALUE 2 +GLOBAL_VALUE 2 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 +DEFAULT_VALUE 2 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Log some not critical warnings to the general log file.Value can be between 0 and 11. Higher values mean more verbosity @@ -1998,10 +1998,10 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MAX_ALLOWED_PACKET -SESSION_VALUE 4194304 -GLOBAL_VALUE 4194304 +SESSION_VALUE 16777216 +GLOBAL_VALUE 16777216 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4194304 +DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max packet length to send to or receive from the server @@ -2181,7 +2181,7 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_LONG_DATA_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 4194304 +GLOBAL_VALUE 16777216 GLOBAL_VALUE_ORIGIN AUTO DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL @@ -2475,9 +2475,9 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_RECOVER_OPTIONS SESSION_VALUE NULL -GLOBAL_VALUE DEFAULT +GLOBAL_VALUE BACKUP,QUICK GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT +DEFAULT_VALUE BACKUP,QUICK VARIABLE_SCOPE GLOBAL VARIABLE_TYPE SET VARIABLE_COMMENT Specifies how corrupted tables should be automatically repaired @@ -3637,9 +3637,9 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME REPLICATE_ANNOTATE_ROW_EVENTS SESSION_VALUE NULL -GLOBAL_VALUE OFF +GLOBAL_VALUE ON GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF +DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Tells the slave to write annotate rows events received from the master to its own binary log. Ignored if log_slave_updates is not set @@ -4087,7 +4087,7 @@ VARIABLE_NAME SLAVE_NET_TIMEOUT SESSION_VALUE NULL GLOBAL_VALUE 120 GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 3600 +DEFAULT_VALUE 60 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for more data from any master/slave connection before aborting the read @@ -4617,9 +4617,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SYNC_BINLOG SESSION_VALUE NULL -GLOBAL_VALUE 0 +GLOBAL_VALUE 1 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 +DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush binary log to disk after every #th event. Use 0 (default) to disable synchronous flushing diff --git a/mysql-test/t/bug39022.test b/mysql-test/t/bug39022.test index 8d1deb163d7..d293788e58e 100644 --- a/mysql-test/t/bug39022.test +++ b/mysql-test/t/bug39022.test @@ -6,6 +6,8 @@ --echo # Bug #39022: Mysql randomly crashing in lock_sec_rec_cons_read_sees --echo # +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); + CREATE TABLE t1(a TINYINT NOT NULL,b TINYINT,PRIMARY KEY(b)) ENGINE=innodb; CREATE TABLE t2(d TINYINT NOT NULL,UNIQUE KEY(d)) ENGINE=innodb; INSERT INTO t1 VALUES (13,0),(8,1),(9,2),(6,3), diff --git a/mysql-test/t/delete.test b/mysql-test/t/delete.test index 6a72ae9c38b..c82420640c2 100644 --- a/mysql-test/t/delete.test +++ b/mysql-test/t/delete.test @@ -2,6 +2,8 @@ # Check for problems with delete # +call mtr.add_suppression("Sort aborted.*"); + --disable_warnings drop table if exists t1,t2,t3,t11,t12; --enable_warnings diff --git a/mysql-test/t/filesort_debug.test b/mysql-test/t/filesort_debug.test index 86795298f07..a8833617c09 100644 --- a/mysql-test/t/filesort_debug.test +++ b/mysql-test/t/filesort_debug.test @@ -2,6 +2,8 @@ --source include/have_debug_sync.inc --source include/count_sessions.inc +call mtr.add_suppression("Sort aborted.*"); + SET @old_debug= @@session.debug; --echo # diff --git a/mysql-test/t/func_gconcat.test b/mysql-test/t/func_gconcat.test index bdd295d0fa9..44b9ad53062 100644 --- a/mysql-test/t/func_gconcat.test +++ b/mysql-test/t/func_gconcat.test @@ -861,7 +861,7 @@ CREATE TABLE t2 SELECT GROUP_CONCAT(UPPER(f1) ORDER BY f2) FROM t1; SHOW CREATE TABLE t2; DROP TABLE t2; -SET group_concat_max_len= DEFAULT; +SET group_concat_max_len= 1024; SELECT LENGTH(GROUP_CONCAT(f1 ORDER BY f2)) FROM t1; SET group_concat_max_len= 499999; diff --git a/mysql-test/t/innodb_mysql_lock.test b/mysql-test/t/innodb_mysql_lock.test index 39ea7e5df88..24ace437c50 100644 --- a/mysql-test/t/innodb_mysql_lock.test +++ b/mysql-test/t/innodb_mysql_lock.test @@ -7,6 +7,8 @@ set @old_innodb_lock_wait_timeout=@@global.innodb_lock_wait_timeout; set global innodb_lock_wait_timeout=300; set session innodb_lock_wait_timeout=300; +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); + --echo # --echo # Bug #22876 Four-way deadlock --echo # diff --git a/mysql-test/t/limit_rows_examined.test b/mysql-test/t/limit_rows_examined.test index 3f7424d5541..4997bacec57 100644 --- a/mysql-test/t/limit_rows_examined.test +++ b/mysql-test/t/limit_rows_examined.test @@ -2,6 +2,8 @@ # Tests for LIMIT ROWS EXAMINED, MDEV-28 # +call mtr.add_suppression("Sort aborted.*"); + set @save_join_cache_level = @@join_cache_level; create table t1 (c1 char(2)); diff --git a/mysql-test/t/log_state.test b/mysql-test/t/log_state.test index 68e06dfa042..5a08b8015f0 100644 --- a/mysql-test/t/log_state.test +++ b/mysql-test/t/log_state.test @@ -4,6 +4,8 @@ --source include/not_embedded.inc --source include/have_csv.inc +call mtr.add_suppression("options .* --log_slow_queries is not set"); + # Several subtests modify global variables. Save the initial values only here, # but reset to the initial values per subtest. SET @old_general_log= @@global.general_log; diff --git a/mysql-test/t/mix2_myisam.test b/mysql-test/t/mix2_myisam.test index afb3caca0ea..97195130967 100644 --- a/mysql-test/t/mix2_myisam.test +++ b/mysql-test/t/mix2_myisam.test @@ -3,6 +3,9 @@ # Last update: 2006-07-26 ML create this test as derivate from innodb.test # +# Generated by an ALTER TABLE in include/mix2.inc +call mtr.add_suppression("Can't find record in .*"); + let $engine_type= MyISAM; let $other_engine_type= MEMORY; # There are unfortunately only MyISAM and MEMORY all time available diff --git a/mysql-test/t/mrr_icp_extra.test b/mysql-test/t/mrr_icp_extra.test index f1b21154449..75ddc85b984 100644 --- a/mysql-test/t/mrr_icp_extra.test +++ b/mysql-test/t/mrr_icp_extra.test @@ -1,4 +1,7 @@ +# Generated by an ALTER TABLE in include/varchar.inc +call mtr.add_suppression("Can't find record in .*"); + set @mrr_icp_extra_tmp=@@optimizer_switch; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; SET NAMES latin1; diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index a454fa25ac4..dac19c1d395 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -2,6 +2,9 @@ # Test bugs in the MyISAM code # +call mtr.add_suppression("Can't find record in '.*'"); +call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); + # Initialise --disable_warnings drop table if exists t1,t2,t3; diff --git a/mysql-test/t/myisam_enable_keys-10506.test b/mysql-test/t/myisam_enable_keys-10506.test index 8e1c058c3f0..33eb973c402 100644 --- a/mysql-test/t/myisam_enable_keys-10506.test +++ b/mysql-test/t/myisam_enable_keys-10506.test @@ -1,6 +1,9 @@ # # MDEV-10506 Protocol::end_statement(): Assertion `0' failed upon ALTER TABLE # + +call mtr.add_suppression("Can't find record in '.*'"); + CREATE TABLE t1 ( pk INT AUTO_INCREMENT, i INT, diff --git a/mysql-test/t/myisam_recover.test b/mysql-test/t/myisam_recover.test index 0c686e59fb1..86a4d16d0f9 100644 --- a/mysql-test/t/myisam_recover.test +++ b/mysql-test/t/myisam_recover.test @@ -1,5 +1,7 @@ --source include/count_sessions.inc +call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); + --echo # --echo # Tests for corrupted MyISAM tables and MyISAMMRG tables with corrupted --echo # children.. diff --git a/mysql-test/t/order_by.test b/mysql-test/t/order_by.test index 13c8db5a481..1e32f789806 100644 --- a/mysql-test/t/order_by.test +++ b/mysql-test/t/order_by.test @@ -2,6 +2,8 @@ # Testing ORDER BY # +call mtr.add_suppression("Sort aborted.*"); + --disable_warnings drop table if exists t1,t2,t3; --enable_warnings diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test index 62a9173b526..a05e086d79b 100644 --- a/mysql-test/t/partition_innodb.test +++ b/mysql-test/t/partition_innodb.test @@ -6,6 +6,8 @@ if (`select plugin_auth_version < "5.6.25" from information_schema.plugins where --source include/have_partition.inc --source include/have_innodb.inc +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); + set global default_storage_engine='innodb'; set session default_storage_engine='innodb'; diff --git a/mysql-test/t/partition_innodb_plugin.test b/mysql-test/t/partition_innodb_plugin.test index 18ed0a27f96..74e1747746b 100644 --- a/mysql-test/t/partition_innodb_plugin.test +++ b/mysql-test/t/partition_innodb_plugin.test @@ -4,6 +4,7 @@ let $MYSQLD_DATADIR= `SELECT @@datadir`; call mtr.add_suppression("InnoDB: Table .* does not exist in the InnoDB internal data dictionary .*"); +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); --echo # --echo # Bug#11766879/Bug#60106: DIFF BETWEEN # OF INDEXES IN MYSQL VS INNODB, diff --git a/mysql-test/t/row-checksum.test b/mysql-test/t/row-checksum.test index 920a2384aa8..82efcf3ef93 100644 --- a/mysql-test/t/row-checksum.test +++ b/mysql-test/t/row-checksum.test @@ -54,7 +54,7 @@ checksum table t1 quick; checksum table t1 extended; drop table if exists t1; -create table t1 (a int null, v varchar(100)) engine=innodb checksum=0 row_format=fixed; +create table t1 (a int null, v varchar(100)) engine=innodb checksum=0 row_format=compact; insert into t1 values(null, null), (1, "hello"); checksum table t1; checksum table t1 quick; diff --git a/mysql-test/t/set_statement_debug.test b/mysql-test/t/set_statement_debug.test index a409370a61a..7089733ab4f 100644 --- a/mysql-test/t/set_statement_debug.test +++ b/mysql-test/t/set_statement_debug.test @@ -1,6 +1,8 @@ --source include/have_debug.inc --source include/have_debug_sync.inc +call mtr.add_suppression("Sort aborted.*"); + set @save_debug_dbug= @@debug_dbug; # check that change debug_dbug visible in SELECT diff --git a/mysql-test/t/set_statement_notembedded_binlog.test b/mysql-test/t/set_statement_notembedded_binlog.test index 62c351ed6f7..b0c00008d4f 100644 --- a/mysql-test/t/set_statement_notembedded_binlog.test +++ b/mysql-test/t/set_statement_notembedded_binlog.test @@ -1,5 +1,6 @@ --source include/have_log_bin.inc --source include/not_embedded.inc +--source include/have_binlog_format_statement.inc --disable_warnings drop table if exists t1; diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 77b9c305ac8..88bba3b5ce6 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -12,6 +12,8 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12; drop view if exists v2; --enable_warnings +call mtr.add_suppression("Sort aborted.*"); + set @subselect_tmp=@@optimizer_switch; set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); diff --git a/mysql-test/t/xa.test b/mysql-test/t/xa.test index f1576f021ec..c1f36129d75 100644 --- a/mysql-test/t/xa.test +++ b/mysql-test/t/xa.test @@ -8,6 +8,8 @@ # Save the initial number of concurrent sessions --source include/count_sessions.inc +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); + --disable_warnings drop table if exists t1, t2; --enable_warnings diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 23ac568d95e..800aeb4db3a 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -7277,8 +7277,8 @@ struct my_option my_long_options[]= "The value has to be a multiple of 256.", &opt_binlog_rows_event_max_size, &opt_binlog_rows_event_max_size, 0, GET_ULONG, REQUIRED_ARG, - /* def_value */ 1024, /* min_value */ 256, /* max_value */ ULONG_MAX, - /* sub_size */ 0, /* block_size */ 256, + /* def_value */ 8192, /* min_value */ 256, /* max_value */ ULONG_MAX, + /* sub_size */ 0, /* block_size */ 256, /* app_type */ 0 }, #ifndef DISABLE_GRANT_OPTIONS diff --git a/sql/slave.h b/sql/slave.h index b2a1e308aba..38f3b7c8430 100644 --- a/sql/slave.h +++ b/sql/slave.h @@ -49,7 +49,7 @@ #include "rpl_filter.h" #include "rpl_tblmap.h" -#define SLAVE_NET_TIMEOUT 3600 +#define SLAVE_NET_TIMEOUT 60 #define MAX_SLAVE_ERROR 2000 diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 5bf8eb9d7cd..be5bf571898 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -514,7 +514,7 @@ static Sys_var_enum Sys_binlog_format( "UDFs) or the UUID() function; for those, row-based binary logging is " "automatically used.", SESSION_VAR(binlog_format), CMD_LINE(REQUIRED_ARG, OPT_BINLOG_FORMAT), - binlog_format_names, DEFAULT(BINLOG_FORMAT_STMT), + binlog_format_names, DEFAULT(BINLOG_FORMAT_MIXED), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(binlog_format_check), ON_UPDATE(fix_binlog_format_after_update)); @@ -1144,7 +1144,7 @@ static Sys_var_ulong Sys_lock_wait_timeout( "lock_wait_timeout", "Timeout in seconds to wait for a lock before returning an error.", SESSION_VAR(lock_wait_timeout), CMD_LINE(REQUIRED_ARG), - VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(LONG_TIMEOUT), BLOCK_SIZE(1)); + VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(24 * 60 * 60), BLOCK_SIZE(1)); #ifdef HAVE_MLOCKALL static Sys_var_mybool Sys_locked_in_memory( @@ -1203,13 +1203,13 @@ static Sys_var_mybool Sys_log_slow_admin_statements( "Log slow OPTIMIZE, ANALYZE, ALTER and other administrative statements to " "the slow log if it is open.", GLOBAL_VAR(opt_log_slow_admin_statements), - CMD_LINE(OPT_ARG), DEFAULT(FALSE)); + CMD_LINE(OPT_ARG), DEFAULT(TRUE)); static Sys_var_mybool Sys_log_slow_slave_statements( "log_slow_slave_statements", "Log slow statements executed by slave thread to the slow log if it is open.", GLOBAL_VAR(opt_log_slow_slave_statements), - CMD_LINE(OPT_ARG), DEFAULT(FALSE)); + CMD_LINE(OPT_ARG), DEFAULT(TRUE)); static Sys_var_ulong Sys_log_warnings( "log_warnings", @@ -1217,7 +1217,7 @@ static Sys_var_ulong Sys_log_warnings( "Value can be between 0 and 11. Higher values mean more verbosity", SESSION_VAR(log_warnings), CMD_LINE(OPT_ARG, 'W'), - VALID_RANGE(0, UINT_MAX), DEFAULT(1), BLOCK_SIZE(1)); + VALID_RANGE(0, UINT_MAX), DEFAULT(2), BLOCK_SIZE(1)); static bool update_cached_long_query_time(sys_var *self, THD *thd, enum_var_type type) @@ -1337,7 +1337,7 @@ static Sys_var_ulong Sys_max_allowed_packet( "max_allowed_packet", "Max packet length to send to or receive from the server", SESSION_VAR(max_allowed_packet), CMD_LINE(REQUIRED_ARG), - VALID_RANGE(1024, 1024*1024*1024), DEFAULT(4*1024*1024), + VALID_RANGE(1024, 1024*1024*1024), DEFAULT(16*1024*1024), BLOCK_SIZE(1024), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_max_allowed_packet)); @@ -3989,9 +3989,9 @@ static Sys_var_ulong Sys_default_week_format( static Sys_var_ulonglong Sys_group_concat_max_len( "group_concat_max_len", - "The maximum length of the result of function GROUP_CONCAT()", + "The maximum length of the result of function GROUP_CONCAT()", SESSION_VAR(group_concat_max_len), CMD_LINE(REQUIRED_ARG), - VALID_RANGE(4, SIZE_T_MAX), DEFAULT(1024), BLOCK_SIZE(1)); + VALID_RANGE(4, SIZE_T_MAX), DEFAULT(1024*1024), BLOCK_SIZE(1)); static char *glob_hostname_ptr; static Sys_var_charptr Sys_hostname( @@ -4672,7 +4672,7 @@ static Sys_var_uint Sys_sync_binlog_period( "sync_binlog", "Synchronously flush binary log to disk after " "every #th event. Use 0 (default) to disable synchronous flushing", GLOBAL_VAR(sync_binlog_period), CMD_LINE(REQUIRED_ARG), - VALID_RANGE(0, UINT_MAX), DEFAULT(0), BLOCK_SIZE(1)); + VALID_RANGE(0, UINT_MAX), DEFAULT(1), BLOCK_SIZE(1)); static Sys_var_uint Sys_sync_masterinfo_period( "sync_master_info", "Synchronously flush master info to disk " @@ -5264,7 +5264,7 @@ static Sys_var_mybool Sys_binlog_annotate_row_events( "Tells the master to annotate RBR events with the statement that " "caused these events", SESSION_VAR(binlog_annotate_row_events), CMD_LINE(OPT_ARG), - DEFAULT(FALSE)); + DEFAULT(TRUE)); #ifdef HAVE_REPLICATION static Sys_var_mybool Sys_replicate_annotate_row_events( @@ -5272,7 +5272,7 @@ static Sys_var_mybool Sys_replicate_annotate_row_events( "Tells the slave to write annotate rows events received from the master " "to its own binary log. Ignored if log_slave_updates is not set", READ_ONLY GLOBAL_VAR(opt_replicate_annotate_row_events), - CMD_LINE(OPT_ARG), DEFAULT(0)); + CMD_LINE(OPT_ARG), DEFAULT(TRUE)); #endif static Sys_var_ulonglong Sys_join_buffer_space_limit( diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 83f2e53cc83..5df46bc7a8f 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -21050,7 +21050,7 @@ static MYSQL_SYSVAR_BOOL(log_compressed_pages, page_zip_log_pages, " the zlib compression algorithm changes." " When turned OFF, InnoDB will assume that the zlib" " compression algorithm doesn't change.", - NULL, NULL, FALSE); + NULL, NULL, TRUE); static MYSQL_SYSVAR_ULONG(autoextend_increment, sys_tablespace_auto_extend_increment, diff --git a/storage/maria/ha_maria.cc b/storage/maria/ha_maria.cc index 5ed836ddb63..41d9ac840f9 100644 --- a/storage/maria/ha_maria.cc +++ b/storage/maria/ha_maria.cc @@ -257,7 +257,7 @@ static MYSQL_SYSVAR_ULONG(pagecache_file_hash_size, pagecache_file_hash_size, static MYSQL_SYSVAR_SET(recover_options, maria_recover_options, PLUGIN_VAR_OPCMDARG, "Specifies how corrupted tables should be automatically repaired", - NULL, NULL, HA_RECOVER_DEFAULT, &maria_recover_typelib); + NULL, NULL, HA_RECOVER_BACKUP|HA_RECOVER_QUICK, &maria_recover_typelib); static MYSQL_THDVAR_ULONG(repair_threads, PLUGIN_VAR_RQCMDARG, "Number of threads to use when repairing Aria tables. The value of 1 " diff --git a/storage/myisam/ha_myisam.cc b/storage/myisam/ha_myisam.cc index 881e90d95c1..95908aea099 100644 --- a/storage/myisam/ha_myisam.cc +++ b/storage/myisam/ha_myisam.cc @@ -67,7 +67,7 @@ static MYSQL_SYSVAR_ULONGLONG(max_sort_file_size, myisam_max_temp_length, static MYSQL_SYSVAR_SET(recover_options, myisam_recover_options, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_READONLY, "Specifies how corrupted tables should be automatically repaired", - NULL, NULL, 1, &myisam_recover_typelib); + NULL, NULL, HA_RECOVER_BACKUP|HA_RECOVER_QUICK, &myisam_recover_typelib); static MYSQL_THDVAR_ULONG(repair_threads, PLUGIN_VAR_RQCMDARG, "If larger than 1, when repairing a MyISAM table all indexes will be " diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result b/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result index 9785ad7ebdf..aa3c1ce50b9 100644 --- a/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result +++ b/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result @@ -551,6 +551,7 @@ SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* error.* 1535"); call mtr.add_suppression("Slave SQL.*Could not execute Delete_rows event on table test.t1.* error.* 1032"); call mtr.add_suppression("Slave SQL.*Column 1 of table .test.t.. cannot be converted from type.*, error.* 1677"); +call mtr.add_suppression("Can't find record in 't1'"); include/rpl_reset.inc [expecting slave to replicate correctly] connection master; diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_row_log_tokudb.result b/storage/tokudb/mysql-test/rpl/r/rpl_row_log_tokudb.result index 372d1eb4c51..73c010c6eb7 100644 --- a/storage/tokudb/mysql-test/rpl/r/rpl_row_log_tokudb.result +++ b/storage/tokudb/mysql-test/rpl/r/rpl_row_log_tokudb.result @@ -24,6 +24,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=TokuDB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -32,6 +33,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=TokuDB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # load data infile '../../std_data/words.dat' into table t1 ignore 1 lines master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -47,6 +49,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -207,6 +210,7 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=TokuDB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -215,6 +219,7 @@ master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=TokuDB master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # load data infile '../../std_data/words.dat' into table t1 ignore 1 lines master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -227,6 +232,7 @@ master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=TokuDB master-bin.000002 # Gtid # # GTID #-#-# master-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=TokuDB master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Annotate_rows # # insert into t2 values (1) master-bin.000002 # Table_map # # table_id: # (test.t2) master-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000002 # Xid # # COMMIT /* XID */ @@ -244,6 +250,7 @@ Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=TokuDB slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # insert into t1 values (NULL) slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Xid # # COMMIT /* XID */ @@ -252,6 +259,7 @@ slave-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=TokuDB slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Annotate_rows # # load data infile '../../std_data/words.dat' into table t1 ignore 1 lines slave-bin.000001 # Table_map # # table_id: # (test.t1) slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000001 # Xid # # COMMIT /* XID */ @@ -264,6 +272,7 @@ slave-bin.000002 # Binlog_checkpoint # # slave-bin.000002 slave-bin.000002 # Gtid # # GTID #-#-# slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=TokuDB slave-bin.000002 # Gtid # # BEGIN GTID #-#-# +slave-bin.000002 # Annotate_rows # # insert into t2 values (1) slave-bin.000002 # Table_map # # table_id: # (test.t2) slave-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F slave-bin.000002 # Xid # # COMMIT /* XID */ @@ -285,10 +294,12 @@ Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t1(a int auto_increment primary key, b int) master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL, 1) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (NULL, last_insert_id()), (NULL, last_insert_id()) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_mixed_dml.result b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_mixed_dml.result index 8dd200cecb6..7f8b9dd5104 100644 --- a/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_mixed_dml.result +++ b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_mixed_dml.result @@ -851,6 +851,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; DELETE FROM t1 WHERE a = 1 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE FROM t2 WHERE b <> UUID() master-bin.000001 # Table_map # # table_id: # (test_rpl.t2) master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -864,10 +865,12 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; INSERT INTO t1 VALUES(1, 't1, text 1') master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES(2, UUID()) master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 master-bin.000001 # Table_map # # table_id: # (test_rpl.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -887,6 +890,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; DELETE FROM t2 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # LOAD DATA INFILE 'MYSQLTEST_VARDIR/std_data/rpl_mixed.dat' INTO TABLE t1 FIELDS TERMINATED BY '|' master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -909,6 +913,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; REPLACE INTO t1 VALUES(1, 't1, text 11') master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # REPLACE INTO t1 VALUES(2, UUID()) master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1003,6 +1008,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; INSERT INTO t1 VALUES (5, 'before savepoint s2') master-bin.000001 # Query # # SAVEPOINT `s2` master-bin.000001 # Query # # use `test_rpl`; INSERT INTO t1 VALUES (6, 'after savepoint s2') +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (7, CONCAT('with UUID() ',UUID())) master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1056,6 +1062,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test_rpl`; INSERT INTO t1 VALUES(202, 'test 202') master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = UUID() WHERE a = 202 master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -1080,6 +1087,7 @@ FOR EACH ROW BEGIN INSERT INTO t2 SET a = NEW.a, b = NEW.b; END master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SET a = NEW.a, b = NEW.b master-bin.000001 # Table_map # # table_id: # (test_rpl.t1) master-bin.000001 # Table_map # # table_id: # (test_rpl.t2) master-bin.000001 # Write_rows_v1 # # table_id: # diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/xa.result b/storage/tokudb/mysql-test/tokudb_bugs/r/xa.result index 93193dd9b43..7dd7bb625cf 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/r/xa.result +++ b/storage/tokudb/mysql-test/tokudb_bugs/r/xa.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); drop table if exists t1, t2; create table t1 (a int) engine=tokudb; xa start 'test1'; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/xa.test b/storage/tokudb/mysql-test/tokudb_bugs/t/xa.test index 3d3d558c0c9..96ccf04fb02 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/t/xa.test +++ b/storage/tokudb/mysql-test/tokudb_bugs/t/xa.test @@ -6,6 +6,8 @@ # Save the initial number of concurrent sessions --source include/count_sessions.inc +call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); + --disable_warnings drop table if exists t1, t2; --enable_warnings diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index a3f1d9c3c85..f4005847ca9 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -221,6 +221,11 @@ set by user, however, it will be adjusted to the newer file format if a table of such format is created/opened. */ static char* innobase_file_format_max = NULL; +/** Default value of innodb_file_format */ +static const char* innodb_file_format_default = "Barracuda"; +/** Default value of innodb_file_format_max */ +static const char* innodb_file_format_max_default = "Antelope"; + static char* innobase_file_flush_method = NULL; /* This variable can be set in the server configure file, specifying @@ -953,7 +958,7 @@ static MYSQL_THDVAR_BOOL(table_locks, PLUGIN_VAR_OPCMDARG, static MYSQL_THDVAR_BOOL(strict_mode, PLUGIN_VAR_OPCMDARG, "Use strict mode when evaluating create options.", - NULL, NULL, FALSE); + NULL, NULL, TRUE); static MYSQL_THDVAR_BOOL(ft_enable_stopword, PLUGIN_VAR_OPCMDARG, "Create FTS index with stopword.", @@ -20021,7 +20026,7 @@ static MYSQL_SYSVAR_ENUM(checksum_algorithm, srv_checksum_algorithm, "magic number when reading; " "Files updated when this option is set to crc32 or strict_crc32 will " "not be readable by MySQL versions older than 5.6.3", - NULL, NULL, SRV_CHECKSUM_ALGORITHM_INNODB, + NULL, NULL, SRV_CHECKSUM_ALGORITHM_CRC32, &innodb_checksum_algorithm_typelib); @@ -20148,7 +20153,7 @@ static MYSQL_SYSVAR_ULONG(purge_threads, srv_n_purge_threads, PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_READONLY, "Purge threads can be from 1 to 32. Default is 1.", NULL, NULL, - 1, /* Default setting */ + 4, /* Default setting */ 1, /* Minimum value */ SRV_MAX_N_PURGE_THREADS, 0); /* Maximum value */ @@ -20175,7 +20180,7 @@ static MYSQL_SYSVAR_STR(file_format, innobase_file_format_name, PLUGIN_VAR_RQCMDARG, "File format to use for new tables in .ibd files.", innodb_file_format_name_validate, - innodb_file_format_name_update, "Antelope"); + innodb_file_format_name_update, innodb_file_format_default); /* "innobase_file_format_check" decides whether we would continue booting the server if the file format stamped on the system @@ -20196,7 +20201,7 @@ static MYSQL_SYSVAR_STR(file_format_max, innobase_file_format_max, PLUGIN_VAR_OPCMDARG, "The highest file format in the tablespace.", innodb_file_format_max_validate, - innodb_file_format_max_update, "Antelope"); + innodb_file_format_max_update, innodb_file_format_max_default); static MYSQL_SYSVAR_STR(ft_server_stopword_table, innobase_server_stopword_table, PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_MEMALLOC, @@ -20230,7 +20235,7 @@ static MYSQL_SYSVAR_STR(flush_method, innobase_file_flush_method, static MYSQL_SYSVAR_BOOL(large_prefix, innobase_large_prefix, PLUGIN_VAR_NOCMDARG, "Support large index prefix length of REC_VERSION_56_MAX_INDEX_COL_LEN (3072) bytes.", - NULL, NULL, FALSE); + NULL, NULL, TRUE); static MYSQL_SYSVAR_BOOL(force_load_corrupted, srv_load_corrupted, PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY, @@ -20401,7 +20406,7 @@ static MYSQL_SYSVAR_BOOL(log_compressed_pages, page_zip_log_pages, " the zlib compression algorithm changes." " When turned OFF, InnoDB will assume that the zlib" " compression algorithm doesn't change.", - NULL, NULL, FALSE); + NULL, NULL, TRUE); static MYSQL_SYSVAR_LONG(additional_mem_pool_size, innobase_additional_mem_pool_size, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, @@ -20582,12 +20587,12 @@ static MYSQL_SYSVAR_BOOL(buffer_pool_dump_now, innodb_buffer_pool_dump_now, static MYSQL_SYSVAR_BOOL(buffer_pool_dump_at_shutdown, srv_buffer_pool_dump_at_shutdown, PLUGIN_VAR_RQCMDARG, "Dump the buffer pool into a file named @@innodb_buffer_pool_filename", - NULL, NULL, FALSE); + NULL, NULL, TRUE); static MYSQL_SYSVAR_ULONG(buffer_pool_dump_pct, srv_buf_pool_dump_pct, PLUGIN_VAR_RQCMDARG, - "Dump only the hottest N% of each buffer pool, defaults to 100", - NULL, NULL, 100, 1, 100, 0); + "Dump only the hottest N% of each buffer pool, defaults to 25", + NULL, NULL, 25, 1, 100, 0); #ifdef UNIV_DEBUG static MYSQL_SYSVAR_STR(buffer_pool_evict, srv_buffer_pool_evict, @@ -20610,7 +20615,7 @@ static MYSQL_SYSVAR_BOOL(buffer_pool_load_abort, innodb_buffer_pool_load_abort, static MYSQL_SYSVAR_BOOL(buffer_pool_load_at_startup, srv_buffer_pool_load_at_startup, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, "Load the buffer pool from a file named @@innodb_buffer_pool_filename", - NULL, NULL, FALSE); + NULL, NULL, TRUE); static MYSQL_SYSVAR_BOOL(defragment, srv_defragment, PLUGIN_VAR_RQCMDARG, From 91991c1e2d2734dcacdd1d00c2aa650c9b867a74 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Wed, 21 Dec 2016 23:02:51 -0500 Subject: [PATCH 171/258] MDEV-7635: Test fixes --- .../rpl_tests/create_recursive_construct.inc | 4 +- .../rpl_tests/rpl_implicit_commit_binlog.test | 16 +- .../suite/binlog/r/binlog_unsafe.result | 4 + mysql-test/suite/innodb_zip/disabled.def | 1 + .../r/rpl_mixed_implicit_commit_binlog.result | 3 + .../r/rpl_parallel_optimistic_nobinlog.result | 2 + .../r/rpl_row_implicit_commit_binlog.result | 43 + .../t/rpl_parallel_optimistic_nobinlog.test | 3 + .../r/part_supported_sql_func_tokudb.result | 64 +- .../r/partition_alter1_1_2_tokudb.result | 224 ++--- .../r/partition_alter1_1_tokudb.result | 128 +-- .../r/partition_alter1_2_tokudb.result | 320 +++---- .../r/partition_alter2_1_1_tokudb.result | 160 ++-- .../r/partition_alter2_1_2_tokudb.result | 160 ++-- .../r/partition_alter2_2_1_tokudb.result | 160 ++-- .../r/partition_alter2_2_2_tokudb.result | 160 ++-- .../r/partition_alter4_tokudb.result | 736 +++++++-------- .../r/partition_basic_tokudb.result | 256 ++--- .../r/partition_debug_tokudb.result | 888 +++++++++--------- 19 files changed, 1696 insertions(+), 1636 deletions(-) create mode 100644 mysql-test/suite/innodb_zip/disabled.def diff --git a/mysql-test/extra/rpl_tests/create_recursive_construct.inc b/mysql-test/extra/rpl_tests/create_recursive_construct.inc index 67d0311fb72..90a62d8f624 100644 --- a/mysql-test/extra/rpl_tests/create_recursive_construct.inc +++ b/mysql-test/extra/rpl_tests/create_recursive_construct.inc @@ -346,7 +346,7 @@ if ($CRC_RET_stmt_sidef) { SHOW BINLOG EVENTS; --die Warnings printed } - --let $event_type= query_get_value(SHOW BINLOG EVENTS, Event_type, 5) + --let $event_type= query_get_value(SHOW BINLOG EVENTS, Event_type, 6) # The first event is format_description, the second is Gtid list, the # third is Binlog_checkpoint, the fourth Gtid, and the fifth should be # our Query for 'INSERT DELAYED' unsafe_type 3, which is safe after @@ -362,7 +362,7 @@ if ($CRC_RET_stmt_sidef) { # for unsafe statement. if (`SELECT $unsafe_type != 3 AND '$event_type' != 'Table_map'`) { --enable_query_log - --echo ******** Failure! Event number 4 was a '$event_type', not a 'Table_map'. ******** + --echo ******** Failure! Event number 6 was a '$event_type', not a 'Table_map'. ******** SHOW BINLOG EVENTS; --die Wrong events in binlog. } diff --git a/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test b/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test index ed758313770..0b6402308ce 100644 --- a/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test +++ b/mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test @@ -62,7 +62,7 @@ while ($ddl_cases >= 1) # if (`select @@binlog_format = 'ROW'`) { - let $commit_event_row_number= 4; + let $commit_event_row_number= 5; } let $first_binlog_position= query_get_value("SHOW MASTER STATUS", Position, 1); @@ -164,7 +164,7 @@ while ($ddl_cases >= 1) # if (`select @@binlog_format = 'ROW'`) { - let $commit_event_row_number= 5; + let $commit_event_row_number= 6; } } if ($ddl_cases == 22) @@ -250,7 +250,7 @@ while ($ddl_cases >= 1) # if (`select @@binlog_format = 'MIXED'`) { - let $commit_event_row_number= 4; + let $commit_event_row_number= 5; } } if ($ddl_cases == 9) @@ -267,7 +267,7 @@ while ($ddl_cases >= 1) # if (`select @@binlog_format = 'MIXED'`) { - let $commit_event_row_number= 4; + let $commit_event_row_number= 5; } } if ($ddl_cases == 8) @@ -293,10 +293,14 @@ while ($ddl_cases >= 1) # 3: ROW EVENT # 4: COMMIT # - if (`select @@binlog_format = 'STATEMENT' || @@binlog_format = 'ROW'`) + if (`select @@binlog_format = 'STATEMENT'`) { let $commit_event_row_number= 4; } + if (`select @@binlog_format = 'ROW'`) + { + let $commit_event_row_number= 5; + } # In MIXED mode, the changes are logged as rows and we have what follows: # # 1: BEGIN @@ -307,7 +311,7 @@ while ($ddl_cases >= 1) # if (`select @@binlog_format = 'MIXED'`) { - let $commit_event_row_number= 5; + let $commit_event_row_number= 6; } } if ($ddl_cases == 7) diff --git a/mysql-test/suite/binlog/r/binlog_unsafe.result b/mysql-test/suite/binlog/r/binlog_unsafe.result index 6e996205dc0..1cde61620a6 100644 --- a/mysql-test/suite/binlog/r/binlog_unsafe.result +++ b/mysql-test/suite/binlog/r/binlog_unsafe.result @@ -2521,6 +2521,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; INSERT DELAYED INTO t1 VALUES (1), (2) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 SELECT * FROM t2 LIMIT 1 master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -2548,6 +2549,7 @@ INSERT INTO t2 SET a = func_modify_t1(); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 SET a = 1 master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # @@ -2575,10 +2577,12 @@ INSERT INTO t1 SET a = 2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2(a) values(new.a) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t3(a) values(new.a) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Table_map # # table_id: # (test.t3) master-bin.000001 # Table_map # # table_id: # (test.t2) diff --git a/mysql-test/suite/innodb_zip/disabled.def b/mysql-test/suite/innodb_zip/disabled.def new file mode 100644 index 00000000000..294204f409c --- /dev/null +++ b/mysql-test/suite/innodb_zip/disabled.def @@ -0,0 +1 @@ +cmp_per_index: MDEV-11629 diff --git a/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result index d9c0bf53a5d..9db73e06c0f 100644 --- a/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result +++ b/mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result @@ -488,6 +488,7 @@ ALTER TABLE tt_xx ADD COLUMN (b int); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (10) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -501,6 +502,7 @@ ALTER TABLE tt_xx RENAME new_tt_xx; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (9) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -514,6 +516,7 @@ DROP TEMPORARY TABLE IF EXISTS new_tt_xx; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (8) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`new_tt_xx` /* generated by server */ diff --git a/mysql-test/suite/rpl/r/rpl_parallel_optimistic_nobinlog.result b/mysql-test/suite/rpl/r/rpl_parallel_optimistic_nobinlog.result index a15ca4e047b..4172abb17d9 100644 --- a/mysql-test/suite/rpl/r/rpl_parallel_optimistic_nobinlog.result +++ b/mysql-test/suite/rpl/r/rpl_parallel_optimistic_nobinlog.result @@ -88,4 +88,6 @@ SET GLOBAL slave_parallel_threads=@old_parallel_threads; include/start_slave.inc connection server_1; DROP TABLE t1, t2; +connection server_2; +call mtr.add_suppression("Deadlock found when trying to get lock.*"); include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result b/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result index 1e302e02ccc..91e9eef35fd 100644 --- a/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result +++ b/mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result @@ -22,6 +22,7 @@ CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB"; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (43) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -37,6 +38,7 @@ DROP FUNCTION myfunc_int; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (42) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -54,6 +56,7 @@ test.nt_1 preload_keys status OK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (41) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -70,6 +73,7 @@ test.tt_2 preload_keys note The storage engine for the table doesn't support pre include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (40) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -85,6 +89,7 @@ test.nt_1 analyze status Table is already up to date include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (39) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -102,6 +107,7 @@ test.nt_1 check status OK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (38) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -117,6 +123,7 @@ test.nt_1 optimize status Table is already up to date include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (37) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -134,6 +141,7 @@ test.nt_1 repair status OK include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (36) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -149,6 +157,7 @@ LOCK TABLES tt_1 WRITE; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (35) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -162,6 +171,7 @@ UNLOCK TABLES; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (34) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -175,6 +185,7 @@ CREATE USER 'user'@'localhost'; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (33) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -190,6 +201,7 @@ GRANT ALL ON *.* TO 'user'@'localhost'; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (32) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -205,6 +217,7 @@ SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass'); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (31) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -220,6 +233,7 @@ REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost'; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (30) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -235,6 +249,7 @@ RENAME USER 'user'@'localhost' TO 'user_new'@'localhost'; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (29) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -250,6 +265,7 @@ DROP USER 'user_new'@'localhost'; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (28) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -265,6 +281,7 @@ CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (27) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -280,6 +297,7 @@ ALTER EVENT evt COMMENT 'evt'; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (26) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -295,6 +313,7 @@ DROP EVENT evt; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (25) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -310,6 +329,7 @@ CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = d include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (24) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -325,6 +345,7 @@ DROP TRIGGER tr; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (23) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Table_map # # table_id: # (test.tt_2) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F @@ -341,6 +362,7 @@ CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc"; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (22) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -357,6 +379,7 @@ ALTER FUNCTION fc COMMENT 'fc'; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (21) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -372,6 +395,7 @@ DROP FUNCTION fc; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (20) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -387,6 +411,7 @@ CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.d include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (19) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -403,6 +428,7 @@ ALTER PROCEDURE pc COMMENT 'pc'; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (18) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -418,6 +444,7 @@ DROP PROCEDURE pc; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (17) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -433,6 +460,7 @@ CREATE VIEW v AS SELECT * FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (16) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -448,6 +476,7 @@ ALTER VIEW v AS SELECT * FROM tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (15) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -463,6 +492,7 @@ DROP VIEW v; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (14) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -478,6 +508,7 @@ CREATE INDEX ix ON tt_1(ddl_case); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (13) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -493,6 +524,7 @@ DROP INDEX ix ON tt_1; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (12) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -508,6 +540,7 @@ CREATE TEMPORARY TABLE tt_xx (a int); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (11) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -521,6 +554,7 @@ ALTER TABLE tt_xx ADD COLUMN (b int); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (10) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -534,6 +568,7 @@ ALTER TABLE tt_xx RENAME new_tt_xx; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (9) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -547,6 +582,7 @@ DROP TEMPORARY TABLE IF EXISTS new_tt_xx; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (8) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -560,6 +596,7 @@ CREATE TABLE tt_xx (a int); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (7) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -575,6 +612,7 @@ ALTER TABLE tt_xx ADD COLUMN (b int); include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (6) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -590,6 +628,7 @@ RENAME TABLE tt_xx TO new_tt_xx; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (5) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -605,6 +644,7 @@ TRUNCATE TABLE new_tt_xx; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (4) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -622,6 +662,7 @@ Note 1051 Unknown table 'test.tt_xx' include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (3) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -637,6 +678,7 @@ CREATE DATABASE db; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (2) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ @@ -652,6 +694,7 @@ DROP DATABASE IF EXISTS db; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO tt_1(ddl_case) VALUES (1) master-bin.000001 # Table_map # # table_id: # (test.tt_1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/rpl/t/rpl_parallel_optimistic_nobinlog.test b/mysql-test/suite/rpl/t/rpl_parallel_optimistic_nobinlog.test index 94924147dce..ee0de499edf 100644 --- a/mysql-test/suite/rpl/t/rpl_parallel_optimistic_nobinlog.test +++ b/mysql-test/suite/rpl/t/rpl_parallel_optimistic_nobinlog.test @@ -70,5 +70,8 @@ SET GLOBAL slave_parallel_threads=@old_parallel_threads; --connection server_1 DROP TABLE t1, t2; +--connection server_2 +call mtr.add_suppression("Deadlock found when trying to get lock.*"); + --source include/rpl_end.inc diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/part_supported_sql_func_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/part_supported_sql_func_tokudb.result index 5b860845490..370359327c1 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/part_supported_sql_func_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/part_supported_sql_func_tokudb.result @@ -620,7 +620,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` int(11) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (abs(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -628,7 +628,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 15 @@ -2317,7 +2317,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` int(11) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (mod(col1,10)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -2325,7 +2325,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 15 @@ -3667,7 +3667,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (day(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -3675,7 +3675,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-05 @@ -4184,7 +4184,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (dayofmonth(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -4192,7 +4192,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-05 @@ -4701,7 +4701,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (dayofweek(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -4709,7 +4709,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-03 @@ -5230,7 +5230,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (dayofyear(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -5238,7 +5238,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-03 @@ -5749,7 +5749,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (extract(month from col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -5757,7 +5757,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-03 @@ -6268,7 +6268,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` time DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (hour(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -6276,7 +6276,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 09:09:15 @@ -6793,7 +6793,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` time(6) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (microsecond(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -6801,7 +6801,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 05:30:34.000037 @@ -7314,7 +7314,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` time DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (minute(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -7322,7 +7322,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 10:24:23 @@ -7845,7 +7845,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` time DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (second(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -7853,7 +7853,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 09:09:15 @@ -8376,7 +8376,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (month(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -8384,7 +8384,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-03 @@ -8901,7 +8901,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (quarter(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -8909,7 +8909,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-03 @@ -9424,7 +9424,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (weekday(col1)) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -9432,7 +9432,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-03 @@ -9945,7 +9945,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (year(col1)-1990) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -9953,7 +9953,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-03 @@ -10470,7 +10470,7 @@ t55 CREATE TABLE `t55` ( `colint` int(11) DEFAULT NULL, `col1` date DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (colint) + PARTITION BY LIST (colint) SUBPARTITION BY HASH (yearweek(col1)-200600) SUBPARTITIONS 5 (PARTITION p0 VALUES IN (1,2,3,4,5,6,7,8,9,10) ENGINE = TokuDB, @@ -10478,7 +10478,7 @@ SUBPARTITIONS 5 PARTITION p2 VALUES IN (21,22,23,24,25,26,27,28,29,30) ENGINE = TokuDB, PARTITION p3 VALUES IN (31,32,33,34,35,36,37,38,39,40) ENGINE = TokuDB, PARTITION p4 VALUES IN (41,42,43,44,45,46,47,48,49,50) ENGINE = TokuDB, - PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) */ + PARTITION p5 VALUES IN (51,52,53,54,55,56,57,58,59,60) ENGINE = TokuDB) select * from t55 order by colint; colint col1 1 2006-02-03 diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_1_2_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_1_2_tokudb.result index 5707edf3485..5ee7ced4487 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_1_2_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_1_2_tokudb.result @@ -75,8 +75,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -567,8 +567,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1067,7 +1067,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -1075,7 +1075,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1572,13 +1572,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2071,13 +2071,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2574,7 +2574,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -2587,7 +2587,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3084,7 +3084,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -3097,7 +3097,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3592,12 +3592,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4089,8 +4089,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4581,8 +4581,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5081,7 +5081,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -5089,7 +5089,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5586,13 +5586,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6085,13 +6085,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6588,7 +6588,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -6601,7 +6601,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7098,7 +7098,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -7111,7 +7111,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7606,12 +7606,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8104,8 +8104,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8612,8 +8612,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9128,7 +9128,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -9136,7 +9136,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9649,13 +9649,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10164,13 +10164,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10683,7 +10683,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -10696,7 +10696,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11209,7 +11209,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -11222,7 +11222,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11733,12 +11733,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12246,8 +12246,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12754,8 +12754,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13270,7 +13270,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -13278,7 +13278,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13791,13 +13791,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14306,13 +14306,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14825,7 +14825,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -14838,7 +14838,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15351,7 +15351,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -15364,7 +15364,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15875,12 +15875,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16390,8 +16390,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16883,8 +16883,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17384,7 +17384,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -17392,7 +17392,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17890,13 +17890,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18390,13 +18390,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18894,7 +18894,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -18907,7 +18907,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19405,7 +19405,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -19418,7 +19418,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19914,12 +19914,12 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -20412,8 +20412,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -20905,8 +20905,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -21406,7 +21406,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -21414,7 +21414,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -21912,13 +21912,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -22412,13 +22412,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -22916,7 +22916,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -22929,7 +22929,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -23427,7 +23427,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -23440,7 +23440,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -23936,12 +23936,12 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -24434,8 +24434,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -24927,8 +24927,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -25428,7 +25428,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -25436,7 +25436,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -25934,13 +25934,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -26434,13 +26434,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -26938,7 +26938,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -26951,7 +26951,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -27449,7 +27449,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -27462,7 +27462,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -27958,12 +27958,12 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_1_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_1_tokudb.result index 6d478dd29fc..17f4c83cd97 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_1_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_1_tokudb.result @@ -393,8 +393,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -885,8 +885,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1385,7 +1385,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -1393,7 +1393,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1890,13 +1890,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2389,13 +2389,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2894,7 +2894,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -2907,7 +2907,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3404,7 +3404,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -3417,7 +3417,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3912,12 +3912,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4409,8 +4409,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4901,8 +4901,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5401,7 +5401,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -5409,7 +5409,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5906,13 +5906,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6405,13 +6405,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6910,7 +6910,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -6923,7 +6923,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7420,7 +7420,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -7433,7 +7433,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7928,12 +7928,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8426,8 +8426,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8934,8 +8934,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9450,7 +9450,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -9458,7 +9458,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9971,13 +9971,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10486,13 +10486,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11007,7 +11007,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -11020,7 +11020,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11533,7 +11533,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -11546,7 +11546,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12057,12 +12057,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12570,8 +12570,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13078,8 +13078,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13594,7 +13594,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -13602,7 +13602,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14115,13 +14115,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14630,13 +14630,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15151,7 +15151,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -15164,7 +15164,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15677,7 +15677,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -15690,7 +15690,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16201,12 +16201,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_2_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_2_tokudb.result index 9efe0ac34f5..3cedec4c908 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_2_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter1_2_tokudb.result @@ -73,8 +73,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -513,8 +513,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -961,7 +961,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -969,7 +969,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1414,13 +1414,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1861,13 +1861,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2314,7 +2314,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -2327,7 +2327,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2772,7 +2772,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -2785,7 +2785,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3228,12 +3228,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3673,8 +3673,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4113,8 +4113,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4561,7 +4561,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -4569,7 +4569,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5014,13 +5014,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5461,13 +5461,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5914,7 +5914,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -5927,7 +5927,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6372,7 +6372,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -6385,7 +6385,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6828,12 +6828,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7273,8 +7273,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7729,8 +7729,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8193,7 +8193,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -8201,7 +8201,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8662,13 +8662,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9125,13 +9125,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9594,7 +9594,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -9607,7 +9607,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10068,7 +10068,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -10081,7 +10081,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10540,12 +10540,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11005,8 +11005,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11445,8 +11445,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11893,7 +11893,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -11901,7 +11901,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12346,13 +12346,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12793,13 +12793,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13244,7 +13244,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -13257,7 +13257,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13702,7 +13702,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -13715,7 +13715,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14158,12 +14158,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14603,8 +14603,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15043,8 +15043,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15491,7 +15491,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -15499,7 +15499,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15944,13 +15944,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16391,13 +16391,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16842,7 +16842,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -16855,7 +16855,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17300,7 +17300,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -17313,7 +17313,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17756,12 +17756,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18202,8 +18202,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18658,8 +18658,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19122,7 +19122,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -19130,7 +19130,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19591,13 +19591,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -20054,13 +20054,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -20521,7 +20521,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -20534,7 +20534,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -20995,7 +20995,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -21008,7 +21008,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -21467,12 +21467,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -21928,8 +21928,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -22384,8 +22384,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -22848,7 +22848,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -22856,7 +22856,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -23317,13 +23317,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -23780,13 +23780,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -24247,7 +24247,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -24260,7 +24260,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -24721,7 +24721,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -24734,7 +24734,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -25193,12 +25193,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -25655,8 +25655,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -26095,8 +26095,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -26543,7 +26543,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -26551,7 +26551,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -26996,13 +26996,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -27443,13 +27443,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -27894,7 +27894,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -27907,7 +27907,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -28352,7 +28352,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -28365,7 +28365,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -28808,12 +28808,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -29253,8 +29253,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -29693,8 +29693,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -30141,7 +30141,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -30149,7 +30149,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -30594,13 +30594,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -31041,13 +31041,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -31492,7 +31492,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -31505,7 +31505,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -31950,7 +31950,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -31963,7 +31963,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -32406,12 +32406,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -32851,8 +32851,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -33307,8 +33307,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -33771,7 +33771,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -33779,7 +33779,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -34240,13 +34240,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -34703,13 +34703,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -35170,7 +35170,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -35183,7 +35183,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -35644,7 +35644,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -35657,7 +35657,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -36116,12 +36116,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_1_1_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_1_1_tokudb.result index 188e7c3653d..030e3e2204d 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_1_1_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_1_1_tokudb.result @@ -74,8 +74,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -530,8 +530,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -994,7 +994,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -1002,7 +1002,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1463,13 +1463,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1926,13 +1926,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2395,7 +2395,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -2408,7 +2408,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2869,7 +2869,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -2882,7 +2882,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3341,12 +3341,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3804,8 +3804,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4298,8 +4298,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4800,7 +4800,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -4808,7 +4808,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5307,13 +5307,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5808,13 +5808,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6315,7 +6315,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -6328,7 +6328,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6827,7 +6827,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -6840,7 +6840,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7337,12 +7337,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7836,8 +7836,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8330,8 +8330,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8832,7 +8832,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -8840,7 +8840,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9339,13 +9339,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9840,13 +9840,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10347,7 +10347,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -10360,7 +10360,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10859,7 +10859,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -10872,7 +10872,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11369,12 +11369,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11869,8 +11869,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12377,8 +12377,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12893,7 +12893,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -12901,7 +12901,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13414,13 +13414,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13929,13 +13929,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14450,7 +14450,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -14463,7 +14463,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14976,7 +14976,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -14989,7 +14989,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15500,12 +15500,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16013,8 +16013,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16521,8 +16521,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17037,7 +17037,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -17045,7 +17045,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17558,13 +17558,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18073,13 +18073,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18594,7 +18594,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -18607,7 +18607,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19120,7 +19120,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -19133,7 +19133,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19644,12 +19644,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_1_2_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_1_2_tokudb.result index f6e98be3c98..f252760e0a5 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_1_2_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_1_2_tokudb.result @@ -70,8 +70,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -526,8 +526,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -990,7 +990,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -998,7 +998,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1459,13 +1459,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1922,13 +1922,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2389,7 +2389,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -2402,7 +2402,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2863,7 +2863,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -2876,7 +2876,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3335,12 +3335,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3798,8 +3798,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4293,8 +4293,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4796,7 +4796,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -4804,7 +4804,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5304,13 +5304,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5806,13 +5806,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6312,7 +6312,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -6325,7 +6325,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6825,7 +6825,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -6838,7 +6838,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7336,12 +7336,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7836,8 +7836,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8331,8 +8331,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8834,7 +8834,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -8842,7 +8842,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9342,13 +9342,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9844,13 +9844,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10350,7 +10350,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -10363,7 +10363,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10863,7 +10863,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -10876,7 +10876,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11374,12 +11374,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11875,8 +11875,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12383,8 +12383,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12899,7 +12899,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -12907,7 +12907,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13420,13 +13420,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13935,13 +13935,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14454,7 +14454,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -14467,7 +14467,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14980,7 +14980,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -14993,7 +14993,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15504,12 +15504,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16017,8 +16017,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16525,8 +16525,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17041,7 +17041,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -17049,7 +17049,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17562,13 +17562,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18077,13 +18077,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18596,7 +18596,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -18609,7 +18609,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19122,7 +19122,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -19135,7 +19135,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19646,12 +19646,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_2_1_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_2_1_tokudb.result index 7ecc5db4b10..32dab941bf1 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_2_1_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_2_1_tokudb.result @@ -74,8 +74,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -532,8 +532,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -998,7 +998,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -1006,7 +1006,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1469,13 +1469,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1932,13 +1932,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2403,7 +2403,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -2416,7 +2416,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2877,7 +2877,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -2890,7 +2890,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3351,12 +3351,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3815,8 +3815,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4311,8 +4311,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4815,7 +4815,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -4823,7 +4823,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5324,13 +5324,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5825,13 +5825,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6334,7 +6334,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -6347,7 +6347,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6846,7 +6846,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -6859,7 +6859,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7358,12 +7358,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7859,8 +7859,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8355,8 +8355,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8859,7 +8859,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -8867,7 +8867,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9368,13 +9368,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9869,13 +9869,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10378,7 +10378,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -10391,7 +10391,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10890,7 +10890,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -10903,7 +10903,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11402,12 +11402,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11904,8 +11904,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12414,8 +12414,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12932,7 +12932,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -12940,7 +12940,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13455,13 +13455,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13970,13 +13970,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14493,7 +14493,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -14506,7 +14506,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15019,7 +15019,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -15032,7 +15032,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15545,12 +15545,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16060,8 +16060,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16570,8 +16570,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17088,7 +17088,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -17096,7 +17096,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17611,13 +17611,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18126,13 +18126,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18649,7 +18649,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -18662,7 +18662,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19175,7 +19175,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -19188,7 +19188,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19701,12 +19701,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_2_2_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_2_2_tokudb.result index 993025c9fb2..4200c75867f 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_2_2_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter2_2_2_tokudb.result @@ -69,8 +69,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -528,8 +528,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -995,7 +995,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -1003,7 +1003,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1467,13 +1467,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1935,13 +1935,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2407,7 +2407,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -2420,7 +2420,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2886,7 +2886,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -2899,7 +2899,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3361,12 +3361,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3827,8 +3827,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4325,8 +4325,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4831,7 +4831,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -4839,7 +4839,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5342,13 +5342,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5849,13 +5849,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6360,7 +6360,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -6373,7 +6373,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6878,7 +6878,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -6891,7 +6891,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7392,12 +7392,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7895,8 +7895,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8393,8 +8393,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8899,7 +8899,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -8907,7 +8907,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9410,13 +9410,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9917,13 +9917,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10428,7 +10428,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -10441,7 +10441,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10946,7 +10946,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -10959,7 +10959,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11460,12 +11460,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11964,8 +11964,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12475,8 +12475,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12994,7 +12994,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -13002,7 +13002,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13518,13 +13518,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14038,13 +14038,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14562,7 +14562,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -14575,7 +14575,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15093,7 +15093,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -15106,7 +15106,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15620,12 +15620,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16136,8 +16136,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16647,8 +16647,8 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17166,7 +17166,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -17174,7 +17174,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17690,13 +17690,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18210,13 +18210,13 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18734,7 +18734,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -18747,7 +18747,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19265,7 +19265,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -19278,7 +19278,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19792,12 +19792,12 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter4_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter4_tokudb.result index 973ed19ef39..07b9770d3ca 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter4_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_alter4_tokudb.result @@ -75,9 +75,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -534,12 +534,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1004,7 +1004,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -1012,7 +1012,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1475,13 +1475,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -1940,13 +1940,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2411,7 +2411,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -2424,7 +2424,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -2887,7 +2887,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -2900,7 +2900,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3361,12 +3361,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -3825,9 +3825,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4284,12 +4284,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -4754,7 +4754,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -4762,7 +4762,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5225,13 +5225,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -5690,13 +5690,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6161,7 +6161,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -6174,7 +6174,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -6637,7 +6637,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -6650,7 +6650,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7111,12 +7111,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -7575,9 +7575,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8034,12 +8034,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8504,7 +8504,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -8512,7 +8512,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -8975,13 +8975,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9440,13 +9440,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -9911,7 +9911,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -9924,7 +9924,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10387,7 +10387,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -10400,7 +10400,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -10861,12 +10861,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11325,9 +11325,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -11784,12 +11784,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12254,7 +12254,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -12262,7 +12262,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -12725,13 +12725,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13190,13 +13190,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -13661,7 +13661,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -13674,7 +13674,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14137,7 +14137,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -14150,7 +14150,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -14611,12 +14611,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15075,9 +15075,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -15534,12 +15534,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16004,7 +16004,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -16012,7 +16012,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16475,13 +16475,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -16940,13 +16940,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17411,7 +17411,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -17424,7 +17424,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -17887,7 +17887,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -17900,7 +17900,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18361,12 +18361,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -18828,9 +18828,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19287,12 +19287,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -19757,7 +19757,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -19765,7 +19765,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -20228,13 +20228,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -20693,13 +20693,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -21164,7 +21164,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -21177,7 +21177,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -21640,7 +21640,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -21653,7 +21653,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -22114,12 +22114,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -22578,9 +22578,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -23037,12 +23037,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -23507,7 +23507,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -23515,7 +23515,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -23978,13 +23978,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -24443,13 +24443,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -24914,7 +24914,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -24927,7 +24927,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -25390,7 +25390,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -25403,7 +25403,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -25864,12 +25864,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -26328,9 +26328,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -26787,12 +26787,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -27257,7 +27257,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -27265,7 +27265,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -27728,13 +27728,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -28193,13 +28193,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -28664,7 +28664,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -28677,7 +28677,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -29140,7 +29140,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -29153,7 +29153,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -29614,12 +29614,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -30078,9 +30078,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -30537,12 +30537,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -31007,7 +31007,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -31015,7 +31015,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -31478,13 +31478,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -31943,13 +31943,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -32414,7 +32414,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -32427,7 +32427,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -32890,7 +32890,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -32903,7 +32903,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -33364,12 +33364,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -33828,9 +33828,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -34287,12 +34287,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -34757,7 +34757,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -34765,7 +34765,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -35228,13 +35228,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -35693,13 +35693,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -36164,7 +36164,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -36177,7 +36177,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -36640,7 +36640,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -36653,7 +36653,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -37114,12 +37114,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -37582,9 +37582,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -38042,12 +38042,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -38513,7 +38513,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -38521,7 +38521,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -38985,13 +38985,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -39451,13 +39451,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -39923,7 +39923,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -39936,7 +39936,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -40400,7 +40400,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -40413,7 +40413,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -40875,12 +40875,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -41340,9 +41340,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -41800,12 +41800,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -42271,7 +42271,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -42279,7 +42279,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -42743,13 +42743,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -43209,13 +43209,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -43681,7 +43681,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -43694,7 +43694,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -44158,7 +44158,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -44171,7 +44171,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -44633,12 +44633,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -45097,9 +45097,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -45556,12 +45556,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -46026,7 +46026,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -46034,7 +46034,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -46497,13 +46497,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -46962,13 +46962,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -47433,7 +47433,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -47446,7 +47446,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -47909,7 +47909,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -47922,7 +47922,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -48383,12 +48383,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -48847,9 +48847,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -49306,12 +49306,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -49776,7 +49776,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -49784,7 +49784,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -50247,13 +50247,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -50712,13 +50712,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -51183,7 +51183,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -51196,7 +51196,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -51659,7 +51659,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -51672,7 +51672,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -52133,12 +52133,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -52598,9 +52598,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -53058,12 +53058,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -53529,7 +53529,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -53537,7 +53537,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -54001,13 +54001,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -54467,13 +54467,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -54939,7 +54939,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -54952,7 +54952,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -55416,7 +55416,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -55429,7 +55429,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -55891,12 +55891,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -56356,9 +56356,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -56813,12 +56813,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -57281,7 +57281,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -57289,7 +57289,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -57750,13 +57750,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -58213,13 +58213,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -58682,7 +58682,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -58695,7 +58695,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -59156,7 +59156,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -59169,7 +59169,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -59628,12 +59628,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -60090,9 +60090,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -60547,12 +60547,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -61015,7 +61015,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -61023,7 +61023,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -61484,13 +61484,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -61947,13 +61947,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -62416,7 +62416,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -62429,7 +62429,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -62890,7 +62890,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -62903,7 +62903,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -63362,12 +63362,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -64144,9 +64144,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -64601,12 +64601,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -65069,7 +65069,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -65077,7 +65077,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -65538,13 +65538,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -66001,13 +66001,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -66470,7 +66470,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -66483,7 +66483,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -66944,7 +66944,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -66957,7 +66957,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -67416,12 +67416,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -67883,9 +67883,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -68342,12 +68342,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -68812,7 +68812,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -68820,7 +68820,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -69283,13 +69283,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -69748,13 +69748,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -70219,7 +70219,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -70232,7 +70232,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -70695,7 +70695,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -70708,7 +70708,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -71169,12 +71169,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -71633,9 +71633,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -72092,12 +72092,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -72562,7 +72562,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -72570,7 +72570,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -73033,13 +73033,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -73498,13 +73498,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -73969,7 +73969,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -73982,7 +73982,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -74445,7 +74445,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -74458,7 +74458,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -74919,12 +74919,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -75383,9 +75383,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -75842,12 +75842,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -76312,7 +76312,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -76320,7 +76320,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -76783,13 +76783,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -77248,13 +77248,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -77719,7 +77719,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -77732,7 +77732,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -78195,7 +78195,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -78208,7 +78208,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -78669,12 +78669,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -79133,9 +79133,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -79592,12 +79592,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -80062,7 +80062,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -80070,7 +80070,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -80533,13 +80533,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -80998,13 +80998,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -81469,7 +81469,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -81482,7 +81482,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -81945,7 +81945,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -81958,7 +81958,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -82419,12 +82419,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -82883,9 +82883,9 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) + PARTITION BY HASH (f_int1) (PARTITION part_1 ENGINE = TokuDB, - PARTITION part_2 ENGINE = TokuDB) */ + PARTITION part_2 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -83342,12 +83342,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) + PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = TokuDB, PARTITION part_2 ENGINE = TokuDB, PARTITION part_3 ENGINE = TokuDB, PARTITION part_4 ENGINE = TokuDB, - PARTITION part_5 ENGINE = TokuDB) */ + PARTITION part_5 ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -83812,7 +83812,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -83820,7 +83820,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -84283,13 +84283,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_1 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION part_4 VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_5 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -84748,13 +84748,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part_1 VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION part_2 VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION part_3 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION part_4 VALUES LESS THAN (2147483646) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -85219,7 +85219,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -85232,7 +85232,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part_4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -85695,7 +85695,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part_1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -85708,7 +85708,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part_4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 @@ -86169,12 +86169,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = TokuDB, PARTITION part_2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part_3 VALUES IN (NULL) ENGINE = TokuDB) # check prerequisites-1 success: 1 # check COUNT(*) success: 1 diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_basic_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_basic_tokudb.result index fe289260ffc..ca85132d982 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_basic_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_basic_tokudb.result @@ -73,8 +73,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 unified filelist t1.frm @@ -528,8 +528,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 unified filelist t1.frm @@ -991,7 +991,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -999,7 +999,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) unified filelist t1.frm @@ -1459,13 +1459,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -1921,13 +1921,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -2389,7 +2389,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -2402,7 +2402,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) unified filelist t1.frm @@ -2866,7 +2866,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -2879,7 +2879,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) unified filelist t1.frm @@ -3337,12 +3337,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) unified filelist t1.frm @@ -3798,8 +3798,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 unified filelist t1.frm @@ -4253,8 +4253,8 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 unified filelist t1.frm @@ -4716,7 +4716,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -4724,7 +4724,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) unified filelist t1.frm @@ -5184,13 +5184,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -5646,13 +5646,13 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -6112,7 +6112,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -6125,7 +6125,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) unified filelist t1.frm @@ -6585,7 +6585,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -6598,7 +6598,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) unified filelist t1.frm @@ -7056,12 +7056,12 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) unified filelist t1.frm @@ -7523,8 +7523,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 unified filelist t1.frm @@ -8015,8 +8015,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 unified filelist t1.frm @@ -8515,7 +8515,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -8523,7 +8523,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) unified filelist t1.frm @@ -9020,13 +9020,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -9519,13 +9519,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -10024,7 +10024,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -10037,7 +10037,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) unified filelist t1.frm @@ -10538,7 +10538,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -10551,7 +10551,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) unified filelist t1.frm @@ -11046,12 +11046,12 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) unified filelist t1.frm @@ -11543,8 +11543,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 unified filelist t1.frm @@ -12035,8 +12035,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 unified filelist t1.frm @@ -12535,7 +12535,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -12543,7 +12543,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) unified filelist t1.frm @@ -13040,13 +13040,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -13539,13 +13539,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -14044,7 +14044,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -14057,7 +14057,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) unified filelist t1.frm @@ -14558,7 +14558,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -14571,7 +14571,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) unified filelist t1.frm @@ -15066,12 +15066,12 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) unified filelist t1.frm @@ -15563,8 +15563,8 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1) +PARTITIONS 2 unified filelist t1.frm @@ -16071,8 +16071,8 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1) +PARTITIONS 5 unified filelist t1.frm @@ -16587,7 +16587,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1,4)) + PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -16595,7 +16595,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) unified filelist t1.frm @@ -17108,13 +17108,13 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -17623,13 +17623,13 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1 DIV 2) + PARTITION BY RANGE (f_int1 DIV 2) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -18144,7 +18144,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -18157,7 +18157,7 @@ SUBPARTITION BY KEY (f_int1) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) unified filelist t1.frm @@ -18674,7 +18674,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int1 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -18687,7 +18687,7 @@ SUBPARTITION BY HASH (f_int1 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) unified filelist t1.frm @@ -19198,12 +19198,12 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) unified filelist t1.frm @@ -19716,8 +19716,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 unified filelist t1.frm @@ -20208,8 +20208,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 unified filelist t1.frm @@ -20708,7 +20708,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -20716,7 +20716,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) unified filelist t1.frm @@ -21213,13 +21213,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -21712,13 +21712,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -22215,7 +22215,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -22228,7 +22228,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) unified filelist t1.frm @@ -22725,7 +22725,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -22738,7 +22738,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) unified filelist t1.frm @@ -23233,12 +23233,12 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) unified filelist t1.frm @@ -23730,8 +23730,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 unified filelist t1.frm @@ -24222,8 +24222,8 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 unified filelist t1.frm @@ -24722,7 +24722,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -24730,7 +24730,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) unified filelist t1.frm @@ -25227,13 +25227,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -25726,13 +25726,13 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -26229,7 +26229,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -26242,7 +26242,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) unified filelist t1.frm @@ -26739,7 +26739,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -26752,7 +26752,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) unified filelist t1.frm @@ -27247,12 +27247,12 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) unified filelist t1.frm @@ -27744,8 +27744,8 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY HASH (f_int1 + f_int2) -PARTITIONS 2 */ + PARTITION BY HASH (f_int1 + f_int2) +PARTITIONS 2 unified filelist t1.frm @@ -28252,8 +28252,8 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (f_int1,f_int2) -PARTITIONS 5 */ + PARTITION BY KEY (f_int1,f_int2) +PARTITIONS 5 unified filelist t1.frm @@ -28768,7 +28768,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (MOD(f_int1 + f_int2,4)) + PARTITION BY LIST (MOD(f_int1 + f_int2,4)) (PARTITION part_3 VALUES IN (-3) ENGINE = TokuDB, PARTITION part_2 VALUES IN (-2) ENGINE = TokuDB, PARTITION part_1 VALUES IN (-1) ENGINE = TokuDB, @@ -28776,7 +28776,7 @@ t1 CREATE TABLE `t1` ( PARTITION part0 VALUES IN (0) ENGINE = TokuDB, PARTITION part1 VALUES IN (1) ENGINE = TokuDB, PARTITION part2 VALUES IN (2) ENGINE = TokuDB, - PARTITION part3 VALUES IN (3) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (3) ENGINE = TokuDB) unified filelist t1.frm @@ -29289,13 +29289,13 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) + PARTITION BY RANGE ((f_int1 + f_int2) DIV 2) (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, PARTITION partd VALUES LESS THAN (15) ENGINE = TokuDB, PARTITION parte VALUES LESS THAN (20) ENGINE = TokuDB, - PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partf VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -29804,13 +29804,13 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int2) SUBPARTITIONS 2 (PARTITION parta VALUES LESS THAN (0) ENGINE = TokuDB, PARTITION partb VALUES LESS THAN (5) ENGINE = TokuDB, PARTITION partc VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) */ + PARTITION partd VALUES LESS THAN (2147483646) ENGINE = TokuDB) unified filelist t1.frm @@ -30323,7 +30323,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (f_int1) + PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = TokuDB, @@ -30336,7 +30336,7 @@ SUBPARTITION BY KEY (f_int2) SUBPARTITION subpart32 ENGINE = TokuDB), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = TokuDB, - SUBPARTITION subpart42 ENGINE = TokuDB)) */ + SUBPARTITION subpart42 ENGINE = TokuDB)) unified filelist t1.frm @@ -30849,7 +30849,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,3))) + PARTITION BY LIST (ABS(MOD(f_int1,3))) SUBPARTITION BY HASH (f_int2 + 1) (PARTITION part1 VALUES IN (0) (SUBPARTITION sp11 ENGINE = TokuDB, @@ -30862,7 +30862,7 @@ SUBPARTITION BY HASH (f_int2 + 1) SUBPARTITION sp32 ENGINE = TokuDB), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 ENGINE = TokuDB, - SUBPARTITION sp42 ENGINE = TokuDB)) */ + SUBPARTITION sp42 ENGINE = TokuDB)) unified filelist t1.frm @@ -31373,12 +31373,12 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) + PARTITION BY LIST (ABS(MOD(f_int1,2))) SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = TokuDB, PARTITION part2 VALUES IN (1) ENGINE = TokuDB, - PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) */ + PARTITION part3 VALUES IN (NULL) ENGINE = TokuDB) unified filelist t1.frm diff --git a/storage/tokudb/mysql-test/tokudb_parts/r/partition_debug_tokudb.result b/storage/tokudb/mysql-test/tokudb_parts/r/partition_debug_tokudb.result index 9155661d6d9..5031af92fbe 100644 --- a/storage/tokudb/mysql-test/tokudb_parts/r/partition_debug_tokudb.result +++ b/storage/tokudb/mysql-test/tokudb_parts/r/partition_debug_tokudb.result @@ -28,9 +28,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -56,9 +56,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -87,9 +87,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -117,9 +117,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -148,9 +148,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -178,9 +178,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -209,9 +209,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -239,9 +239,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -270,9 +270,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -300,9 +300,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -331,9 +331,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -361,9 +361,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -392,9 +392,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -422,9 +422,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -453,9 +453,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -483,10 +483,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -515,9 +515,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -543,10 +543,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -575,9 +575,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -603,10 +603,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -636,9 +636,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -661,9 +661,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -691,9 +691,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -717,9 +717,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -749,9 +749,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -774,9 +774,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -804,9 +804,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -830,9 +830,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -862,9 +862,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -887,9 +887,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -917,9 +917,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -943,9 +943,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -975,9 +975,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1000,9 +1000,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1030,9 +1030,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1056,9 +1056,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1088,9 +1088,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1113,9 +1113,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1143,9 +1143,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1169,9 +1169,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1201,9 +1201,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1226,9 +1226,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1256,9 +1256,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1282,9 +1282,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1314,9 +1314,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1339,9 +1339,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1369,9 +1369,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1395,9 +1395,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1427,9 +1427,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1452,10 +1452,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1483,9 +1483,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1509,10 +1509,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1542,9 +1542,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1567,10 +1567,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1598,9 +1598,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1624,10 +1624,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1657,9 +1657,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1682,10 +1682,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1713,9 +1713,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1739,10 +1739,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1773,9 +1773,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1800,9 +1800,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1831,9 +1831,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1860,9 +1860,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1891,9 +1891,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1920,9 +1920,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1951,9 +1951,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -1980,8 +1980,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2006,9 +2006,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2035,8 +2035,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2061,9 +2061,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2090,8 +2090,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2116,9 +2116,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2143,8 +2143,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2169,9 +2169,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2196,8 +2196,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2222,9 +2222,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2249,8 +2249,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2276,9 +2276,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2300,9 +2300,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2330,9 +2330,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2355,9 +2355,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2387,9 +2387,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2411,9 +2411,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2441,9 +2441,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2466,9 +2466,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2498,9 +2498,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2522,9 +2522,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2552,9 +2552,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2577,9 +2577,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2609,9 +2609,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2633,8 +2633,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2658,9 +2658,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2683,8 +2683,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2710,9 +2710,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2734,8 +2734,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2759,9 +2759,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2784,8 +2784,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2811,9 +2811,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2835,8 +2835,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2860,9 +2860,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2885,8 +2885,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2912,9 +2912,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2936,8 +2936,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2961,9 +2961,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -2986,8 +2986,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3013,9 +3013,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3037,8 +3037,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3062,9 +3062,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3087,8 +3087,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3114,9 +3114,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3138,8 +3138,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3163,9 +3163,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3188,8 +3188,8 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) -(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) */ + PARTITION BY LIST (a) +(PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3217,9 +3217,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3246,9 +3246,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3277,9 +3277,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3308,9 +3308,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3339,9 +3339,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3370,9 +3370,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3401,9 +3401,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3432,9 +3432,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3463,9 +3463,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3494,9 +3494,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3525,9 +3525,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3556,9 +3556,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3587,9 +3587,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3618,10 +3618,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3650,9 +3650,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3681,10 +3681,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3713,9 +3713,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3742,10 +3742,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3774,9 +3774,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3803,10 +3803,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3835,9 +3835,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3864,10 +3864,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3896,9 +3896,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3925,10 +3925,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3959,9 +3959,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -3985,9 +3985,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4015,9 +4015,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4042,9 +4042,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4074,9 +4074,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4100,9 +4100,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4130,9 +4130,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4157,9 +4157,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4189,9 +4189,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4215,9 +4215,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4245,9 +4245,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4272,9 +4272,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4304,9 +4304,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4330,9 +4330,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4360,9 +4360,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4387,9 +4387,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4419,9 +4419,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4445,9 +4445,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4475,9 +4475,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4502,9 +4502,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4534,9 +4534,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4560,9 +4560,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4590,9 +4590,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4617,9 +4617,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4649,9 +4649,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4675,10 +4675,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4706,9 +4706,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4733,10 +4733,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4766,9 +4766,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4792,10 +4792,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4823,9 +4823,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4850,10 +4850,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4883,9 +4883,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4909,10 +4909,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4940,9 +4940,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -4967,10 +4967,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5000,9 +5000,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5026,10 +5026,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5057,9 +5057,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5084,10 +5084,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5117,9 +5117,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5143,10 +5143,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5174,9 +5174,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5201,10 +5201,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5234,9 +5234,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5260,10 +5260,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5291,9 +5291,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, - PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) */ + PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5318,10 +5318,10 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST (a) + PARTITION BY LIST (a) (PARTITION p0 VALUES IN (0,1,2,3,4,5,6,7,8,9) ENGINE = TokuDB, PARTITION p10 VALUES IN (10,11,12,13,14,15,16,17,18,19) ENGINE = TokuDB, - PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) */ + PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29) ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5372,9 +5372,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5405,9 +5405,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5468,9 +5468,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5501,9 +5501,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5564,9 +5564,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5597,9 +5597,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5660,9 +5660,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5693,9 +5693,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5756,9 +5756,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5789,9 +5789,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5852,9 +5852,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5885,9 +5885,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5948,9 +5948,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -5981,9 +5981,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6044,9 +6044,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6077,9 +6077,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6140,9 +6140,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6173,9 +6173,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 11 Original from partition p1 @@ -6236,9 +6236,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6265,9 +6265,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6328,9 +6328,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6357,9 +6357,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6420,9 +6420,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6449,9 +6449,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6512,9 +6512,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6541,9 +6541,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6604,9 +6604,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6633,9 +6633,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6696,9 +6696,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6725,9 +6725,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6788,9 +6788,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6817,9 +6817,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6880,9 +6880,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6909,9 +6909,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -6972,9 +6972,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 1 Original from partition p0 @@ -7001,9 +7001,9 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` varchar(64) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (a) + PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN (10) ENGINE = TokuDB, - PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) */ + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = TokuDB) SELECT * FROM t1; a b 11 Original from partition p1 From eaf9c4b54f106d5c4046677c3c17bcb9f81aca17 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Sat, 24 Dec 2016 10:58:33 -0500 Subject: [PATCH 172/258] MDEV-7635: Disable rpl_row_index_choice (MDEV-11666) --- mysql-test/suite/rpl/disabled.def | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/suite/rpl/disabled.def b/mysql-test/suite/rpl/disabled.def index 34171b98cda..e37ad842790 100644 --- a/mysql-test/suite/rpl/disabled.def +++ b/mysql-test/suite/rpl/disabled.def @@ -16,3 +16,4 @@ rpl_partition_archive : MDEV-5077 2013-09-27 svoj Cannot exchange partition rpl_row_binlog_max_cache_size : MDEV-11092 rpl_blackhole : MDEV-11094 rpl_row_mysqlbinlog : MDEV-11095 +rpl_row_index_choice : MDEV-11666 From f8aa54f1bcf285895c69371399bd5f72904ef908 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Wed, 11 Jan 2017 09:05:36 -0500 Subject: [PATCH 173/258] MDEV-11685: sql_mode can't be set with non-ascii connection charset The supplied sql_mode(s) should be converted to ASCII first, before comparing it with the sql_mode set. --- mysql-test/r/ctype_ucs.result | 10 ++++++++++ mysql-test/r/ctype_utf16.result | 10 ++++++++++ mysql-test/r/ctype_utf32.result | 10 ++++++++++ mysql-test/t/ctype_ucs.test | 8 ++++++++ mysql-test/t/ctype_utf16.test | 9 +++++++++ mysql-test/t/ctype_utf32.test | 9 +++++++++ sql/sys_vars.ic | 2 +- 7 files changed, 57 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 4d93eb2ee76..9c5a33f23e5 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -4576,6 +4576,16 @@ SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061)); CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061)) 1 # +# MDEV-11685: sql_mode can't be set with non-ascii connection charset +# +SET character_set_connection=ucs2; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +@@sql_mode +NO_ENGINE_SUBSTITUTION +SET sql_mode=DEFAULT; +SET NAMES utf8; +# # End of 5.5 tests # # diff --git a/mysql-test/r/ctype_utf16.result b/mysql-test/r/ctype_utf16.result index bd3ee12e524..3f483c43902 100644 --- a/mysql-test/r/ctype_utf16.result +++ b/mysql-test/r/ctype_utf16.result @@ -1580,6 +1580,16 @@ ERROR HY000: Invalid utf16 character string: 'DE9899' DO LPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999); ERROR HY000: Invalid utf16 character string: 'DE9899' # +# MDEV-11685: sql_mode can't be set with non-ascii connection charset +# +SET character_set_connection=utf16; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +@@sql_mode +NO_ENGINE_SUBSTITUTION +SET sql_mode=DEFAULT; +SET NAMES utf8; +# # End of 5.5 tests # # diff --git a/mysql-test/r/ctype_utf32.result b/mysql-test/r/ctype_utf32.result index 5a86e56b704..ab2f8b14c41 100644 --- a/mysql-test/r/ctype_utf32.result +++ b/mysql-test/r/ctype_utf32.result @@ -1666,6 +1666,16 @@ c Warnings: Warning 1300 Invalid utf32 character string: '\xFF\xFF\x00\x00' # +# MDEV-11685: sql_mode can't be set with non-ascii connection charset +# +SET character_set_connection=utf32; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +@@sql_mode +NO_ENGINE_SUBSTITUTION +SET sql_mode=DEFAULT; +SET NAMES utf8; +# # End of 5.5 tests # # diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index cad82222ac7..5b8c2f74528 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -816,6 +816,14 @@ SELECT CHAR_LENGTH(TRIM(BOTH 0x0001 FROM _ucs2 0x0061)); SELECT CHAR_LENGTH(TRIM(BOTH 0x61 FROM _ucs2 0x0061)); SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _ucs2 0x0061)); +--echo # +--echo # MDEV-11685: sql_mode can't be set with non-ascii connection charset +--echo # +SET character_set_connection=ucs2; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +SET sql_mode=DEFAULT; +SET NAMES utf8; --echo # --echo # End of 5.5 tests diff --git a/mysql-test/t/ctype_utf16.test b/mysql-test/t/ctype_utf16.test index 3946da73f9b..c986309707e 100644 --- a/mysql-test/t/ctype_utf16.test +++ b/mysql-test/t/ctype_utf16.test @@ -795,6 +795,15 @@ DO RPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999); --error ER_INVALID_CHARACTER_STRING DO LPAD(_utf16 0x0061 COLLATE utf16_unicode_ci, 10000, 0x0061DE989999); +--echo # +--echo # MDEV-11685: sql_mode can't be set with non-ascii connection charset +--echo # +SET character_set_connection=utf16; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +SET sql_mode=DEFAULT; +SET NAMES utf8; + --echo # --echo # End of 5.5 tests --echo # diff --git a/mysql-test/t/ctype_utf32.test b/mysql-test/t/ctype_utf32.test index f364f1bd3a5..f113f046d42 100644 --- a/mysql-test/t/ctype_utf32.test +++ b/mysql-test/t/ctype_utf32.test @@ -894,6 +894,15 @@ SELECT CHAR_LENGTH(TRIM(BOTH 0x00 FROM _utf32 0x00000061)); # select hex(lower(cast(0xffff0000 as char character set utf32))) as c; +--echo # +--echo # MDEV-11685: sql_mode can't be set with non-ascii connection charset +--echo # +SET character_set_connection=utf32; +SET sql_mode='NO_ENGINE_SUBSTITUTION'; +SELECT @@sql_mode; +SET sql_mode=DEFAULT; +SET NAMES utf8; + --echo # --echo # End of 5.5 tests --echo # diff --git a/sql/sys_vars.ic b/sql/sys_vars.ic index c7f148afd39..780450b484b 100644 --- a/sql/sys_vars.ic +++ b/sql/sys_vars.ic @@ -1347,7 +1347,7 @@ public: if (var->value->result_type() == STRING_RESULT) { - if (!(res=var->value->val_str(&str))) + if (!(res=var->value->val_str_ascii(&str))) return true; else { From 04b52a0745dd5622d890cc4283293177cec655e0 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Tue, 31 Jan 2017 12:33:13 -0500 Subject: [PATCH 174/258] MDEV-7635: Part 2 New default sql_mode includes: * STRICT_TRANS_TABLES * ERROR_FOR_DIVISION_BY_ZERO * NO_ENGINE_SUBSTITUTION * NO_AUTO_CREATE_USER --- sql/sys_vars.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index be5bf571898..1dd6e8f38ce 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -3118,7 +3118,9 @@ static Sys_var_set Sys_sql_mode( "Sets the sql mode", SESSION_VAR(sql_mode), CMD_LINE(REQUIRED_ARG), sql_mode_names, - DEFAULT(MODE_NO_ENGINE_SUBSTITUTION | + DEFAULT(MODE_STRICT_TRANS_TABLES | + MODE_ERROR_FOR_DIVISION_BY_ZERO | + MODE_NO_ENGINE_SUBSTITUTION | MODE_NO_AUTO_CREATE_USER), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_sql_mode), ON_UPDATE(fix_sql_mode)); From f556aa9b5f3685dfcf1b365d2461316cbd16e169 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Tue, 31 Jan 2017 12:34:38 -0500 Subject: [PATCH 175/258] MDEV-7635: SET shouldn't fail for invalid values in strict trans mode --- sql/set_var.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/set_var.cc b/sql/set_var.cc index 26eb5127a0b..004af2a5690 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -464,7 +464,7 @@ bool throw_bounds_warning(THD *thd, const char *name, else llstr(v, buf); - if (thd->is_strict_mode()) + if (thd->variables.sql_mode & MODE_STRICT_ALL_TABLES) { my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), name, buf); return true; @@ -484,7 +484,7 @@ bool throw_bounds_warning(THD *thd, const char *name, bool fixed, double v) my_gcvt(v, MY_GCVT_ARG_DOUBLE, sizeof(buf) - 1, buf, NULL); - if (thd->is_strict_mode()) + if (thd->variables.sql_mode & MODE_STRICT_ALL_TABLES) { my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), name, buf); return true; From 8b2e642aa214db729161252b96f36bfbae3add21 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Wed, 8 Feb 2017 15:28:00 -0500 Subject: [PATCH 176/258] MDEV-7635: Update tests to adapt to the new default sql_mode --- mysql-test/extra/binlog_tests/binlog.test | 2 +- .../extra/binlog_tests/ctype_cp932.test | 4 +- .../extra/rpl_tests/rpl_binlog_errors.inc | 10 + .../extra/rpl_tests/rpl_checksum_cache.inc | 4 +- .../extra/rpl_tests/rpl_extra_col_master.test | 8 +- mysql-test/extra/rpl_tests/rpl_gtid_basic.inc | 4 + .../extra/rpl_tests/rpl_record_compare.test | 4 +- mysql-test/extra/rpl_tests/rpl_row_basic.test | 30 +- .../rpl_tests/rpl_switch_stm_row_mixed.inc | 4 +- mysql-test/include/add_anonymous_users.inc | 2 +- mysql-test/include/commit.inc | 2 +- mysql-test/include/ctype_common.inc | 2 +- mysql-test/include/ctype_numconv.inc | 1 + mysql-test/include/ctype_unescape.inc | 3 + mysql-test/include/ctype_utf8mb4.inc | 47 +- mysql-test/include/func_hybrid_type.inc | 1 + mysql-test/include/function_defaults.inc | 14 +- mysql-test/include/icp_tests.inc | 6 +- mysql-test/include/loaddata_autocom.inc | 4 +- mysql-test/include/mix1.inc | 18 +- mysql-test/include/mix2.inc | 2 + mysql-test/include/ps_conv.inc | 12 + mysql-test/include/ps_modify.inc | 2 + mysql-test/include/type_hrtime.inc | 4 +- mysql-test/include/world.inc | 24 +- mysql-test/r/adddate_454.result | 2 +- mysql-test/r/alter_table.result | 4 +- .../r/auto_increment_ranges_innodb.result | 12 +- .../r/auto_increment_ranges_myisam.result | 12 +- mysql-test/r/bigint.result | 4 +- mysql-test/r/case.result | 14 +- mysql-test/r/cast.result | 13 +- mysql-test/r/comment_column.result | 1 + mysql-test/r/comment_index.result | 2 + mysql-test/r/commit_1innodb.result | 2 +- mysql-test/r/compound.result | 2 +- mysql-test/r/create.result | 9 +- mysql-test/r/create_drop_function.result | 2 +- mysql-test/r/ctype_big5.result | 186 +- mysql-test/r/ctype_binary.result | 235 +- mysql-test/r/ctype_collate.result | 2 +- mysql-test/r/ctype_cp1250_ch.result | 16 +- mysql-test/r/ctype_cp1251.result | 227 +- mysql-test/r/ctype_cp932_binlog_stm.result | 146 +- mysql-test/r/ctype_eucjpms.result | 184 +- mysql-test/r/ctype_euckr.result | 186 +- mysql-test/r/ctype_gb2312.result | 174 +- mysql-test/r/ctype_gbk.result | 202 +- mysql-test/r/ctype_latin1.result | 263 +- mysql-test/r/ctype_latin1_de.result | 4 +- mysql-test/r/ctype_latin2.result | 6 +- mysql-test/r/ctype_latin2_ch.result | 12 +- mysql-test/r/ctype_ldml.result | 2 +- mysql-test/r/ctype_many.result | 3 +- mysql-test/r/ctype_mb.result | 2 +- mysql-test/r/ctype_recoding.result | 2 +- mysql-test/r/ctype_sjis.result | 188 +- mysql-test/r/ctype_swe7.result | 2 + mysql-test/r/ctype_tis620.result | 24 +- mysql-test/r/ctype_uca.result | 88 +- mysql-test/r/ctype_uca_innodb.result | 10 +- mysql-test/r/ctype_ucs.result | 306 +- mysql-test/r/ctype_ujis.result | 184 +- mysql-test/r/ctype_ujis_ucs2.result | 4 +- mysql-test/r/ctype_utf16.result | 22 +- mysql-test/r/ctype_utf16_uca.result | 22 +- mysql-test/r/ctype_utf16le.result | 24 +- mysql-test/r/ctype_utf32.result | 43 +- mysql-test/r/ctype_utf32_uca.result | 22 +- mysql-test/r/ctype_utf8.result | 334 +- mysql-test/r/ctype_utf8mb4.result | 77 +- mysql-test/r/ctype_utf8mb4_heap.result | 61 +- mysql-test/r/ctype_utf8mb4_innodb.result | 63 +- mysql-test/r/ctype_utf8mb4_myisam.result | 63 +- mysql-test/r/ctype_utf8mb4_uca.result | 10 +- mysql-test/r/default.result | 22 +- mysql-test/r/default_session.result | 2 +- mysql-test/r/errors.result | 4 + mysql-test/r/failed_auth_3909.result | 2 +- mysql-test/r/fulltext.result | 1 + mysql-test/r/func_gconcat.result | 4 +- mysql-test/r/func_hybrid_type.result | 16 + mysql-test/r/func_in.result | 8 +- mysql-test/r/func_json.result | 4 +- mysql-test/r/func_like.result | 2 +- mysql-test/r/func_math.result | 23 +- mysql-test/r/func_misc.result | 4 +- mysql-test/r/func_regexp_pcre.result | 6 +- mysql-test/r/func_set.result | 2 +- mysql-test/r/func_str.result | 192 +- mysql-test/r/func_system.result | 6 +- mysql-test/r/func_test.result | 16 + mysql-test/r/func_time.result | 3 +- mysql-test/r/function_defaults.result | 28 +- mysql-test/r/function_defaults_innodb.result | 28 +- mysql-test/r/get_diagnostics.result | 3 +- mysql-test/r/gis-rtree.result | 4 +- mysql-test/r/gis.result | 6 +- mysql-test/r/having.result | 2 +- mysql-test/r/help.result | 16 +- mysql-test/r/innodb_icp.result | 6 +- mysql-test/r/insert.result | 20 +- mysql-test/r/insert_select.result | 4 +- mysql-test/r/join.result | 2 + mysql-test/r/join_outer_innodb.result | 2 +- mysql-test/r/key.result | 8 +- mysql-test/r/limit_rows_examined.result | 2 +- mysql-test/r/loaddata.result | 8 +- mysql-test/r/loaddata_autocom_innodb.result | 4 +- mysql-test/r/merge.result | 2 +- mysql-test/r/mix2_myisam.result | 2 + mysql-test/r/multi_update.result | 4 +- mysql-test/r/myisam-blob.result | 3 +- mysql-test/r/myisam.result | 5 +- mysql-test/r/myisam_icp.result | 6 +- mysql-test/r/mysqlbinlog-innodb.result | 4 +- mysql-test/r/mysqlbinlog.result | 20 +- .../r/mysqlbinlog_row_compressed.result | 2 +- mysql-test/r/mysqlbinlog_row_minimal.result | 2 +- .../r/mysqlbinlog_stmt_compressed.result | 2 +- mysql-test/r/mysqld--help.result | 4 +- mysql-test/r/mysqldump-nl.result | 2 +- mysql-test/r/mysqldump.result | 26 +- mysql-test/r/mysqlhotcopy_myisam.result | 6 +- mysql-test/r/null.result | 31 +- mysql-test/r/null_key.result | 2 +- mysql-test/r/old-mode.result | 8 +- mysql-test/r/order_by.result | 1 + mysql-test/r/order_by_zerolength-4285.result | 14 +- mysql-test/r/partition_datatype.result | 42 +- mysql-test/r/partition_error.result | 5 +- mysql-test/r/plugin_auth.result | 2 +- mysql-test/r/ps.result | 28 +- mysql-test/r/ps_1general.result | 2 +- mysql-test/r/ps_2myisam.result | 18 +- mysql-test/r/ps_3innodb.result | 18 +- mysql-test/r/ps_4heap.result | 18 +- mysql-test/r/ps_5merge.result | 36 +- mysql-test/r/round.result | 32 +- mysql-test/r/select.result | 10 +- mysql-test/r/select_jcl6.result | 10 +- mysql-test/r/select_pkeycache.result | 10 +- mysql-test/r/set_statement.result | 12 +- mysql-test/r/show_check.result | 78 +- mysql-test/r/signal.result | 12 +- mysql-test/r/skip_grants.result | 4 +- mysql-test/r/sp-dynamic.result | 2 + mysql-test/r/sp-error.result | 20 +- mysql-test/r/sp-lock.result | 2 +- mysql-test/r/sp-security.result | 12 +- mysql-test/r/sp-ucs2.result | 12 +- mysql-test/r/sp.result | 8 +- mysql-test/r/sp_notembedded.result | 4 +- mysql-test/r/strict.result | 1 + mysql-test/r/subselect.result | 6 +- mysql-test/r/subselect2.result | 2 +- mysql-test/r/subselect_mat.result | 2 +- mysql-test/r/subselect_no_exists_to_in.result | 6 +- mysql-test/r/subselect_no_mat.result | 6 +- mysql-test/r/subselect_no_opts.result | 6 +- mysql-test/r/subselect_no_scache.result | 6 +- mysql-test/r/subselect_no_semijoin.result | 6 +- mysql-test/r/subselect_sj_mat.result | 2 +- mysql-test/r/system_mysql_db_refs.result | 12 +- mysql-test/r/trigger-compat.result | 4 +- mysql-test/r/trigger.result | 6 +- mysql-test/r/trigger_notembedded.result | 14 +- mysql-test/r/trigger_wl3253.result | 40 +- mysql-test/r/truncate.result | 2 +- mysql-test/r/type_binary.result | 4 +- mysql-test/r/type_bit.result | 6 +- mysql-test/r/type_bit_innodb.result | 4 +- mysql-test/r/type_blob.result | 3 + mysql-test/r/type_date.result | 6 +- mysql-test/r/type_datetime.result | 8 +- mysql-test/r/type_datetime_hires.result | 4 +- mysql-test/r/type_decimal.result | 50 +- mysql-test/r/type_enum.result | 22 +- mysql-test/r/type_float.result | 30 +- mysql-test/r/type_newdecimal.result | 22 +- mysql-test/r/type_num.result | 22 +- mysql-test/r/type_ranges.result | 20 +- mysql-test/r/type_set.result | 1 + mysql-test/r/type_temporal_innodb.result | 6 +- mysql-test/r/type_time.result | 5 +- mysql-test/r/type_time_hires.result | 4 +- mysql-test/r/type_timestamp.result | 2 +- mysql-test/r/type_timestamp_hires.result | 4 +- mysql-test/r/type_uint.result | 4 +- mysql-test/r/type_year.result | 14 +- mysql-test/r/union.result | 6 +- mysql-test/r/user_var-binlog.result | 2 +- mysql-test/r/view.result | 6 +- mysql-test/r/warnings.result | 35 +- mysql-test/r/win.result | 88 + mysql-test/r/xtradb_mrr.result | 2 +- mysql-test/suite/archive/archive.result | 2 +- mysql-test/suite/archive/archive.test | 2 +- .../suite/archive/mysqlhotcopy_archive.result | 6 +- .../binlog/r/binlog_mysqlbinlog_row.result | 2 +- .../r/binlog_mysqlbinlog_row_trans.result | 2 +- .../suite/binlog/r/binlog_row_annotate.result | 52 +- .../suite/binlog/r/binlog_row_binlog.result | 4 +- .../binlog/r/binlog_row_ctype_cp932.result | 42 +- .../binlog/r/binlog_row_ctype_ucs.result | 4 +- .../r/binlog_row_mysqlbinlog_options.result | 4 +- .../suite/binlog/r/binlog_stm_binlog.result | 4 +- .../binlog/r/binlog_stm_ctype_cp932.result | 42 +- .../binlog/r/binlog_stm_ctype_ucs.result | 4 +- .../binlog/r/binlog_stm_user_variables.result | 20 +- mysql-test/suite/binlog/r/flashback.result | 29 +- .../binlog/t/binlog_stm_user_variables.test | 8 +- .../binlog_row_annotate.result | 7 + .../binlog_xa_recover.result | 7 + .../rpl_binlog_errors.result | 1 + .../binlog_encryption/rpl_gtid_basic.result | 2 + .../rpl_switch_stm_row_mixed.result | 6 +- mysql-test/suite/csv/csv.result | 18 +- mysql-test/suite/csv/csv.test | 18 +- mysql-test/suite/csv/csv_not_null.result | 8 +- mysql-test/suite/csv/csv_not_null.test | 8 +- .../engines/funcs/r/comment_column.result | 1 + .../engines/funcs/r/comment_index.result | 2 + .../engines/funcs/r/date_function.result | 34 +- .../engines/funcs/r/datetime_function.result | 2 +- .../suite/engines/funcs/r/in_enum_null.result | 4 +- .../suite/engines/funcs/r/in_set_null.result | 2 +- .../engines/funcs/r/jp_comment_column.result | 1 + .../engines/funcs/r/jp_comment_index.result | 2 + .../funcs/r/ta_set_drop_default.result | 44 +- .../funcs/r/tc_partition_remove.result | 4 +- .../engines/funcs/r/time_function.result | 2 +- .../suite/engines/funcs/t/comment_column.test | 1 + .../suite/engines/funcs/t/comment_index.test | 2 + .../suite/engines/funcs/t/date_function.test | 34 +- .../engines/funcs/t/datetime_function.test | 2 +- .../suite/engines/funcs/t/in_enum_null.test | 4 +- .../suite/engines/funcs/t/in_set_null.test | 2 +- .../engines/funcs/t/jp_comment_column.test | 1 + .../engines/funcs/t/jp_comment_index.test | 2 + .../suite/engines/funcs/t/rpl_row_until.test | 8 +- .../engines/funcs/t/ta_set_drop_default.test | 44 +- .../engines/funcs/t/tc_partition_remove.test | 4 +- .../suite/engines/funcs/t/time_function.test | 2 +- .../engines/iuds/r/delete_decimal.result | 18 +- .../engines/iuds/r/insert_decimal.result | 93 +- .../suite/engines/iuds/r/insert_number.result | 37 +- .../suite/engines/iuds/r/insert_time.result | 10 +- .../suite/engines/iuds/r/insert_year.result | 48 +- .../iuds/r/strings_update_delete.result | 9 +- .../suite/engines/iuds/r/type_bit_iuds.result | 2844 ++++++++--------- .../engines/iuds/r/update_decimal.result | 52 +- .../iuds/r/update_delete_number.result | 52 +- .../suite/engines/iuds/r/update_time.result | 14 +- .../suite/engines/iuds/r/update_year.result | 12 +- .../suite/engines/iuds/t/delete_decimal.test | 18 +- .../suite/engines/iuds/t/insert_decimal.test | 93 +- .../suite/engines/iuds/t/insert_number.test | 37 +- .../suite/engines/iuds/t/insert_time.test | 10 +- .../suite/engines/iuds/t/insert_year.test | 48 +- .../engines/iuds/t/strings_update_delete.test | 9 +- .../suite/engines/iuds/t/type_bit_iuds.test | 924 +++--- .../suite/engines/iuds/t/update_decimal.test | 52 +- .../engines/iuds/t/update_delete_number.test | 52 +- .../suite/engines/iuds/t/update_time.test | 14 +- .../suite/engines/iuds/t/update_year.test | 12 +- .../suite/engines/rr_trx/r/init_innodb.result | 2 +- .../funcs_1/r/innodb_storedproc_02.result | 10 +- .../funcs_1/r/innodb_storedproc_03.result | 4 +- .../funcs_1/r/innodb_storedproc_06.result | 4 +- .../funcs_1/r/innodb_storedproc_07.result | 4 +- .../funcs_1/r/innodb_storedproc_08.result | 4 +- .../funcs_1/r/innodb_storedproc_10.result | 4 +- .../suite/funcs_1/r/innodb_trig_03e.result | 4 +- .../suite/funcs_1/r/innodb_trig_09.result | 2 +- .../funcs_1/r/innodb_trig_1011ext.result | 5 +- .../suite/funcs_1/r/is_cml_innodb.result | 14 + mysql-test/suite/funcs_1/r/is_columns.result | 4 +- .../suite/funcs_1/r/is_columns_innodb.result | 53 +- .../funcs_1/r/memory_storedproc_02.result | 10 +- .../funcs_1/r/memory_storedproc_03.result | 4 +- .../funcs_1/r/memory_storedproc_06.result | 4 +- .../funcs_1/r/memory_storedproc_07.result | 4 +- .../funcs_1/r/memory_storedproc_08.result | 4 +- .../funcs_1/r/memory_storedproc_10.result | 4 +- .../suite/funcs_1/r/memory_trig_03e.result | 4 +- .../suite/funcs_1/r/memory_trig_09.result | 2 +- .../funcs_1/r/memory_trig_1011ext.result | 5 +- .../funcs_1/r/myisam_storedproc_02.result | 10 +- .../funcs_1/r/myisam_storedproc_03.result | 4 +- .../funcs_1/r/myisam_storedproc_06.result | 4 +- .../funcs_1/r/myisam_storedproc_07.result | 4 +- .../funcs_1/r/myisam_storedproc_08.result | 4 +- .../funcs_1/r/myisam_storedproc_10.result | 4 +- .../suite/funcs_1/r/myisam_trig_03e.result | 4 +- .../suite/funcs_1/r/myisam_trig_09.result | 2 +- .../funcs_1/r/myisam_trig_1011ext.result | 5 +- mysql-test/suite/funcs_1/r/storedproc.result | 4 +- .../suite/funcs_1/storedproc/load_sp_tb.inc | 4 +- .../funcs_1/storedproc/storedproc_02.inc | 6 + .../suite/funcs_1/triggers/triggers_09.inc | 2 +- .../funcs_1/triggers/triggers_1011ext.inc | 7 +- .../suite/funcs_2/include/check_charset.inc | 2 +- .../galera/r/galera_create_function.result | 8 +- .../galera/r/galera_create_procedure.result | 8 +- mysql-test/suite/galera/r/galera_enum.result | 2 +- .../galera/r/galera_sync_wait_show.result | 8 +- mysql-test/suite/galera/r/lp1347768.result | 2 +- mysql-test/suite/galera/t/galera_enum.test | 2 +- mysql-test/suite/galera/t/lp1347768.test | 2 +- .../gcol/inc/gcol_column_def_options.inc | 2 + mysql-test/suite/gcol/inc/gcol_ins_upd.inc | 12 +- mysql-test/suite/gcol/inc/gcol_keys.inc | 4 +- .../r/gcol_column_def_options_innodb.result | 2 + .../r/gcol_column_def_options_myisam.result | 2 + .../suite/gcol/r/gcol_ins_upd_innodb.result | 8 +- .../suite/gcol/r/gcol_ins_upd_myisam.result | 12 +- .../suite/gcol/r/gcol_keys_myisam.result | 3 + .../suite/gcol/r/gcol_select_innodb.result | 15 +- .../suite/gcol/r/gcol_select_myisam.result | 27 +- .../r/gcol_supported_sql_funcs_innodb.result | 23 +- .../r/gcol_supported_sql_funcs_myisam.result | 23 +- .../suite/gcol/r/innodb_virtual_basic.result | 2 + .../suite/gcol/r/innodb_virtual_fk.result | 4 +- .../suite/gcol/t/innodb_virtual_fk.test | 2 +- mysql-test/suite/heap/heap.result | 1 + mysql-test/suite/heap/heap.test | 1 + .../suite/innodb/r/innodb-autoinc.result | 31 +- .../innodb/r/innodb-update-insert.result | 3 +- .../innodb/r/innodb-wl5522-debug-zip.result | 2 +- .../suite/innodb/r/innodb-wl5522-debug.result | 2 +- mysql-test/suite/innodb/r/innodb.result | 2 +- .../suite/innodb/r/innodb_bug53592.result | 2 + .../suite/innodb/r/innodb_ctype_ldml.result | 2 +- .../r/innodb_lock_wait_timeout_1.result | 2 +- mysql-test/suite/innodb/r/innodb_mysql.result | 388 ++- .../innodb/r/temp_table_savepoint.result | 12 +- mysql-test/suite/innodb/t/innodb-autoinc.test | 31 +- .../suite/innodb/t/innodb-update-insert.test | 3 +- .../innodb/t/innodb-wl5522-debug-zip.test | 2 +- .../suite/innodb/t/innodb-wl5522-debug.test | 3 +- mysql-test/suite/innodb/t/innodb.test | 2 +- .../suite/innodb/t/innodb_bug53592.test | 2 + .../suite/innodb/t/innodb_ctype_ldml.test | 2 +- .../innodb/t/innodb_lock_wait_timeout_1.test | 2 +- .../suite/innodb/t/temp_table_savepoint.test | 12 +- mysql-test/suite/innodb_fts/r/create.result | 4 +- .../r/innodb_fts_stopword_charset.result | 14 +- mysql-test/suite/innodb_fts/t/create.test | 4 +- .../t/innodb_fts_stopword_charset.test | 14 +- mysql-test/suite/innodb_gis/r/1.result | 2 +- .../innodb_gis/r/alter_spatial_index.result | 1 + mysql-test/suite/innodb_gis/r/gis.result | 2 +- .../innodb_gis/t/alter_spatial_index.test | 2 +- mysql-test/suite/innodb_zip/r/16k.result | 2 +- .../innodb_zip/r/index_large_prefix.result | 6 +- .../suite/innodb_zip/r/innodb_bug52745.result | 3 +- .../r/innodb_index_large_prefix.result | 5 + .../suite/innodb_zip/t/innodb_bug52745.test | 3 +- .../t/innodb_index_large_prefix.test | 5 + mysql-test/suite/jp/r/jp_convert_ucs2.result | 42 +- mysql-test/suite/jp/r/jp_convert_ujis.result | 186 +- mysql-test/suite/jp/r/jp_convert_utf8.result | 204 +- mysql-test/suite/json/r/json_no_table.result | 8 +- mysql-test/suite/maria/icp.result | 6 +- .../maria/maria-gis-rtree-dynamic.result | 4 +- .../suite/maria/maria-gis-rtree-dynamic.test | 4 +- .../suite/maria/maria-gis-rtree-trans.result | 4 +- .../suite/maria/maria-gis-rtree-trans.test | 4 +- mysql-test/suite/maria/maria-gis-rtree.result | 4 +- mysql-test/suite/maria/maria-gis-rtree.test | 4 +- mysql-test/suite/maria/maria-ucs2.result | 1 + mysql-test/suite/maria/maria-ucs2.test | 1 + mysql-test/suite/maria/maria.result | 4 + mysql-test/suite/maria/maria.test | 6 +- mysql-test/suite/maria/ps_maria.result | 18 +- .../optimizer_unfixed_bugs/r/bug43360.result | 2 +- .../optimizer_unfixed_bugs/r/bug43617.result | 2 +- .../optimizer_unfixed_bugs/r/bug43618.result | 2 +- .../optimizer_unfixed_bugs/t/bug43360.test | 2 +- .../optimizer_unfixed_bugs/t/bug43617.test | 2 +- .../optimizer_unfixed_bugs/t/bug43618.test | 2 +- mysql-test/suite/parts/inc/partition_enum.inc | 2 +- mysql-test/suite/parts/inc/partition_year.inc | 2 +- .../perfschema/include/digest_execution.inc | 2 +- .../perfschema/r/digest_table_full.result | 2 +- .../perfschema/r/dml_setup_objects.result | 3 + .../suite/perfschema/r/setup_objects.result | 2 + .../r/start_server_no_digests.result | 2 +- .../perfschema/r/statement_digest.result | 4 +- .../r/statement_digest_consumers.result | 4 +- .../r/statement_digest_consumers2.result | 2 +- .../suite/perfschema/t/dml_setup_objects.test | 3 + .../suite/perfschema/t/setup_objects.test | 2 + mysql-test/suite/plugins/r/qc_info.result | 2 +- .../suite/plugins/r/qc_info_priv.result | 2 +- mysql-test/suite/roles/definer.result | 50 +- mysql-test/suite/roles/none_public.result | 2 +- mysql-test/suite/roles/none_public.test | 2 +- mysql-test/suite/roles/rpl_definer.result | 16 +- .../suite/roles/set_default_role_for.result | 2 +- .../suite/roles/set_default_role_for.test | 2 +- .../suite/rpl/r/rpl_checksum_cache.result | 4 +- .../suite/rpl/r/rpl_concurrency_error.result | 16 +- .../rpl/r/rpl_create_drop_function.result | 2 +- mysql-test/suite/rpl/r/rpl_do_grant.result | 6 +- .../rpl/r/rpl_extra_col_master_innodb.result | 8 +- .../rpl/r/rpl_extra_col_master_myisam.result | 8 +- mysql-test/suite/rpl/r/rpl_hrtime.result | 2 +- mysql-test/suite/rpl/r/rpl_mdev382.result | 2 +- .../suite/rpl/r/rpl_replicate_do.result | 6 +- mysql-test/suite/rpl/r/rpl_rewrt_db.result | 4 +- .../suite/rpl/r/rpl_row_basic_2myisam.result | 30 +- .../suite/rpl/r/rpl_row_basic_3innodb.result | 30 +- .../suite/rpl/r/rpl_row_create_select.result | 2 + .../rpl/r/rpl_row_rec_comp_innodb.result | 4 +- .../rpl/r/rpl_row_rec_comp_myisam.result | 4 +- mysql-test/suite/rpl/r/rpl_sp_effects.result | 1 + mysql-test/suite/rpl/r/rpl_stm_000001.result | 2 +- .../suite/rpl/r/rpl_stm_user_variables.result | 10 +- .../rpl/r/rpl_switch_stm_row_mixed.result | 4 +- .../suite/rpl/r/rpl_temp_table_mix_row.result | 4 +- mysql-test/suite/rpl/r/rpl_temporary.result | 4 +- mysql-test/suite/rpl/r/rpl_timezone.result | 3 +- mysql-test/suite/rpl/r/rpl_trigger.result | 16 +- .../suite/rpl/t/rpl_concurrency_error.test | 4 +- mysql-test/suite/rpl/t/rpl_rewrt_db.test | 4 +- .../suite/rpl/t/rpl_row_create_select.test | 2 + mysql-test/suite/rpl/t/rpl_sp_effects.test | 1 + mysql-test/suite/rpl/t/rpl_stm_000001.test | 2 +- .../suite/rpl/t/rpl_stm_user_variables.test | 11 +- .../suite/rpl/t/rpl_temp_table_mix_row.test | 2 +- mysql-test/suite/rpl/t/rpl_temporary.test | 4 +- mysql-test/suite/rpl/t/rpl_timezone.test | 3 +- .../suite/sys_vars/r/sql_mode_basic.result | 12 +- .../suite/sys_vars/r/sql_warnings_func.result | 6 +- .../suite/sys_vars/r/sync_binlog_basic.result | 8 +- .../sys_vars/r/sysvars_server_embedded.result | 8 +- .../r/sysvars_server_notembedded.result | 8 +- .../suite/sys_vars/t/sql_warnings_func.test | 6 +- mysql-test/suite/vcol/inc/vcol_ins_upd.inc | 12 +- .../vcol/inc/vcol_supported_sql_funcs.inc | 2 +- mysql-test/suite/vcol/inc/vcol_trigger_sp.inc | 7 +- .../suite/vcol/r/alter_inplace-9045.result | 1 + mysql-test/suite/vcol/r/load_data.result | 2 +- mysql-test/suite/vcol/r/update.result | 1 + .../suite/vcol/r/vcol_ins_upd_innodb.result | 12 +- .../suite/vcol/r/vcol_ins_upd_myisam.result | 12 +- .../suite/vcol/r/vcol_keys_myisam.result | 2 + mysql-test/suite/vcol/r/vcol_misc.result | 8 +- .../suite/vcol/r/vcol_select_myisam.result | 2 +- .../vcol/r/vcol_supported_sql_funcs.result | 166 +- .../vcol/r/vcol_trigger_sp_innodb.result | 4 + .../vcol/r/vcol_trigger_sp_myisam.result | 4 + .../suite/vcol/t/alter_inplace-9045.test | 1 + mysql-test/suite/vcol/t/load_data.test | 2 +- mysql-test/suite/vcol/t/update.test | 1 + mysql-test/suite/vcol/t/vcol_keys_myisam.test | 2 + mysql-test/suite/vcol/t/vcol_misc.test | 8 +- .../suite/vcol/t/vcol_select_myisam.test | 2 +- mysql-test/t/adddate_454.test | 2 +- mysql-test/t/alter_table.test | 4 +- mysql-test/t/auto_increment_ranges.inc | 12 +- mysql-test/t/bigint.test | 4 +- mysql-test/t/cast.test | 3 + mysql-test/t/comment_column.test | 1 + mysql-test/t/comment_index.test | 2 + mysql-test/t/create.test | 5 + mysql-test/t/ctype_big5.test | 2 +- mysql-test/t/ctype_cp932_binlog_stm.test | 4 +- mysql-test/t/ctype_eucjpms.test | 12 +- mysql-test/t/ctype_euckr.test | 16 +- mysql-test/t/ctype_gb2312.test | 2 +- mysql-test/t/ctype_gbk.test | 18 +- mysql-test/t/ctype_latin1.test | 2 +- mysql-test/t/ctype_ldml.test | 2 +- mysql-test/t/ctype_many.test | 3 +- mysql-test/t/ctype_mb.test | 2 +- mysql-test/t/ctype_recoding.test | 2 +- mysql-test/t/ctype_sjis.test | 4 +- mysql-test/t/ctype_ucs.test | 5 +- mysql-test/t/ctype_ujis.test | 12 +- mysql-test/t/ctype_ujis_ucs2.test | 4 +- mysql-test/t/ctype_utf16.test | 8 +- mysql-test/t/ctype_utf16le.test | 10 +- mysql-test/t/ctype_utf32.test | 23 +- mysql-test/t/ctype_utf8.test | 39 +- mysql-test/t/ctype_utf8mb4.test | 55 +- mysql-test/t/default.test | 22 +- mysql-test/t/failed_auth_3909.test | 2 +- mysql-test/t/fulltext.test | 1 + mysql-test/t/func_gconcat.test | 4 +- mysql-test/t/func_in.test | 6 +- mysql-test/t/func_like.test | 2 +- mysql-test/t/func_math.test | 2 +- mysql-test/t/func_regexp_pcre.test | 2 + mysql-test/t/func_set.test | 2 +- mysql-test/t/func_str.test | 4 +- mysql-test/t/func_time.test | 3 +- mysql-test/t/gis-rtree.test | 4 +- mysql-test/t/having.test | 2 +- mysql-test/t/help.test | 16 +- mysql-test/t/insert.test | 20 +- mysql-test/t/insert_select.test | 4 +- mysql-test/t/join_outer_innodb.test | 2 +- mysql-test/t/key.test | 8 +- mysql-test/t/limit_rows_examined.test | 2 +- mysql-test/t/loaddata.test | 12 +- mysql-test/t/mdev-504.test | 2 +- mysql-test/t/multi_update.test | 4 +- mysql-test/t/myisam-blob.test | 3 +- mysql-test/t/myisam.test | 7 +- mysql-test/t/mysqldump.test | 2 +- mysql-test/t/mysqlslap.opt | 1 + mysql-test/t/null.test | 21 +- mysql-test/t/null_key.test | 2 +- mysql-test/t/old-mode.test | 8 +- mysql-test/t/order_by.test | 1 + mysql-test/t/partition_datatype.test | 42 +- mysql-test/t/partition_error.test | 5 +- mysql-test/t/plugin_auth.test | 2 +- mysql-test/t/ps.test | 4 +- mysql-test/t/round.test | 32 +- mysql-test/t/select.test | 8 +- mysql-test/t/signal.test | 12 +- mysql-test/t/sp-dynamic.test | 2 + mysql-test/t/sp-error.test | 22 +- mysql-test/t/sp_notembedded.test | 4 +- mysql-test/t/strict.test | 1 + mysql-test/t/subselect.test | 6 +- mysql-test/t/subselect2.test | 2 +- mysql-test/t/subselect_sj_mat.test | 2 +- mysql-test/t/system_mysql_db_refs.test | 12 +- mysql-test/t/trigger.test | 4 +- mysql-test/t/type_binary.test | 4 +- mysql-test/t/type_bit.test | 6 +- mysql-test/t/type_bit_innodb.test | 4 +- mysql-test/t/type_blob.test | 3 + mysql-test/t/type_date.test | 6 +- mysql-test/t/type_datetime.test | 8 +- mysql-test/t/type_decimal.test | 50 +- mysql-test/t/type_enum.test | 22 +- mysql-test/t/type_float.test | 30 +- mysql-test/t/type_newdecimal.test | 22 +- mysql-test/t/type_num.test | 22 +- mysql-test/t/type_ranges.test | 10 +- mysql-test/t/type_set.test | 1 + mysql-test/t/type_temporal_innodb.test | 6 +- mysql-test/t/type_time.test | 5 +- mysql-test/t/type_timestamp.test | 2 +- mysql-test/t/type_uint.test | 4 +- mysql-test/t/type_year.test | 14 +- mysql-test/t/view.test | 6 +- mysql-test/t/warnings.test | 33 +- mysql-test/t/xtradb_mrr.test | 2 +- .../connect/mysql-test/connect/r/dir.result | 1 + .../mysql-test/connect/r/mysql_exec.result | 12 +- .../mysql-test/connect/r/mysql_new.result | 2 +- .../mysql-test/connect/r/unsigned.result | 4 +- .../connect/mysql-test/connect/r/upd.result | 2 + storage/connect/mysql-test/connect/t/dir.test | 1 + .../mysql-test/connect/t/mysql_new.test | 2 +- .../mysql-test/connect/t/unsigned.test | 4 +- storage/connect/mysql-test/connect/t/upd.test | 4 + ...table_change_column_rename_multiple.result | 2 +- .../storage/r/column_date_zero_date.result | 2 + ...it_version_56_or_later_out_of_range.result | 6 +- .../r/column_datetime_zero_date.result | 2 + .../r/geometry_bulk_insert_null.result | 2 +- .../storage/r/index_hash_id_primary.result | 8 +- ...ndex_multiple_column_primary_update.result | 2 +- ..._insert_delete_insert_invalid_value.result | 4 +- ...r_table_change_column_rename_multiple.test | 2 +- .../storage/t/column_date_zero_date.test | 2 + ...4bit_version_56_or_later_out_of_range.test | 6 +- .../storage/t/column_datetime_zero_date.test | 2 + .../storage/t/geometry_bulk_insert_null.test | 2 +- .../storage/t/index_hash_id_primary.test | 8 +- .../index_multiple_column_primary_update.test | 2 +- ...me_insert_delete_insert_invalid_value.test | 4 +- .../rpl/r/rpl_extra_col_master_tokudb.result | 8 +- .../rpl/r/rpl_row_basic_3tokudb.result | 30 +- .../rpl/r/rpl_row_rec_comp_tokudb.result | 4 +- .../tokudb/r/ctype_cp1250_ch.result | 4 +- .../tokudb_alter_table/r/mod_enum.result | 1 + .../r/null_bytes_add_key.result | 1 + .../r/null_bytes_col_rename.result | 1 + .../r/null_bytes_drop_default.result | 1 + .../r/null_bytes_drop_key.result | 1 + .../tokudb_alter_table/t/mod_enum.test | 1 + .../t/null_bytes_add_key.test | 1 + .../t/null_bytes_col_rename.test | 1 + .../t/null_bytes_drop_default.test | 1 + .../t/null_bytes_drop_key.test | 1 + .../r/alter_table_copy_table.result | 1 + .../tokudb_bugs/r/db397_delete_trigger.result | 2 + .../mysql-test/tokudb_bugs/r/db945.result | 2 +- .../tokudb_bugs/t/alter_table_copy_table.test | 1 + .../tokudb_bugs/t/db397_delete_trigger.test | 2 + .../mysql-test/tokudb_bugs/t/db945.test | 2 +- 600 files changed, 7101 insertions(+), 6154 deletions(-) create mode 100644 mysql-test/t/mysqlslap.opt diff --git a/mysql-test/extra/binlog_tests/binlog.test b/mysql-test/extra/binlog_tests/binlog.test index 831c6c886d5..810a402580c 100644 --- a/mysql-test/extra/binlog_tests/binlog.test +++ b/mysql-test/extra/binlog_tests/binlog.test @@ -272,7 +272,7 @@ create table if not exists t3 like tt1; --disable_warnings USE mysql; -INSERT INTO user SET host='localhost', user='@#@', password=password('Just a test'); +INSERT IGNORE INTO user SET host='localhost', user='@#@', password=password('Just a test'); UPDATE user SET password=password('Another password') WHERE host='localhost' AND user='@#@'; DELETE FROM user WHERE host='localhost' AND user='@#@'; --enable_warnings diff --git a/mysql-test/extra/binlog_tests/ctype_cp932.test b/mysql-test/extra/binlog_tests/ctype_cp932.test index 33247550d62..f42bffd30df 100644 --- a/mysql-test/extra/binlog_tests/ctype_cp932.test +++ b/mysql-test/extra/binlog_tests/ctype_cp932.test @@ -436,9 +436,9 @@ drop table t2; # create table t1 (col1 varchar(1)) character set cp932; insert into t1 values ('a'); -insert into t1 values ('ab'); +insert ignore into t1 values ('ab'); select * from t1; -insert into t1 values ('abc'); +insert ignore into t1 values ('abc'); select * from t1; drop table t1; diff --git a/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc b/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc index c595d70daa1..29731e823ce 100644 --- a/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc +++ b/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc @@ -192,6 +192,11 @@ RESET MASTER; ### is written to the current binary log. SET GLOBAL debug_dbug="+d,error_unique_log_filename"; + +# Disable logging Annotate_rows events to preserve events count. +let $binlog_annotate_row_events_saved= `SELECT @@binlog_annotate_row_events`; +SET @@binlog_annotate_row_events= 0; + SELECT count(*) FROM t4; -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR -- error ER_NO_UNIQUE_LOGFILE @@ -210,6 +215,11 @@ if (!$binlog_limit) # clean up and move to next test DELETE FROM t4; + +--disable_query_log +eval SET @@binlog_annotate_row_events= $binlog_annotate_row_events_saved; +--enable_query_log + RESET MASTER; -- echo ###################### TEST #8 diff --git a/mysql-test/extra/rpl_tests/rpl_checksum_cache.inc b/mysql-test/extra/rpl_tests/rpl_checksum_cache.inc index a10c9721f70..e04f618b81e 100644 --- a/mysql-test/extra/rpl_tests/rpl_checksum_cache.inc +++ b/mysql-test/extra/rpl_tests/rpl_checksum_cache.inc @@ -8,8 +8,8 @@ -- source include/master-slave.inc --disable_warnings -call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave. Statement: insert into t2 set data=repeat.*'a', @act_size.*"); -call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave. Statement: insert into t1 values.* NAME_CONST.*'n',.*, @data .*"); +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. .*Statement: insert into t2 set data=repeat.*'a', @act_size.*"); +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. .*Statement: insert into t1 values.* NAME_CONST.*'n',.*, @data .*"); --enable_warnings connection master; diff --git a/mysql-test/extra/rpl_tests/rpl_extra_col_master.test b/mysql-test/extra/rpl_tests/rpl_extra_col_master.test index 0559e93676b..02645a577f5 100644 --- a/mysql-test/extra/rpl_tests/rpl_extra_col_master.test +++ b/mysql-test/extra/rpl_tests/rpl_extra_col_master.test @@ -253,9 +253,9 @@ some var char'; INSERT into t4 set f1=1, f2=1, f3=1, f4='first', f7='f7: medium size blob', f10='f10: binary data'; INSERT into t31 set f1=1, f2=1, f3=1, f4='first'; - INSERT into t31 set f1=1, f2=1, f3=2, f4='second', + insert ignore into t31 set f1=1, f2=1, f3=2, f4='second', f9=2.2, f10='seven samurai', f28=222.222, f35='222'; - INSERT into t31 values (1, 1, 3, 'third', + insert ignore into t31 values (1, 1, 3, 'third', /* f5 BIGINT, */ 333333333333333333333333, /* f6 BLOB, */ '3333333333333333333333', /* f7 DATE, */ '2007-07-18', @@ -289,7 +289,7 @@ binary data'; /*f35 VARCHAR(257),*/ 'three times three' ); - INSERT into t31 values (1, 1, 4, 'fourth', + insert ignore into t31 values (1, 1, 4, 'fourth', /* f5 BIGINT, */ 333333333333333333333333, /* f6 BLOB, */ '3333333333333333333333', /* f7 DATE, */ '2007-07-18', @@ -408,7 +408,7 @@ connection master; update t31 set f5=555555555555555 where f3=6; update t31 set f2=2 where f3=2; update t31 set f1=NULL where f3=1; - update t31 set f3=NULL, f27=NULL, f35='f35 new value' where f3=3; + update ignore t31 set f3=NULL, f27=NULL, f35='f35 new value' where f3=3; --echo --echo ** Delete from Master ** diff --git a/mysql-test/extra/rpl_tests/rpl_gtid_basic.inc b/mysql-test/extra/rpl_tests/rpl_gtid_basic.inc index ab7d23f70ac..68a5d05ffe9 100644 --- a/mysql-test/extra/rpl_tests/rpl_gtid_basic.inc +++ b/mysql-test/extra/rpl_tests/rpl_gtid_basic.inc @@ -455,9 +455,13 @@ SELECT IF(LOCATE("2-1-1022", @@GLOBAL.gtid_slave_pos)>0, "Ok", CONCAT("ERROR! ex --connection server_1 SET gtid_domain_id=2; SET gtid_seq_no=1030; +# Disable logging Annotate_rows events to preserve events count. +let $binlog_annotate_row_events_saved= `SELECT @@binlog_annotate_row_events`; +SET @@binlog_annotate_row_events= 0; INSERT INTO t1 VALUES (17); INSERT INTO t1 VALUES (18); INSERT INTO t1 VALUES (19); +eval SET @@binlog_annotate_row_events= $binlog_annotate_row_events_saved; --save_master_pos --connection server_2 diff --git a/mysql-test/extra/rpl_tests/rpl_record_compare.test b/mysql-test/extra/rpl_tests/rpl_record_compare.test index b674b76dfdf..2bc088d17b4 100644 --- a/mysql-test/extra/rpl_tests/rpl_record_compare.test +++ b/mysql-test/extra/rpl_tests/rpl_record_compare.test @@ -12,7 +12,7 @@ INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 ); INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 ); -- disable_warnings -UPDATE t1 SET c5 = 'a'; +UPDATE IGNORE t1 SET c5 = 'a'; -- enable_warnings -- sync_slave_with_master @@ -33,7 +33,7 @@ DROP TABLE t1; INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 ); INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 ); -- disable_warnings -UPDATE t1 SET c5 = 'a'; +UPDATE IGNORE t1 SET c5 = 'a'; -- enable_warnings -- 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 2e1007b1c04..33d5dd328f3 100644 --- a/mysql-test/extra/rpl_tests/rpl_row_basic.test +++ b/mysql-test/extra/rpl_tests/rpl_row_basic.test @@ -623,33 +623,33 @@ eval CREATE TABLE t1 (a bit) ENGINE=$type; INSERT IGNORE INTO t1 VALUES (NULL); INSERT INTO t1 ( a ) VALUES ( 0 ); UPDATE t1 SET a = 0 WHERE a = 1 LIMIT 3; -INSERT INTO t1 ( a ) VALUES ( 5 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); DELETE FROM t1 WHERE a < 2 LIMIT 4; DELETE FROM t1 WHERE a < 9 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 9 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 9 ); UPDATE t1 SET a = 8 WHERE a = 0 LIMIT 6; -INSERT INTO t1 ( a ) VALUES ( 8 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 8 ); UPDATE t1 SET a = 0 WHERE a < 6 LIMIT 0; -INSERT INTO t1 ( a ) VALUES ( 4 ); -INSERT INTO t1 ( a ) VALUES ( 3 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 4 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 3 ); UPDATE t1 SET a = 0 WHERE a = 7 LIMIT 6; DELETE FROM t1 WHERE a = 4 LIMIT 7; -UPDATE t1 SET a = 9 WHERE a < 2 LIMIT 9; +UPDATE IGNORE t1 SET a = 9 WHERE a < 2 LIMIT 9; UPDATE t1 SET a = 0 WHERE a < 9 LIMIT 2; DELETE FROM t1 WHERE a < 0 LIMIT 5; -INSERT INTO t1 ( a ) VALUES ( 5 ); -UPDATE t1 SET a = 4 WHERE a < 6 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 5 ); -UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 8; +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); +UPDATE IGNORE t1 SET a = 4 WHERE a < 6 LIMIT 4; +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); +UPDATE IGNORE t1 SET a = 9 WHERE a < 5 LIMIT 8; DELETE FROM t1 WHERE a < 8 LIMIT 8; -INSERT INTO t1 ( a ) VALUES ( 6 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 6 ); DELETE FROM t1 WHERE a < 6 LIMIT 7; UPDATE t1 SET a = 7 WHERE a = 3 LIMIT 7; UPDATE t1 SET a = 8 WHERE a = 0 LIMIT 6; -INSERT INTO t1 ( a ) VALUES ( 7 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 7 ); DELETE FROM t1 WHERE a < 9 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 7 ); -INSERT INTO t1 ( a ) VALUES ( 6 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 7 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 6 ); UPDATE t1 SET a = 8 WHERE a = 3 LIMIT 4; DELETE FROM t1 WHERE a = 2 LIMIT 9; DELETE FROM t1 WHERE a = 1 LIMIT 4; @@ -658,7 +658,7 @@ INSERT INTO t1 ( a ) VALUES ( 0 ); DELETE FROM t1 WHERE a < 3 LIMIT 0; UPDATE t1 SET a = 8 WHERE a = 5 LIMIT 2; INSERT INTO t1 ( a ) VALUES ( 1 ); -UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 3; +UPDATE IGNORE t1 SET a = 9 WHERE a < 5 LIMIT 3; --enable_warnings sync_slave_with_master; diff --git a/mysql-test/extra/rpl_tests/rpl_switch_stm_row_mixed.inc b/mysql-test/extra/rpl_tests/rpl_switch_stm_row_mixed.inc index e74fd6828c6..31b80732c60 100644 --- a/mysql-test/extra/rpl_tests/rpl_switch_stm_row_mixed.inc +++ b/mysql-test/extra/rpl_tests/rpl_switch_stm_row_mixed.inc @@ -156,12 +156,14 @@ insert into t1 select "yesterday_24_"; create table t2 ENGINE=MyISAM select rpad(UUID(),100,' '); create table t3 select 1 union select UUID(); --disable_warnings +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t4 select * from t1 where 3 in (select 1 union select 2 union select UUID() union select 3); --enable_warnings +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t5 select * from t1 where 3 in (select 1 union select 2 union select curdate() union select 3); # what if UUID() is first: --disable_warnings -insert into t5 select UUID() from t1 where 3 in (select 1 union select 2 union select 3 union select * from t4); +insert ignore into t5 select UUID() from t1 where 3 in (select 1 union select 2 union select 3 union select * from t4); --enable_warnings # inside a stored procedure diff --git a/mysql-test/include/add_anonymous_users.inc b/mysql-test/include/add_anonymous_users.inc index a59aa971d59..635a80e3dee 100644 --- a/mysql-test/include/add_anonymous_users.inc +++ b/mysql-test/include/add_anonymous_users.inc @@ -1,7 +1,7 @@ # Allow anonymous users to connect disable_warnings; disable_query_log; -INSERT INTO mysql.user (host, user) VALUES ('localhost',''); +INSERT IGNORE INTO mysql.user (host, user) VALUES ('localhost',''); FLUSH PRIVILEGES; enable_query_log; enable_warnings; diff --git a/mysql-test/include/commit.inc b/mysql-test/include/commit.inc index 830ffb52c02..a28d3e5f3d1 100644 --- a/mysql-test/include/commit.inc +++ b/mysql-test/include/commit.inc @@ -267,7 +267,7 @@ select * from t2; insert into t2 (a) values (1026); --replace_result $MYSQLTEST_VARDIR .. --error ER_DUP_ENTRY -eval load data infile "../../std_data/words.dat" into table t1 (a) set a:=f2(26); +eval load data infile "../../std_data/words.dat" ignore into table t1 (a) set a:=f2(26); select * from t2; rollback; diff --git a/mysql-test/include/ctype_common.inc b/mysql-test/include/ctype_common.inc index 4cb04599679..a39c25f2cc8 100644 --- a/mysql-test/include/ctype_common.inc +++ b/mysql-test/include/ctype_common.inc @@ -58,7 +58,7 @@ DROP TABLE t1; # Bug #32726: crash with cast in order by clause and cp932 charset # create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); select cast(a as char(1)) from t1; select a sounds like a from t1; select 1 from t1 order by cast(a as char(1)); diff --git a/mysql-test/include/ctype_numconv.inc b/mysql-test/include/ctype_numconv.inc index 6bda2205c0e..07298b1d47b 100644 --- a/mysql-test/include/ctype_numconv.inc +++ b/mysql-test/include/ctype_numconv.inc @@ -739,6 +739,7 @@ show create table t1; drop table t1; select hex(concat(period_diff(200902, 200802))); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 as select concat(period_add(200902, 200802)) as c1; show create table t1; drop table t1; diff --git a/mysql-test/include/ctype_unescape.inc b/mysql-test/include/ctype_unescape.inc index 5d67bf8d189..171843ff66a 100644 --- a/mysql-test/include/ctype_unescape.inc +++ b/mysql-test/include/ctype_unescape.inc @@ -1,5 +1,7 @@ --echo # Start of ctype_unescape.inc +SET sql_mode = ''; + # # Testing how string literals with backslash and quote-quote are unescaped. # The tests assume that single quote (') is used as a delimiter. @@ -323,5 +325,6 @@ DROP FUNCTION wellformedness; DROP FUNCTION mysql_real_escape_string_generated; DROP FUNCTION iswellformed; DROP TABLE allbytes; +SET sql_mode = DEFAULT; --echo # End of ctype_backslash.inc diff --git a/mysql-test/include/ctype_utf8mb4.inc b/mysql-test/include/ctype_utf8mb4.inc index 71993a946b3..2d48f9373f6 100644 --- a/mysql-test/include/ctype_utf8mb4.inc +++ b/mysql-test/include/ctype_utf8mb4.inc @@ -124,7 +124,7 @@ set LC_TIME_NAMES='en_US'; # set names koi8r; eval create table t1 (s1 char(1) character set utf8mb4) engine $engine; -insert into t1 values (_koi8r'ÁÂ'); +insert ignore into t1 values (_koi8r'ÁÂ'); select s1,hex(s1),char_length(s1),octet_length(s1) from t1; drop table t1; @@ -136,11 +136,11 @@ if ($is_heap) { eval create table t1 (s1 varchar(255) character set utf8mb4) engine $engine; } -insert into t1 select repeat('a',300); -insert into t1 select repeat('Ñ',300); -insert into t1 select repeat('aÑ',300); -insert into t1 select repeat('Ña',300); -insert into t1 select repeat('ÑÑ',300); +insert ignore into t1 select repeat('a',300); +insert ignore into t1 select repeat('Ñ',300); +insert ignore into t1 select repeat('aÑ',300); +insert ignore into t1 select repeat('Ña',300); +insert ignore into t1 select repeat('ÑÑ',300); --sorted_result select hex(s1) from t1; --sorted_result @@ -155,11 +155,11 @@ if ($is_heap) { eval create table t1 (s1 varchar(255) character set utf8mb4) engine $engine; } -insert into t1 select repeat('a',66000); -insert into t1 select repeat('Ñ',66000); -insert into t1 select repeat('aÑ',66000); -insert into t1 select repeat('Ña',66000); -insert into t1 select repeat('ÑÑ',66000); +insert ignore into t1 select repeat('a',66000); +insert ignore into t1 select repeat('Ñ',66000); +insert ignore into t1 select repeat('aÑ',66000); +insert ignore into t1 select repeat('Ña',66000); +insert ignore into t1 select repeat('ÑÑ',66000); --sorted_result select length(s1),char_length(s1) from t1; drop table t1; @@ -168,19 +168,19 @@ drop table t1; # Bug #2368 Multibyte charsets do not check that incoming data is well-formed # eval create table t1 (s1 char(10) character set utf8mb4) engine $engine; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); select hex(s1) from t1; drop table t1; eval create table t1 (s1 varchar(10) character set utf8mb4) engine $engine; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); select hex(s1) from t1; drop table t1; if (!$is_heap) { eval create table t1 (s1 text character set utf8mb4) engine $engine; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); select hex(s1) from t1; drop table t1; } @@ -895,6 +895,7 @@ DROP TABLE t1,t2; # eval create table t1 (a char(20) character set utf8mb4) engine $engine; insert into t1 values ('123456'),('андрей'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify a char(2) character set utf8mb4; select char_length(a), length(a), a from t1 order by a; drop table t1; @@ -1282,15 +1283,19 @@ eval create table t1 ( insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); select * from t1; # varchar to varchar +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(20) character set utf8mb4 not null; select * from t1; # varchar to char +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(15) character set utf8mb4 not null; select * from t1; # char to char +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(10) character set utf8mb4 not null; select * from t1; # char to varchar +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(5) character set utf8mb4 not null; select * from t1; drop table t1; @@ -1302,6 +1307,7 @@ eval create table t1 ( a varchar(4000) not null ) default character set utf8mb4 engine $engine; insert into t1 values (repeat('a',4000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(3000) character set utf8mb4 not null; select length(a) from t1; drop table t1; @@ -1552,7 +1558,7 @@ eval create table t1 (utf8mb4 char(1) character set utf8mb4) engine $engine; --echo Testing [F0][90..BF][80..BF][80..BF] insert into t1 values (0xF0908080); insert into t1 values (0xF0BFBFBF); -insert into t1 values (0xF08F8080); +insert ignore into t1 values (0xF08F8080); --sorted_result select hex(utf8mb4) from t1; delete from t1; @@ -1567,7 +1573,7 @@ delete from t1; --echo Testing [F4][80..8F][80..BF][80..BF] insert into t1 values (0xF4808080); insert into t1 values (0xF48F8080); -insert into t1 values (0xF4908080); +insert ignore into t1 values (0xF4908080); --sorted_result select hex(utf8mb4) from t1; drop table t1; @@ -1648,13 +1654,13 @@ INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859 # Mix of 3-byte and 4-byte chars INSERT INTO t1 VALUES (65131, x'efb9abf09d849ef09d859ef09d859ef09d8480f09d859fefb9abefb9abf09d85a0efb9ab'); # All from musical chars, but 11 instead of 10 chars. truncated -INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); +INSERT IGNORE INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); --sorted_result SELECT u_decimal, hex(utf8mb4_encoding) FROM t1 ORDER BY utf8mb4_encoding COLLATE utf8mb4_general_ci, BINARY utf8mb4_encoding; # First invalid 4 byte value -INSERT INTO t1 VALUES (1114111, x'f5808080'); +INSERT IGNORE INTO t1 VALUES (1114111, x'f5808080'); --sorted_result SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE @@ -1672,14 +1678,14 @@ INSERT INTO t2 VALUES (42856, x'ea9da8'); # SMALL COMMERCIAL AT INSERT INTO t2 VALUES (65131, x'efb9ab'); # (last 4 byte character) -INSERT INTO t2 VALUES (1114111, x'f48fbfbf'); +INSERT IGNORE INTO t2 VALUES (1114111, x'f48fbfbf'); --sorted_result SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE table_name= 't2' AND column_name= 'utf8mb3_encoding'; # Update a 3-byte char col with a 4-byte char, error -UPDATE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; +UPDATE IGNORE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; # Update to a 3-byte char casted to 4-byte, error? UPDATE t2 SET utf8mb3_encoding= _utf8mb4 x'ea9da8' where u_decimal= 42856; @@ -1700,6 +1706,7 @@ SELECT count(*) FROM t1, t2 # Alter from 4-byte charset to 3-byte charset, error --disable_warnings +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CONVERT TO CHARACTER SET utf8; --enable_warnings SHOW CREATE TABLE t1; diff --git a/mysql-test/include/func_hybrid_type.inc b/mysql-test/include/func_hybrid_type.inc index 854c7ebd34e..0eed936db38 100644 --- a/mysql-test/include/func_hybrid_type.inc +++ b/mysql-test/include/func_hybrid_type.inc @@ -62,6 +62,7 @@ SELECT FROM t1; SHOW CREATE TABLE t2; DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, diff --git a/mysql-test/include/function_defaults.inc b/mysql-test/include/function_defaults.inc index 7c5d43b6e74..23822aa24dc 100644 --- a/mysql-test/include/function_defaults.inc +++ b/mysql-test/include/function_defaults.inc @@ -835,10 +835,10 @@ SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual; --echo # Mon Aug 1 15:11:19 2011 UTC SET TIMESTAMP = 1312211479.918273; -LOAD DATA INFILE 't3.dat' INTO TABLE t1; +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1; --query_vertical SELECT * FROM t1 -LOAD DATA INFILE 't4.dat' INTO TABLE t2; +LOAD DATA INFILE 't4.dat' IGNORE INTO TABLE t2; SELECT a FROM t2; SELECT b FROM t2; SELECT c FROM t2; @@ -866,7 +866,7 @@ DELETE FROM t2; --echo # (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command --echo # above. The code in this path is copy-pasted code from the path taken --echo # under the syntax used in the previous LOAD command. -LOAD DATA INFILE 't3.dat' INTO TABLE t1 +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY ''; SELECT b FROM t1; @@ -954,7 +954,7 @@ CREATE TABLE t1 ( --echo # There is no promotion SHOW CREATE TABLE t1; -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; --echo # It is strange that "like_b" gets NULL when "b" gets 0. But --echo # this is consistent with how "a" gets NULL when "b" gets 0, @@ -971,7 +971,7 @@ modify f TIMESTAMP NULL default CURRENT_TIMESTAMP; --echo # There is no promotion SHOW CREATE TABLE t1; -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; --query_vertical SELECT * FROM t1 delete from t1; @@ -1007,7 +1007,7 @@ CREATE TABLE t1 ( --echo # There is no promotion SHOW CREATE TABLE t1; -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; --query_vertical SELECT * FROM t1 delete from t1; @@ -1018,7 +1018,7 @@ modify f TIMESTAMP NULL default CURRENT_TIMESTAMP; --echo # There is no promotion SHOW CREATE TABLE t1; -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; --query_vertical SELECT * FROM t1 delete from t1; diff --git a/mysql-test/include/icp_tests.inc b/mysql-test/include/icp_tests.inc index 88d6923d8f9..f29088887d0 100644 --- a/mysql-test/include/icp_tests.inc +++ b/mysql-test/include/icp_tests.inc @@ -509,7 +509,7 @@ CREATE TABLE t2 ( ); --disable_warnings -INSERT INTO t2 VALUES (); +INSERT IGNORE INTO t2 VALUES (); INSERT INTO t1 VALUES (); --enable_warnings @@ -610,7 +610,7 @@ CREATE TABLE t1 ( KEY idx4267 (col1000, col1003) ); -INSERT INTO t1 VALUES (),(); +INSERT IGNORE INTO t1 VALUES (),(); SELECT col999 FROM t1 WHERE col1000 = "3" AND col1003 <=> sysdate(); DROP TABLE t1; @@ -888,7 +888,7 @@ DROP TABLE t1; # MDEV-308 lp:1008516 - Failing assertion: templ->mysql_col_len == len # create table t1 (a int,b char(5),primary key (a), key (b(1))); -insert into t1 values ('a','b'); +insert ignore into t1 values ('a','b'); select 1 from t1 where a and b >= 'aa'; drop table t1; diff --git a/mysql-test/include/loaddata_autocom.inc b/mysql-test/include/loaddata_autocom.inc index 3bf88fefa6d..7b0c67d2ca8 100644 --- a/mysql-test/include/loaddata_autocom.inc +++ b/mysql-test/include/loaddata_autocom.inc @@ -11,13 +11,13 @@ let $load_file= $MYSQLTEST_VARDIR/std_data/loaddata2.dat; create table t1 (id int unsigned not null auto_increment primary key, a text, b text); start transaction; --replace_result $load_file LOAD_FILE -eval load data infile '$load_file' into table t1 fields terminated by ',' enclosed by '''' (a, b); +eval load data infile '$load_file' ignore into table t1 fields terminated by ',' enclosed by '''' (a, b); commit; select count(*) from t1; truncate table t1; start transaction; --replace_result $load_file LOAD_FILE -eval load data infile '$load_file' into table t1 fields terminated by ',' enclosed by '''' (a, b); +eval load data infile '$load_file' ignore into table t1 fields terminated by ',' enclosed by '''' (a, b); rollback; select count(*) from t1; diff --git a/mysql-test/include/mix1.inc b/mysql-test/include/mix1.inc index ea7bc3f5327..6a47b39e5bc 100644 --- a/mysql-test/include/mix1.inc +++ b/mysql-test/include/mix1.inc @@ -573,14 +573,14 @@ INSERT INTO t1(stat_id,acct_id) VALUES INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; UPDATE t1 SET acct_id=785 WHERE MOD(stat_id,2)=0 AND MOD(id,stat_id)=MOD(acct_id,stat_id); OPTIMIZE TABLE t1; @@ -987,6 +987,7 @@ DROP TABLE t1; # create table t1(a text) engine=innodb default charset=utf8; insert into t1 values('aaa'); +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for alter table t1 add index(a(1024)); show create table t1; drop table t1; @@ -1558,6 +1559,7 @@ if ($test_foreign_keys) # auto_increment keys # create table t1 (a int auto_increment primary key) engine=innodb; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for alter table t1 order by a; drop table t1; diff --git a/mysql-test/include/mix2.inc b/mysql-test/include/mix2.inc index 24097514c21..53c1ffd36a3 100644 --- a/mysql-test/include/mix2.inc +++ b/mysql-test/include/mix2.inc @@ -1470,9 +1470,11 @@ source include/varchar.inc; --replace_result \\ / $MYSQL_TEST_DIR . /var/mysqld.1/data/ / t1.frm t1 create table t1 (v varchar(65530), key(v)); drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (v varchar(65536)); show create table t1; drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (v varchar(65530) character set utf8); show create table t1; drop table t1; diff --git a/mysql-test/include/ps_conv.inc b/mysql-test/include/ps_conv.inc index 2e42542d19a..d31f41ef39d 100644 --- a/mysql-test/include/ps_conv.inc +++ b/mysql-test/include/ps_conv.inc @@ -576,6 +576,7 @@ prepare my_delete from "delete from t9 where c21 = 'O' "; # # Use the maximum BIGINT from the manual set @arg00= 9223372036854775807 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; --vertical_results @@ -585,6 +586,7 @@ execute my_select ; --replace_result e+0 e+ execute my_delete ; set @arg00= '9223372036854775807' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; --vertical_results @@ -596,6 +598,7 @@ execute my_delete ; # Use the minimum BIGINT from the manual # set @arg00= -9223372036854775808 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; --vertical_results @@ -605,6 +608,7 @@ execute my_select ; --replace_result e+0 e+ execute my_delete ; set @arg00= '-9223372036854775808' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; --vertical_results @@ -618,6 +622,7 @@ execute my_delete ; # (FLOAT,REAL,DOUBLE) during insert # set @arg00= 1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; --vertical_results @@ -630,6 +635,7 @@ execute my_delete ; # because the string is treated as written integer and # '.11111111111111111111e+50' is cut away. set @arg00= '1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; --vertical_results @@ -639,6 +645,7 @@ execute my_select ; --replace_result e+0 e+ execute my_delete ; set @arg00= -1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; --vertical_results @@ -651,6 +658,7 @@ execute my_delete ; # because the string is treated as written integer and # '.11111111111111111111e+50' is cut away. set @arg00= '-1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; --vertical_results @@ -672,6 +680,7 @@ select '-- insert into string columns --' as test_sequence ; --enable_query_log ######## INSERT into .. string columns values(CHAR(n),LONGTEXT) ######## +set sql_mode = ''; insert into t9 ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) values @@ -803,6 +812,7 @@ values ( 57, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; +set sql_mode = default; ######## INSERT into .. string columns values(LONGBLOB,NULL) ######## @@ -984,6 +994,7 @@ delete from t9 ; select '-- insert into date/time columns --' as test_sequence ; --enable_query_log ######## INSERT into .. date/time columns values(VARCHAR(19),LONGTEXT) ######## +set sql_mode = ''; set @arg00= '1991-01-01 01:01:01' ; insert into t9 ( c1, c13, c14, c15, c16, c17 ) @@ -1079,6 +1090,7 @@ prepare stmt2 from "insert into t9 values ( 53, ?, ?, ?, ?, ? )" ; execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ; +set sql_mode = default; ######## INSERT into .. date/time columns values(LONGBLOB,NULL) ######## diff --git a/mysql-test/include/ps_modify.inc b/mysql-test/include/ps_modify.inc index f66f888261d..d4cd4dbe346 100644 --- a/mysql-test/include/ps_modify.inc +++ b/mysql-test/include/ps_modify.inc @@ -108,7 +108,9 @@ execute stmt1 using @arg00, @arg01; select a,b from t1 where a=@arg00; set @arg00=NULL; set @arg01=2; +set sql_mode = ''; execute stmt1 using @arg00, @arg01; +set sql_mode = default; select a,b from t1 order by a; set @arg00=0; execute stmt1 using @arg01, @arg00; diff --git a/mysql-test/include/type_hrtime.inc b/mysql-test/include/type_hrtime.inc index 071dc7b161d..55fd3d665fe 100644 --- a/mysql-test/include/type_hrtime.inc +++ b/mysql-test/include/type_hrtime.inc @@ -15,7 +15,7 @@ insert t1 values ('2010-12-11 00:20:03.1234'); insert t1 values ('2010-12-11 15:47:11.1234'); insert t1 values (20101211010203.45678); insert t1 values (20101211030405.789e0); -insert t1 values (99991231235959e1); +insert ignore t1 values (99991231235959e1); select * from t1; --replace_regex /121000/121094/ /457000/457031/ /789000/789062/ select truncate(a, 6) from t1; # Field::val_real() @@ -50,7 +50,7 @@ select a, a+interval 9876543 microsecond from t1; update t1 set a=a+interval 9876543 microsecond; select * from t1; select a, a + interval 2 year from t1; -insert t1 select a + interval 2 year from t1; +insert ignore t1 select a + interval 2 year from t1; select * from t1; delete from t1 where a < 20110101; select * from t1; diff --git a/mysql-test/include/world.inc b/mysql-test/include/world.inc index eae6556c422..1e81c5c1aa7 100644 --- a/mysql-test/include/world.inc +++ b/mysql-test/include/world.inc @@ -4,7 +4,7 @@ # Table Country -INSERT INTO Country VALUES +INSERT IGNORE INTO Country VALUES ('AFG','Afghanistan',652090.00,22720000,1), ('NLD','Netherlands',41526.00,15864000,5), ('ANT','Netherlands Antilles',800.00,217000,33), @@ -649,7 +649,7 @@ INSERT INTO City VALUES (398,'Franco da Rocha','BRA',108964), (399,'Teixeira de Freitas','BRA',108441), (400,'Varginha','BRA',108314); -INSERT INTO City VALUES +INSERT IGNORE INTO City VALUES (401,'Ribeirão Pires','BRA',108121), (402,'Sabará','BRA',107781), (403,'Catanduva','BRA',107761), @@ -1855,7 +1855,7 @@ INSERT INTO City VALUES (1598,'Aomori','JPN',295969), (1599,'Hakodate','JPN',294788), (1600,'Akashi','JPN',292253); -INSERT INTO City VALUES +INSERT IGNORE INTO City VALUES (1601,'Yokkaichi','JPN',288173), (1602,'Fukushima','JPN',287525), (1603,'Morioka','JPN',287353), @@ -2056,7 +2056,7 @@ INSERT INTO City VALUES (1798,'Subotica','YUG',100386), (1799,'Prizren','YUG',92303), (1800,'Phnom Penh','KHM',570155); -INSERT INTO City VALUES +INSERT IGNORE INTO City VALUES (1801,'Battambang','KHM',129800), (1802,'Siem Reap','KHM',105100), (1803,'Douala','CMR',1448300), @@ -2659,7 +2659,7 @@ INSERT INTO City VALUES (2398,'Namwon','KOR',103544), (2399,'Tonghae','KOR',95472), (2400,'Mun-gyong','KOR',92239); -INSERT INTO City VALUES +INSERT IGNORE INTO City VALUES (2401,'Athenai','GRC',772072), (2402,'Thessaloniki','GRC',383967), (2403,'Pireus','GRC',182671), @@ -3463,7 +3463,7 @@ INSERT INTO City VALUES (3198,'Dakar','SEN',785071), (3199,'Thiès','SEN',248000), (3200,'Kaolack','SEN',199000); -INSERT INTO City VALUES +INSERT IGNORE INTO City VALUES (3201,'Ziguinchor','SEN',192000), (3202,'Rufisque','SEN',150000), (3203,'Saint-Louis','SEN',132400), @@ -3664,7 +3664,7 @@ INSERT INTO City VALUES (3398,'Çorlu','TUR',123300), (3399,'Isparta','TUR',121911), (3400,'Karabük','TUR',118285); -INSERT INTO City VALUES +INSERT IGNORE INTO City VALUES (3401,'Kilis','TUR',118245), (3402,'Alanya','TUR',117300), (3403,'Kiziltepe','TUR',112000), @@ -3865,7 +3865,7 @@ INSERT INTO City VALUES (3598,'Izevsk','RUS',652800), (3599,'Krasnodar','RUS',639000), (3600,'Jaroslavl','RUS',616700); -INSERT INTO City VALUES +INSERT IGNORE INTO City VALUES (3601,'Habarovsk','RUS',609400), (3602,'Vladivostok','RUS',606200), (3603,'Irkutsk','RUS',593700), @@ -4350,7 +4350,7 @@ INSERT INTO City VALUES # Table CountryLanguage -INSERT INTO CountryLanguage VALUES +INSERT IGNORE INTO CountryLanguage VALUES ('AFG','Pashto',52.4), ('NLD','Dutch',95.6), ('ANT','Papiamento',86.2), @@ -4551,7 +4551,7 @@ INSERT INTO CountryLanguage VALUES ('TJK','Tadzhik',62.2), ('TWN','Min',66.7), ('TZA','Nyamwesi',21.1); -INSERT INTO CountryLanguage VALUES +INSERT IGNORE INTO CountryLanguage VALUES ('DNK','Danish',93.5), ('THA','Thai',52.6), ('TGO','Ewe',23.2), @@ -4752,7 +4752,7 @@ INSERT INTO CountryLanguage VALUES ('WSM','Samoan',47.5), ('STP','French',0.7), ('SEN','Ful',21.7); -INSERT INTO CountryLanguage VALUES +INSERT IGNORE INTO CountryLanguage VALUES ('SYC','English',3.8), ('SLE','Temne',31.8), ('SGP','Malay',14.1), @@ -4953,7 +4953,7 @@ INSERT INTO CountryLanguage VALUES ('AGO','Luimbe-nganguela',5.4), ('ABW','Dutch',5.3), ('AUS','Canton Chinese',1.1); -INSERT INTO CountryLanguage VALUES +INSERT IGNORE INTO CountryLanguage VALUES ('AZE','Armenian',2.0), ('BGD','Garo',0.1), ('BEL','Arabic',1.6), diff --git a/mysql-test/r/adddate_454.result b/mysql-test/r/adddate_454.result index 8b7c17cd47e..851292121f2 100644 --- a/mysql-test/r/adddate_454.result +++ b/mysql-test/r/adddate_454.result @@ -3,7 +3,7 @@ insert into t1 values ('2012-00-00'); select * from t1; d 2012-00-00 -update t1 set d = adddate(d, interval 1 day); +update ignore t1 set d = adddate(d, interval 1 day); Warnings: Warning 1292 Incorrect datetime value: '2012-00-00' select * from t1; diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result index c3049ac4adf..7cdd042e0a6 100644 --- a/mysql-test/r/alter_table.result +++ b/mysql-test/r/alter_table.result @@ -292,7 +292,7 @@ t2 CREATE TABLE `t2` ( ) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`) drop table if exists t1, t2; create table t1 (a int, b int, c int, d int, e int, f int, g int, h int,i int, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM; -insert into t1 (a) values(1); +insert ignore into t1 (a) values(1); Warnings: Warning 1364 Field 'b' doesn't have a default value Warning 1364 Field 'c' doesn't have a default value @@ -311,7 +311,7 @@ Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length I t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL drop table t1; create table t1 (a int not null, b int not null, c int not null, d int not null, e int not null, f int not null, g int not null, h int not null,i int not null, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM; -insert into t1 (a) values(1); +insert ignore into t1 (a) values(1); Warnings: Warning 1364 Field 'b' doesn't have a default value Warning 1364 Field 'c' doesn't have a default value diff --git a/mysql-test/r/auto_increment_ranges_innodb.result b/mysql-test/r/auto_increment_ranges_innodb.result index fb936ddfd2b..1d827a5a166 100644 --- a/mysql-test/r/auto_increment_ranges_innodb.result +++ b/mysql-test/r/auto_increment_ranges_innodb.result @@ -25,7 +25,7 @@ truncate table t1; insert into t1 values(32767-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(32767+1); +insert ignore into t1 values(32767+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -59,7 +59,7 @@ truncate table t1; insert into t1 values(65535-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(65535+1); +insert ignore into t1 values(65535+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -93,7 +93,7 @@ truncate table t1; insert into t1 values(2147483647-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(2147483647+1); +insert ignore into t1 values(2147483647+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -127,7 +127,7 @@ truncate table t1; insert into t1 values(4294967295-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(4294967295+1); +insert ignore into t1 values(4294967295+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -161,7 +161,7 @@ truncate table t1; insert into t1 values(cast(9223372036854775807 as unsigned)-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(cast(9223372036854775807 as unsigned)+1); +insert ignore into t1 values(cast(9223372036854775807 as unsigned)+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -245,7 +245,7 @@ DROP TABLE t1; # CREATE TABLE t1 (a smallint AUTO_INCREMENT, PRIMARY KEY (a)); INSERT INTO t1 VALUES (2); -INSERT INTO t1 VALUES (32768); +INSERT IGNORE INTO t1 VALUES (32768); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (NULL); diff --git a/mysql-test/r/auto_increment_ranges_myisam.result b/mysql-test/r/auto_increment_ranges_myisam.result index 5101321c864..e849e980083 100644 --- a/mysql-test/r/auto_increment_ranges_myisam.result +++ b/mysql-test/r/auto_increment_ranges_myisam.result @@ -26,7 +26,7 @@ truncate table t1; insert into t1 values(32767-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(32767+1); +insert ignore into t1 values(32767+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -61,7 +61,7 @@ truncate table t1; insert into t1 values(65535-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(65535+1); +insert ignore into t1 values(65535+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -96,7 +96,7 @@ truncate table t1; insert into t1 values(2147483647-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(2147483647+1); +insert ignore into t1 values(2147483647+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -131,7 +131,7 @@ truncate table t1; insert into t1 values(4294967295-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(4294967295+1); +insert ignore into t1 values(4294967295+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -166,7 +166,7 @@ truncate table t1; insert into t1 values(cast(9223372036854775807 as unsigned)-1),(NULL),(NULL); ERROR 22003: Out of range value for column 'a' at row 3 truncate table t1; -insert into t1 values(cast(9223372036854775807 as unsigned)+1); +insert ignore into t1 values(cast(9223372036854775807 as unsigned)+1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -251,7 +251,7 @@ DROP TABLE t1; # CREATE TABLE t1 (a smallint AUTO_INCREMENT, PRIMARY KEY (a)); INSERT INTO t1 VALUES (2); -INSERT INTO t1 VALUES (32768); +INSERT IGNORE INTO t1 VALUES (32768); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (NULL); diff --git a/mysql-test/r/bigint.result b/mysql-test/r/bigint.result index e58cce67d6a..8f4b287ab21 100644 --- a/mysql-test/r/bigint.result +++ b/mysql-test/r/bigint.result @@ -60,6 +60,7 @@ min(big) max(big) max(big)-1 select min(big),max(big),max(big)-1 from t1 group by a; min(big) max(big) max(big)-1 -1 9223372036854775807 9223372036854775806 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify big bigint unsigned not null; Warnings: Warning 1264 Out of range value for column 'big' at row 1 @@ -90,6 +91,7 @@ min(big) max(big) max(big)-1 select min(big),max(big),max(big)-1 from t1 group by a; min(big) max(big) max(big)-1 0 18446744073709551615 18446744073709551614 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify big bigint not null; Warnings: Warning 1264 Out of range value for column 'big' at row 5 @@ -208,7 +210,7 @@ a b c d 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615 drop table t1; create table t1 ( quantity decimal(2) unsigned); -insert into t1 values (500), (-500), (~0), (-1); +insert ignore into t1 values (500), (-500), (~0), (-1); Warnings: Warning 1264 Out of range value for column 'quantity' at row 1 Warning 1264 Out of range value for column 'quantity' at row 2 diff --git a/mysql-test/r/case.result b/mysql-test/r/case.result index 5a02ca22392..ab6ae5e6a5a 100644 --- a/mysql-test/r/case.result +++ b/mysql-test/r/case.result @@ -40,15 +40,23 @@ select (CASE "two" when "one" then 1.00 WHEN "two" then 2.00 END) +0.0; select case 1/0 when "a" then "true" else "false" END; case 1/0 when "a" then "true" else "false" END false +Warnings: +Warning 1365 Division by 0 select case 1/0 when "a" then "true" END; case 1/0 when "a" then "true" END NULL +Warnings: +Warning 1365 Division by 0 select (case 1/0 when "a" then "true" END) | 0; (case 1/0 when "a" then "true" END) | 0 NULL +Warnings: +Warning 1365 Division by 0 select (case 1/0 when "a" then "true" END) + 0.0; (case 1/0 when "a" then "true" END) + 0.0 NULL +Warnings: +Warning 1365 Division by 0 select case when 1>0 then "TRUE" else "FALSE" END; case when 1>0 then "TRUE" else "FALSE" END TRUE @@ -99,8 +107,8 @@ CASE WHEN 1 THEN 0.1e1 else '1' END AS c12 SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET latin1 COLLATE latin1_danish_ci NOT NULL, - `c2` varchar(1) CHARACTER SET latin1 COLLATE latin1_danish_ci NOT NULL, + `c1` varchar(1) CHARACTER SET latin1 COLLATE latin1_danish_ci DEFAULT NULL, + `c2` varchar(1) CHARACTER SET latin1 COLLATE latin1_danish_ci DEFAULT NULL, `c3` varchar(1) NOT NULL, `c4` varchar(1) NOT NULL, `c5` varchar(4) NOT NULL, @@ -157,7 +165,7 @@ t1 CREATE TABLE `t1` ( `COALESCE(1,1.0)` decimal(2,1) NOT NULL, `COALESCE(1,'1')` varchar(1) NOT NULL, `COALESCE(1.1,'1')` varchar(4) NOT NULL, - `COALESCE('a' COLLATE latin1_bin,'b')` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL + `COALESCE('a' COLLATE latin1_bin,'b')` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 SELECT IFNULL('a' COLLATE latin1_swedish_ci, 'b' COLLATE latin1_bin); diff --git a/mysql-test/r/cast.result b/mysql-test/r/cast.result index 1e39c03696f..13ce2e53367 100644 --- a/mysql-test/r/cast.result +++ b/mysql-test/r/cast.result @@ -43,6 +43,8 @@ cast(5 as unsigned) -6.0 select cast(NULL as signed), cast(1/0 as signed); cast(NULL as signed) cast(1/0 as signed) NULL NULL +Warnings: +Warning 1365 Division by 0 select cast(1 as double(5,2)); cast(1 as double(5,2)) 1.00 @@ -160,6 +162,8 @@ cast(cast("2011-04-05 8:46:06.123456" AS datetime(6)) as time(6)) select cast(NULL as unsigned), cast(1/0 as unsigned); cast(NULL as unsigned) cast(1/0 as unsigned) NULL NULL +Warnings: +Warning 1365 Division by 0 select cast("A" as binary) = "a", cast(BINARY "a" as CHAR) = "A"; cast("A" as binary) = "a" cast(BINARY "a" as CHAR) = "A" 0 1 @@ -404,7 +408,7 @@ create table t1 select cast(_koi8r' show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `t` varchar(4) CHARACTER SET cp1251 NOT NULL + `t` varchar(4) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select @@ -423,6 +427,7 @@ cast(1000 as CHAR(3)) 100 Warnings: Warning 1292 Truncated incorrect BINARY(3) value: '1000' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 select cast(_latin1'ab' AS char) as c1, cast(_latin1'a ' AS char) as c2, @@ -456,6 +461,7 @@ c1 c2 c3 c4 c5 Warnings: Warning 1292 Truncated incorrect CHAR(2) value: 'фгх' Warning 1292 Truncated incorrect CHAR(2) value: 'Ñ„ ' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 select cast(_koi8r'ÆÇ' AS nchar) as c1, cast(_koi8r'Æ ' AS nchar) as c2, @@ -586,8 +592,8 @@ t1 CREATE TABLE `t1` ( `cast(1 as signed)` int(2) NOT NULL, `cast(1 as double(5,2))` double(5,2) DEFAULT NULL, `cast(1 as decimal(5,3))` decimal(5,3) NOT NULL, - `cast("A" as binary)` varbinary(1) NOT NULL, - `cast("A" as char(100))` varbinary(100) NOT NULL, + `cast("A" as binary)` varbinary(1) DEFAULT NULL, + `cast("A" as char(100))` varbinary(100) DEFAULT NULL, `cast("2001-1-1" as DATE)` date DEFAULT NULL, `cast("2001-1-1" as DATETIME)` datetime DEFAULT NULL, `cast("1:2:3" as TIME)` time DEFAULT NULL @@ -746,6 +752,7 @@ DROP TABLE t1; # LONGTEXT, UNION, USER VARIABLE # Bug#14096619 UNABLE TO RESTORE DATABASE DUMP # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT CONCAT(CAST(REPEAT('9', 1000) AS SIGNED)), CONCAT(CAST(REPEAT('9', 1000) AS UNSIGNED)); Warnings: diff --git a/mysql-test/r/comment_column.result b/mysql-test/r/comment_column.result index 552a83da472..a270b30573f 100644 --- a/mysql-test/r/comment_column.result +++ b/mysql-test/r/comment_column.result @@ -236,6 +236,7 @@ t1 CREATE TABLE `t1` ( `c10` int(11) DEFAULT NULL COMMENT 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd', KEY `i2` (`c2`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD COLUMN c11 INTEGER COMMENT 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; Warnings: Warning 1629 Comment for field 'c11' is too long (max = 1024) diff --git a/mysql-test/r/comment_index.result b/mysql-test/r/comment_index.result index 599bf563ca4..82412871377 100644 --- a/mysql-test/r/comment_index.result +++ b/mysql-test/r/comment_index.result @@ -265,6 +265,7 @@ t1 CREATE TABLE `t1` ( KEY `i10` (`c10`) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd', KEY `i1_3` (`c1`,`c2`,`c3`) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE INDEX i11 ON t1(c11) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; Warnings: Warning 1688 Comment for index 'i11' is too long (max = 1024) @@ -317,6 +318,7 @@ t1 CREATE TABLE `t1` ( KEY `i1_3` (`c1`,`c2`,`c3`) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd', KEY `i11` (`c11`) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX (c13) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; Warnings: Warning 1688 Comment for index 'c13' is too long (max = 1024) diff --git a/mysql-test/r/commit_1innodb.result b/mysql-test/r/commit_1innodb.result index 514f0a67c7f..1adba7b4c4c 100644 --- a/mysql-test/r/commit_1innodb.result +++ b/mysql-test/r/commit_1innodb.result @@ -264,7 +264,7 @@ rollback; select * from t2; a insert into t2 (a) values (1026); -load data infile "../../std_data/words.dat" into table t1 (a) set a:=f2(26); +load data infile "../../std_data/words.dat" ignore into table t1 (a) set a:=f2(26); ERROR 23000: Duplicate entry '26' for key 'a' select * from t2; a diff --git a/mysql-test/r/compound.result b/mysql-test/r/compound.result index 1d412e671a4..49ad567a055 100644 --- a/mysql-test/r/compound.result +++ b/mysql-test/r/compound.result @@ -155,7 +155,7 @@ drop function fn| drop table t1| begin not atomic select @@sql_mode; end| @@sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION create table t1 (a int)| select a from t1 having a > 1| a diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index f9ac0dd4c7f..5dc60742e53 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -70,6 +70,7 @@ insert into t1 values(); select * from t1; a abcde +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 alter column a set default 'abcdef'; ERROR 42000: Invalid default value for 'a' drop table t1; @@ -484,10 +485,10 @@ a int(11) YES NULL b bigint(11) NO NULL c bigint(10) unsigned NO NULL d date YES NULL -e varchar(1) NO NULL +e varchar(1) YES NULL f datetime YES NULL g time YES NULL -h longblob NO NULL +h longblob YES NULL dd time YES NULL select * from t2; a b c d e f g h dd @@ -544,10 +545,12 @@ name varchar(10) YES NULL age smallint(6) YES -1 drop table t1, t2; create table t1(cenum enum('a'), cset set('b')); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t2(cenum enum('a','a'), cset set('b','b')); Warnings: Note 1291 Column 'cenum' has duplicated value 'a' in ENUM Note 1291 Column 'cset' has duplicated value 'b' in SET +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t3(cenum enum('a','A','a','c','c'), cset set('b','B','b','d','d')); Warnings: Note 1291 Column 'cenum' has duplicated value 'a' in ENUM @@ -720,6 +723,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 ( a varchar(12) charset utf8 collate utf8_bin not null, b int not null, primary key (a) @@ -1892,6 +1896,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; set @@session.collation_server=filename; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1(a enum('','')); Warnings: Note 1291 Column 'a' has duplicated value '' in ENUM diff --git a/mysql-test/r/create_drop_function.result b/mysql-test/r/create_drop_function.result index e9db636ab87..8e529a587fa 100644 --- a/mysql-test/r/create_drop_function.result +++ b/mysql-test/r/create_drop_function.result @@ -4,7 +4,7 @@ RETURNS CHAR(100) RETURN CONCAT('Hello, ', str, '!'); SELECT * FROM mysql.proc WHERE name like 'f1'; db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8 -test f1 FUNCTION f1 SQL CONTAINS_SQL NO DEFINER str char(20) char(100) CHARSET latin1 RETURN CONCAT('Hello, ', str, '!') root@localhost 2014-09-30 08:00:00 2014-09-30 08:00:00 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION latin1 latin1_swedish_ci latin1_swedish_ci RETURN CONCAT('Hello, ', str, '!') +test f1 FUNCTION f1 SQL CONTAINS_SQL NO DEFINER str char(20) char(100) CHARSET latin1 RETURN CONCAT('Hello, ', str, '!') root@localhost 2014-09-30 08:00:00 2014-09-30 08:00:00 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION latin1 latin1_swedish_ci latin1_swedish_ci RETURN CONCAT('Hello, ', str, '!') SELECT f1('world'); f1('world') Hello, world! diff --git a/mysql-test/r/ctype_big5.result b/mysql-test/r/ctype_big5.result index 43cac266bf3..3c184c8aec9 100644 --- a/mysql-test/r/ctype_big5.result +++ b/mysql-test/r/ctype_big5.result @@ -55,7 +55,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -224,30 +224,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; drop table if exists t1; create table t1 select repeat('a',10) as c1; @@ -466,30 +454,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SELECT strcmp('a','a '), strcmp('a ','a'); strcmp('a','a ') strcmp('a ','a') @@ -540,7 +516,7 @@ E5ABBA drop table t1; select hex(convert(_big5 0xC84041 using ucs2)); hex(convert(_big5 0xC84041 using ucs2)) -003F0041 +NULL Warnings: Warning 1977 Cannot convert 'big5' character 0xC840 to 'ucs2' End of 4.1 tests @@ -587,7 +563,7 @@ t1 CREATE TABLE `t1` ( SELECT COUNT(*) FROM t1; COUNT(*) 28672 -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; Warnings: Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1 Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2 @@ -820,69 +796,69 @@ A2C1 â…¨ A2C2 â…© Warnings: Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E0 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E1 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E2 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E3 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E4 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E5 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E6 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E7 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E8 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E9 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EA to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EB to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EC to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3ED to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EE to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EF to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F0 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F1 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F2 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F3 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F4 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F5 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F6 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F7 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F8 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F9 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FA to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FB to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FC to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FD to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FE to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xC7FD to 'utf8' SELECT * FROM t1 WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code; @@ -899,69 +875,69 @@ C7DA Ñ C7DB Ñ‚ Warnings: Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C0 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C1 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C2 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C3 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C4 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C5 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C6 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C7 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C8 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3C9 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CA to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CB to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CC to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CD to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CE to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3CF to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D0 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D1 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D2 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D3 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D4 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D5 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D6 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D7 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D8 to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3D9 to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DA to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DB to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DC to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DD to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DE to 'utf8' -Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8' Warning 1977 Cannot convert 'big5' character 0xA3DF to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E0 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E1 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E2 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E3 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E4 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E5 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E6 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E7 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E8 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3E9 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EA to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EB to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EC to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3ED to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EE to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3EF to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F0 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F1 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F2 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F3 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F4 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F5 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F6 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F7 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F8 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3F9 to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FA to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FB to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FC to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FD to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xA3FE to 'utf8' +Warning 1977 Cannot convert 'big5' character 0xC7FD to 'utf8' DROP TABLE t1; # # End of 5.5 tests @@ -1000,7 +976,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET big5 NOT NULL + `a` varchar(5) CHARACTER SET big5 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -1259,7 +1235,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET big5 COLLATE big5_bin NOT NULL + `a` varchar(5) CHARACTER SET big5 COLLATE big5_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -1497,6 +1473,7 @@ A1A1A1A1A1A120202020202020202020202020202020202020 # Start of 10.0 tests # # Start of ctype_unescape.inc +SET sql_mode = ''; SET @query=_binary'SELECT CHARSET(\'test\'),@@character_set_client,@@character_set_connection'; PREPARE stmt FROM @query; EXECUTE stmt; @@ -4559,6 +4536,7 @@ DROP FUNCTION wellformedness; DROP FUNCTION mysql_real_escape_string_generated; DROP FUNCTION iswellformed; DROP TABLE allbytes; +SET sql_mode = DEFAULT; # End of ctype_backslash.inc SET NAMES big5; # Start of ctype_E05C.inc @@ -4602,7 +4580,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ',10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET big5 NOT NULL + `a` varchar(10) CHARACTER SET big5 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\'),('à\t'); INSERT INTO t1 VALUES ('\\à\'),('\\à\t'),('\\à\t\t'); @@ -4641,7 +4619,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET big5 NOT NULL + `a` varchar(10) CHARACTER SET big5 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (BINARY('à\')),(BINARY('à\t')); INSERT INTO t1 VALUES (BINARY('\\à\')),(BINARY('\\à\t')),(BINARY('\\à\t\t')); @@ -4680,7 +4658,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET big5 NOT NULL + `a` varchar(10) CHARACTER SET big5 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_BINARY'à\'),(_BINARY'à\t'); INSERT INTO t1 VALUES (_BINARY'\\à\'),(_BINARY'\\à\t'),(_BINARY'\\à\t\t'); @@ -4726,7 +4704,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET big5 NOT NULL + `a` varchar(10) CHARACTER SET big5 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\['),('\à\['); SELECT HEX(a) FROM t1; @@ -4746,7 +4724,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varbinary(10) NOT NULL + `a` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\['),('\à\['); SELECT HEX(a) FROM t1; diff --git a/mysql-test/r/ctype_binary.result b/mysql-test/r/ctype_binary.result index 90ff932fbc9..976c3df6e0e 100644 --- a/mysql-test/r/ctype_binary.result +++ b/mysql-test/r/ctype_binary.result @@ -13,7 +13,7 @@ create table t1 as select concat(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -26,7 +26,7 @@ create table t1 as select concat(18446744073709551615) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(20) NOT NULL + `c1` varbinary(20) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -39,7 +39,7 @@ create table t1 as select concat(1.1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(4) NOT NULL + `c1` varbinary(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -52,7 +52,7 @@ create table t1 as select concat(1+2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1-2)); @@ -62,7 +62,7 @@ create table t1 as select concat(1-2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1*2)); @@ -72,7 +72,7 @@ create table t1 as select concat(1*2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1/2)); @@ -112,7 +112,7 @@ create table t1 as select concat(-1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-(1+2))); @@ -122,7 +122,7 @@ create table t1 as select concat(-(1+2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(4) NOT NULL + `c1` varbinary(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1|2)); @@ -132,7 +132,7 @@ create table t1 as select concat(1|2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1&2)); @@ -142,7 +142,7 @@ create table t1 as select concat(1&2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_count(12))); @@ -152,7 +152,7 @@ create table t1 as select concat(bit_count(12)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2<<1)); @@ -162,7 +162,7 @@ create table t1 as select concat(2<<1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2>>1)); @@ -172,7 +172,7 @@ create table t1 as select concat(2>>1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(~0)); @@ -182,7 +182,7 @@ create table t1 as select concat(~0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(3^2)); @@ -192,7 +192,7 @@ create table t1 as select concat(3^2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(abs(-2))); @@ -202,7 +202,7 @@ create table t1 as select concat(abs(-2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(concat(exp(2)),1)); @@ -332,7 +332,7 @@ create table t1 as select concat(degrees(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(23) NOT NULL + `c1` varbinary(23) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(radians(0))); @@ -342,7 +342,7 @@ create table t1 as select concat(radians(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(23) NOT NULL + `c1` varbinary(23) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ceiling(0.5))); @@ -352,7 +352,7 @@ create table t1 as select concat(ceiling(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(4) NOT NULL + `c1` varbinary(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(floor(0.5))); @@ -362,7 +362,7 @@ create table t1 as select concat(floor(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(4) NOT NULL + `c1` varbinary(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(round(0.5))); @@ -372,7 +372,7 @@ create table t1 as select concat(round(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sign(0.5))); @@ -382,14 +382,14 @@ create table t1 as select concat(sign(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(rand()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(23) NOT NULL + `c1` varbinary(23) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(length('a'))); @@ -399,7 +399,7 @@ create table t1 as select concat(length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(char_length('a'))); @@ -409,7 +409,7 @@ create table t1 as select concat(char_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_length('a'))); @@ -419,7 +419,7 @@ create table t1 as select concat(bit_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coercibility('a'))); @@ -429,7 +429,7 @@ create table t1 as select concat(coercibility('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(locate('a','a'))); @@ -439,7 +439,7 @@ create table t1 as select concat(locate('a','a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(11) NOT NULL + `c1` varbinary(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(field('c','a','b','c'))); @@ -449,7 +449,7 @@ create table t1 as select concat(field('c','a','b','c')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ascii(61))); @@ -459,7 +459,7 @@ create table t1 as select concat(ascii(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ord(61))); @@ -469,7 +469,7 @@ create table t1 as select concat(ord(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(find_in_set('b','a,b,c,d'))); @@ -479,7 +479,7 @@ create table t1 as select concat(find_in_set('b','a,b,c,d')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select md5('a'), hex(md5('a')); @@ -489,7 +489,7 @@ create table t1 as select md5('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(32) NOT NULL + `c1` varbinary(32) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select old_password('a'), hex(old_password('a')); @@ -499,7 +499,7 @@ create table t1 as select old_password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(16) NOT NULL + `c1` varbinary(16) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select password('a'), hex(password('a')); @@ -509,7 +509,7 @@ create table t1 as select password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(41) NOT NULL + `c1` varbinary(41) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha('a'), hex(sha('a')); @@ -519,7 +519,7 @@ create table t1 as select sha('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(40) NOT NULL + `c1` varbinary(40) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha1('a'), hex(sha1('a')); @@ -529,7 +529,7 @@ create table t1 as select sha1('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(40) NOT NULL + `c1` varbinary(40) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('-1' as signed))); @@ -539,7 +539,7 @@ create table t1 as select concat(cast('-1' as signed)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('1' as unsigned))); @@ -549,7 +549,7 @@ create table t1 as select concat(cast('1' as unsigned)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast(1/2 as decimal(5,5)))); @@ -608,7 +608,7 @@ create table t1 as select concat(least(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(greatest(1,2))); @@ -618,7 +618,7 @@ create table t1 as select concat(greatest(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(case when 11 then 22 else 33 end)); @@ -628,7 +628,7 @@ create table t1 as select concat(case when 11 then 22 else 33 end) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coalesce(1,2))); @@ -638,7 +638,7 @@ create table t1 as select concat(coalesce(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat_ws(1,2,3)); @@ -648,7 +648,7 @@ create table t1 as select concat_ws(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(group_concat(1,2,3)); @@ -676,7 +676,7 @@ create table t1 as select concat(last_insert_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(benchmark(0,0))); @@ -686,7 +686,7 @@ create table t1 as select concat(benchmark(0,0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sleep(0))); @@ -696,7 +696,7 @@ create table t1 as select concat(sleep(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(is_free_lock('xxxx'))); @@ -730,7 +730,7 @@ create table t1 as select concat(crc32('')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(uncompressed_length(''))); @@ -747,7 +747,7 @@ create table t1 as select concat(connection_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(inet_aton('127.1.1.1'))); @@ -783,7 +783,7 @@ create table t1 as select concat(row_count()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(found_rows())); @@ -793,21 +793,21 @@ create table t1 as select concat(found_rows()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid_short()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(21) NOT NULL + `c1` varbinary(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(36) CHARACTER SET utf8 NOT NULL + `c1` varchar(36) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select coercibility(uuid()), coercibility(cast('a' as char character set latin1)); @@ -820,7 +820,7 @@ create table t1 as select concat(uuid(), cast('a' as char character set latin1)) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(37) NOT NULL + `c1` varchar(37) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(master_pos_wait('non-existent',0,2)) as c1; @@ -840,7 +840,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL, + `c1` varbinary(1) DEFAULT NULL, `c2` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -898,7 +898,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(4) NOT NULL, + `c1` varbinary(4) DEFAULT NULL, `c2` decimal(2,1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -937,7 +937,7 @@ create table t1 as select concat('a'='a' IS TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a'='a' IS NOT TRUE)); @@ -947,7 +947,7 @@ create table t1 as select concat('a'='a' IS NOT TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(NOT 'a'='a')); @@ -957,7 +957,7 @@ create table t1 as select concat(NOT 'a'='a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NULL)); @@ -967,7 +967,7 @@ create table t1 as select concat('a' IS NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NOT NULL)); @@ -977,7 +977,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' rlike 'a')); @@ -987,7 +987,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(strcmp('a','b'))); @@ -997,7 +997,7 @@ create table t1 as select concat(strcmp('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' like 'a')); @@ -1007,7 +1007,7 @@ create table t1 as select concat('a' like 'b') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' between 'b' and 'c')); @@ -1017,7 +1017,7 @@ create table t1 as select concat('a' between 'b' and 'c') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' in ('a','b'))); @@ -1027,7 +1027,7 @@ create table t1 as select concat('a' in ('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(interval(23, 1, 15, 17, 30, 44, 200))); @@ -1037,7 +1037,7 @@ create table t1 as select concat(interval(23, 1, 15, 17, 30, 44, 200)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 (a varchar(10), fulltext key(a)); @@ -1069,7 +1069,7 @@ create table t1 as select concat(ifnull(1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ifnull(1.1,1.1))); @@ -1079,7 +1079,7 @@ create table t1 as select concat(ifnull(1.1,1.1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(4) NOT NULL + `c1` varbinary(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(if(1,'b',1)); @@ -1109,7 +1109,7 @@ create table t1 as select concat(if(1,1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(nullif(1,2))); @@ -1274,12 +1274,13 @@ create table t1 as select concat(period_add(200902, 2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(6) NOT NULL + `c1` varbinary(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(period_diff(200902, 200802))); hex(concat(period_diff(200902, 200802))) 3132 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 as select concat(period_add(200902, 200802)) as c1; Warnings: Warning 1265 Data truncated for column 'c1' at row 1 @@ -1483,21 +1484,21 @@ create table t1 as select concat(curdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_date()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(curtime()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat('a',20) as c1 limit 0; @@ -1513,7 +1514,7 @@ create table t1 as select concat(utc_time()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sec_to_time(2378))); @@ -1606,21 +1607,21 @@ create table t1 as select concat(now()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(19) NOT NULL + `c1` varbinary(19) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_timestamp()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(19) NOT NULL + `c1` varbinary(19) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(sysdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(19) NOT NULL + `c1` varbinary(19) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(addtime('00:00:00','11:22:33'))); @@ -1660,7 +1661,7 @@ create table t1 as select export_set(1,2,3,4,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(127) NOT NULL + `c1` varbinary(127) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(insert(1133,3,0,22)); @@ -1670,7 +1671,7 @@ create table t1 as select insert(1133,3,0,22) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(6) NOT NULL + `c1` varbinary(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lcase(123)); @@ -1680,7 +1681,7 @@ create table t1 as select lcase(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(123,1)); @@ -1690,7 +1691,7 @@ create table t1 as select left(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lower(123)); @@ -1700,7 +1701,7 @@ create table t1 as select lower(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(3) NOT NULL + `c1` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lpad(1,2,0)); @@ -1710,7 +1711,7 @@ create table t1 as select lpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ltrim(1)); @@ -1720,7 +1721,7 @@ create table t1 as select ltrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(mid(1,1,1)); @@ -1730,7 +1731,7 @@ create table t1 as select mid(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(repeat(1,2)); @@ -1740,7 +1741,7 @@ create table t1 as select repeat(1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(replace(1,1,2)); @@ -1750,7 +1751,7 @@ create table t1 as select replace(1,1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(reverse(12)); @@ -1760,7 +1761,7 @@ create table t1 as select reverse(12) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(right(123,1)); @@ -1770,7 +1771,7 @@ create table t1 as select right(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rpad(1,2,0)); @@ -1780,7 +1781,7 @@ create table t1 as select rpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(2) NOT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rtrim(1)); @@ -1790,7 +1791,7 @@ create table t1 as select rtrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(soundex(1)); @@ -1800,7 +1801,7 @@ create table t1 as select soundex(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(4) NOT NULL + `c1` varbinary(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(substring(1,1,1)); @@ -1810,7 +1811,7 @@ create table t1 as select substring(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(trim(1)); @@ -1820,7 +1821,7 @@ create table t1 as select trim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ucase(1)); @@ -1830,7 +1831,7 @@ create table t1 as select ucase(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(upper(1)); @@ -1840,14 +1841,14 @@ create table t1 as select upper(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) NOT NULL + `c1` varbinary(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat(' ', 64) as a limit 0; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varbinary(64) NOT NULL + `a` varbinary(64) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ("1.1"), ("2.1"); select a, hex(a) from t1; @@ -2097,7 +2098,7 @@ create table t2 as select concat(a) from t1; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `concat(a)` varbinary(19) NOT NULL + `concat(a)` varbinary(19) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1, t2; create table t1 (a date); @@ -2396,7 +2397,7 @@ insert into t1 values ('2001-02-03 04:05:06'); create view v1(a) as select concat(a) from t1; show columns from v1; Field Type Null Key Default Extra -a varbinary(19) NO +a varbinary(19) YES NULL select hex(a) from v1; hex(a) 303030302D30302D30302030303A30303A3030 @@ -2647,14 +2648,14 @@ CREATE TABLE t2 AS SELECT CONCAT_WS(1,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `CONCAT_WS(1,2,3)` varbinary(3) NOT NULL + `CONCAT_WS(1,2,3)` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT INSERT(1133,3,0,22) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `INSERT(1133,3,0,22)` varbinary(6) NOT NULL + `INSERT(1133,3,0,22)` varbinary(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LCASE(a) FROM t1; @@ -2675,35 +2676,35 @@ CREATE TABLE t2 AS SELECT REPEAT(1,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPEAT(1,2)` varbinary(2) NOT NULL + `REPEAT(1,2)` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LEFT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LEFT(123,2)` varbinary(2) NOT NULL + `LEFT(123,2)` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RIGHT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RIGHT(123,2)` varbinary(2) NOT NULL + `RIGHT(123,2)` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LTRIM(123)` varbinary(3) NOT NULL + `LTRIM(123)` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RTRIM(123)` varbinary(3) NOT NULL + `RTRIM(123)` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT ELT(1,111,222,333) FROM t1; @@ -2717,35 +2718,35 @@ CREATE TABLE t2 AS SELECT REPLACE(111,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPLACE(111,2,3)` varbinary(3) NOT NULL + `REPLACE(111,2,3)` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SUBSTRING_INDEX(111,111,1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SUBSTRING_INDEX(111,111,1)` varbinary(3) NOT NULL + `SUBSTRING_INDEX(111,111,1)` varbinary(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAKE_SET(111,222,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `MAKE_SET(111,222,3)` varbinary(5) NOT NULL + `MAKE_SET(111,222,3)` varbinary(5) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SOUNDEX(1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SOUNDEX(1)` varbinary(4) NOT NULL + `SOUNDEX(1)` varbinary(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT EXPORT_SET(1,'Y','N','',8); SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `EXPORT_SET(1,'Y','N','',8)` varbinary(64) NOT NULL + `EXPORT_SET(1,'Y','N','',8)` varbinary(64) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; @@ -2935,7 +2936,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -2956,7 +2957,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -2977,7 +2978,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -2998,7 +2999,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(10) NOT NULL + `c1` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -3023,7 +3024,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varbinary(10) NOT NULL + `a` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; diff --git a/mysql-test/r/ctype_collate.result b/mysql-test/r/ctype_collate.result index 27cae7e3c7b..a91e583f21f 100644 --- a/mysql-test/r/ctype_collate.result +++ b/mysql-test/r/ctype_collate.result @@ -649,7 +649,7 @@ select least(_latin1'a',_latin2'b',_latin5'c' collate latin5_turkish_ci) as f1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `f1` varchar(1) CHARACTER SET latin5 NOT NULL + `f1` varchar(1) CHARACTER SET latin5 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select case _latin1'a' when _latin2'b' then 1 when _latin5'c' collate diff --git a/mysql-test/r/ctype_cp1250_ch.result b/mysql-test/r/ctype_cp1250_ch.result index 173fcccb873..d4f75778ace 100644 --- a/mysql-test/r/ctype_cp1250_ch.result +++ b/mysql-test/r/ctype_cp1250_ch.result @@ -59,7 +59,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -112,7 +112,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -135,7 +135,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -158,7 +158,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -181,7 +181,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -207,7 +207,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8 NOT NULL + `a` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -281,7 +281,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -510,7 +510,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET cp1250 COLLATE cp1250_czech_cs NOT NULL + `a` varchar(5) CHARACTER SET cp1250 COLLATE cp1250_czech_cs DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/r/ctype_cp1251.result b/mysql-test/r/ctype_cp1251.result index 205b0e1c93f..037f3cb07e3 100644 --- a/mysql-test/r/ctype_cp1251.result +++ b/mysql-test/r/ctype_cp1251.result @@ -281,7 +281,7 @@ chr upper lower utf8 roundtrip issafe 95 95 95 E280A2 95 96 96 96 E28093 96 97 97 97 E28094 97 -98 98 98 3F 3F Round trip unsafe +98 98 98 NULL NULL Round trip unsafe 99 99 99 E284A2 99 9A 9A 9A D199 9A 9B 9B 9B E280BA 9B @@ -422,7 +422,7 @@ create table t1 as select concat(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -435,7 +435,7 @@ create table t1 as select concat(18446744073709551615) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(20) CHARACTER SET cp1251 NOT NULL + `c1` varchar(20) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -448,7 +448,7 @@ create table t1 as select concat(1.1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET cp1251 NOT NULL + `c1` varchar(4) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -461,7 +461,7 @@ create table t1 as select concat(1+2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1-2)); @@ -471,7 +471,7 @@ create table t1 as select concat(1-2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1*2)); @@ -481,7 +481,7 @@ create table t1 as select concat(1*2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1/2)); @@ -521,7 +521,7 @@ create table t1 as select concat(-1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-(1+2))); @@ -531,7 +531,7 @@ create table t1 as select concat(-(1+2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET cp1251 NOT NULL + `c1` varchar(4) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1|2)); @@ -541,7 +541,7 @@ create table t1 as select concat(1|2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1&2)); @@ -551,7 +551,7 @@ create table t1 as select concat(1&2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_count(12))); @@ -561,7 +561,7 @@ create table t1 as select concat(bit_count(12)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2<<1)); @@ -571,7 +571,7 @@ create table t1 as select concat(2<<1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2>>1)); @@ -581,7 +581,7 @@ create table t1 as select concat(2>>1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(~0)); @@ -591,7 +591,7 @@ create table t1 as select concat(~0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(3^2)); @@ -601,7 +601,7 @@ create table t1 as select concat(3^2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(abs(-2))); @@ -611,7 +611,7 @@ create table t1 as select concat(abs(-2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(concat(exp(2)),1)); @@ -741,7 +741,7 @@ create table t1 as select concat(degrees(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) CHARACTER SET cp1251 NOT NULL + `c1` varchar(23) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(radians(0))); @@ -751,7 +751,7 @@ create table t1 as select concat(radians(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) CHARACTER SET cp1251 NOT NULL + `c1` varchar(23) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ceiling(0.5))); @@ -761,7 +761,7 @@ create table t1 as select concat(ceiling(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET cp1251 NOT NULL + `c1` varchar(4) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(floor(0.5))); @@ -771,7 +771,7 @@ create table t1 as select concat(floor(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET cp1251 NOT NULL + `c1` varchar(4) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(round(0.5))); @@ -781,7 +781,7 @@ create table t1 as select concat(round(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sign(0.5))); @@ -791,14 +791,14 @@ create table t1 as select concat(sign(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(rand()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) CHARACTER SET cp1251 NOT NULL + `c1` varchar(23) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(length('a'))); @@ -808,7 +808,7 @@ create table t1 as select concat(length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(char_length('a'))); @@ -818,7 +818,7 @@ create table t1 as select concat(char_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_length('a'))); @@ -828,7 +828,7 @@ create table t1 as select concat(bit_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coercibility('a'))); @@ -838,7 +838,7 @@ create table t1 as select concat(coercibility('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(locate('a','a'))); @@ -848,7 +848,7 @@ create table t1 as select concat(locate('a','a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(11) CHARACTER SET cp1251 NOT NULL + `c1` varchar(11) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(field('c','a','b','c'))); @@ -858,7 +858,7 @@ create table t1 as select concat(field('c','a','b','c')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ascii(61))); @@ -868,7 +868,7 @@ create table t1 as select concat(ascii(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ord(61))); @@ -878,7 +878,7 @@ create table t1 as select concat(ord(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(find_in_set('b','a,b,c,d'))); @@ -888,7 +888,7 @@ create table t1 as select concat(find_in_set('b','a,b,c,d')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select md5('a'), hex(md5('a')); @@ -898,7 +898,7 @@ create table t1 as select md5('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(32) CHARACTER SET cp1251 NOT NULL + `c1` varchar(32) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select old_password('a'), hex(old_password('a')); @@ -908,7 +908,7 @@ create table t1 as select old_password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(16) CHARACTER SET cp1251 NOT NULL + `c1` varchar(16) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select password('a'), hex(password('a')); @@ -918,7 +918,7 @@ create table t1 as select password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(41) CHARACTER SET cp1251 NOT NULL + `c1` varchar(41) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha('a'), hex(sha('a')); @@ -928,7 +928,7 @@ create table t1 as select sha('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(40) CHARACTER SET cp1251 NOT NULL + `c1` varchar(40) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha1('a'), hex(sha1('a')); @@ -938,7 +938,7 @@ create table t1 as select sha1('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(40) CHARACTER SET cp1251 NOT NULL + `c1` varchar(40) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('-1' as signed))); @@ -948,7 +948,7 @@ create table t1 as select concat(cast('-1' as signed)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('1' as unsigned))); @@ -958,7 +958,7 @@ create table t1 as select concat(cast('1' as unsigned)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast(1/2 as decimal(5,5)))); @@ -1017,7 +1017,7 @@ create table t1 as select concat(least(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(greatest(1,2))); @@ -1027,7 +1027,7 @@ create table t1 as select concat(greatest(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(case when 11 then 22 else 33 end)); @@ -1037,7 +1037,7 @@ create table t1 as select concat(case when 11 then 22 else 33 end) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coalesce(1,2))); @@ -1047,7 +1047,7 @@ create table t1 as select concat(coalesce(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat_ws(1,2,3)); @@ -1057,7 +1057,7 @@ create table t1 as select concat_ws(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(group_concat(1,2,3)); @@ -1085,7 +1085,7 @@ create table t1 as select concat(last_insert_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(benchmark(0,0))); @@ -1095,7 +1095,7 @@ create table t1 as select concat(benchmark(0,0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sleep(0))); @@ -1105,7 +1105,7 @@ create table t1 as select concat(sleep(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(is_free_lock('xxxx'))); @@ -1139,7 +1139,7 @@ create table t1 as select concat(crc32('')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(uncompressed_length(''))); @@ -1156,7 +1156,7 @@ create table t1 as select concat(connection_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(inet_aton('127.1.1.1'))); @@ -1192,7 +1192,7 @@ create table t1 as select concat(row_count()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(found_rows())); @@ -1202,21 +1202,21 @@ create table t1 as select concat(found_rows()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid_short()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET cp1251 NOT NULL + `c1` varchar(21) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(36) CHARACTER SET utf8 NOT NULL + `c1` varchar(36) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select coercibility(uuid()), coercibility(cast('a' as char character set latin1)); @@ -1229,7 +1229,7 @@ create table t1 as select concat(uuid(), cast('a' as char character set latin1)) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(37) NOT NULL + `c1` varchar(37) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(master_pos_wait('non-existent',0,2)) as c1; @@ -1249,7 +1249,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL, + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL, `c2` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -1307,7 +1307,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET cp1251 NOT NULL, + `c1` varchar(4) CHARACTER SET cp1251 DEFAULT NULL, `c2` decimal(2,1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -1346,7 +1346,7 @@ create table t1 as select concat('a'='a' IS TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a'='a' IS NOT TRUE)); @@ -1356,7 +1356,7 @@ create table t1 as select concat('a'='a' IS NOT TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(NOT 'a'='a')); @@ -1366,7 +1366,7 @@ create table t1 as select concat(NOT 'a'='a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NULL)); @@ -1376,7 +1376,7 @@ create table t1 as select concat('a' IS NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NOT NULL)); @@ -1386,7 +1386,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' rlike 'a')); @@ -1396,7 +1396,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(strcmp('a','b'))); @@ -1406,7 +1406,7 @@ create table t1 as select concat(strcmp('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' like 'a')); @@ -1416,7 +1416,7 @@ create table t1 as select concat('a' like 'b') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' between 'b' and 'c')); @@ -1426,7 +1426,7 @@ create table t1 as select concat('a' between 'b' and 'c') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' in ('a','b'))); @@ -1436,7 +1436,7 @@ create table t1 as select concat('a' in ('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(interval(23, 1, 15, 17, 30, 44, 200))); @@ -1446,7 +1446,7 @@ create table t1 as select concat(interval(23, 1, 15, 17, 30, 44, 200)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 (a varchar(10), fulltext key(a)); @@ -1478,7 +1478,7 @@ create table t1 as select concat(ifnull(1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ifnull(1.1,1.1))); @@ -1488,7 +1488,7 @@ create table t1 as select concat(ifnull(1.1,1.1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET cp1251 NOT NULL + `c1` varchar(4) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(if(1,'b',1)); @@ -1518,7 +1518,7 @@ create table t1 as select concat(if(1,1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(nullif(1,2))); @@ -1683,12 +1683,13 @@ create table t1 as select concat(period_add(200902, 2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(6) CHARACTER SET cp1251 NOT NULL + `c1` varchar(6) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(period_diff(200902, 200802))); hex(concat(period_diff(200902, 200802))) 3132 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 as select concat(period_add(200902, 200802)) as c1; Warnings: Warning 1265 Data truncated for column 'c1' at row 1 @@ -1892,21 +1893,21 @@ create table t1 as select concat(curdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_date()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(curtime()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat('a',20) as c1 limit 0; @@ -1922,7 +1923,7 @@ create table t1 as select concat(utc_time()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET cp1251 NOT NULL + `c1` varchar(10) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sec_to_time(2378))); @@ -2015,21 +2016,21 @@ create table t1 as select concat(now()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) CHARACTER SET cp1251 NOT NULL + `c1` varchar(19) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_timestamp()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) CHARACTER SET cp1251 NOT NULL + `c1` varchar(19) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(sysdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) CHARACTER SET cp1251 NOT NULL + `c1` varchar(19) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(addtime('00:00:00','11:22:33'))); @@ -2069,7 +2070,7 @@ create table t1 as select export_set(1,2,3,4,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(127) CHARACTER SET cp1251 NOT NULL + `c1` varchar(127) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(insert(1133,3,0,22)); @@ -2079,7 +2080,7 @@ create table t1 as select insert(1133,3,0,22) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(6) CHARACTER SET cp1251 NOT NULL + `c1` varchar(6) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lcase(123)); @@ -2089,7 +2090,7 @@ create table t1 as select lcase(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(123,1)); @@ -2099,7 +2100,7 @@ create table t1 as select left(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lower(123)); @@ -2109,7 +2110,7 @@ create table t1 as select lower(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET cp1251 NOT NULL + `c1` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lpad(1,2,0)); @@ -2119,7 +2120,7 @@ create table t1 as select lpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ltrim(1)); @@ -2129,7 +2130,7 @@ create table t1 as select ltrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(mid(1,1,1)); @@ -2139,7 +2140,7 @@ create table t1 as select mid(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(repeat(1,2)); @@ -2149,7 +2150,7 @@ create table t1 as select repeat(1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(replace(1,1,2)); @@ -2159,7 +2160,7 @@ create table t1 as select replace(1,1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(reverse(12)); @@ -2169,7 +2170,7 @@ create table t1 as select reverse(12) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(right(123,1)); @@ -2179,7 +2180,7 @@ create table t1 as select right(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rpad(1,2,0)); @@ -2189,7 +2190,7 @@ create table t1 as select rpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET cp1251 NOT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rtrim(1)); @@ -2199,7 +2200,7 @@ create table t1 as select rtrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(soundex(1)); @@ -2209,7 +2210,7 @@ create table t1 as select soundex(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET cp1251 NOT NULL + `c1` varchar(4) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(substring(1,1,1)); @@ -2219,7 +2220,7 @@ create table t1 as select substring(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(trim(1)); @@ -2229,7 +2230,7 @@ create table t1 as select trim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ucase(1)); @@ -2239,7 +2240,7 @@ create table t1 as select ucase(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(upper(1)); @@ -2249,14 +2250,14 @@ create table t1 as select upper(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 NOT NULL + `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat(' ', 64) as a limit 0; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(64) CHARACTER SET cp1251 NOT NULL + `a` varchar(64) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ("1.1"), ("2.1"); select a, hex(a) from t1; @@ -2506,7 +2507,7 @@ create table t2 as select concat(a) from t1; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `concat(a)` varchar(19) CHARACTER SET cp1251 NOT NULL + `concat(a)` varchar(19) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1, t2; create table t1 (a date); @@ -2805,7 +2806,7 @@ insert into t1 values ('2001-02-03 04:05:06'); create view v1(a) as select concat(a) from t1; show columns from v1; Field Type Null Key Default Extra -a varchar(19) NO +a varchar(19) YES NULL select hex(a) from v1; hex(a) 303030302D30302D30302030303A30303A3030 @@ -3056,14 +3057,14 @@ CREATE TABLE t2 AS SELECT CONCAT_WS(1,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `CONCAT_WS(1,2,3)` varchar(3) CHARACTER SET cp1251 NOT NULL + `CONCAT_WS(1,2,3)` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT INSERT(1133,3,0,22) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `INSERT(1133,3,0,22)` varchar(6) CHARACTER SET cp1251 NOT NULL + `INSERT(1133,3,0,22)` varchar(6) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LCASE(a) FROM t1; @@ -3084,35 +3085,35 @@ CREATE TABLE t2 AS SELECT REPEAT(1,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPEAT(1,2)` varchar(2) CHARACTER SET cp1251 NOT NULL + `REPEAT(1,2)` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LEFT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LEFT(123,2)` varchar(2) CHARACTER SET cp1251 NOT NULL + `LEFT(123,2)` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RIGHT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RIGHT(123,2)` varchar(2) CHARACTER SET cp1251 NOT NULL + `RIGHT(123,2)` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LTRIM(123)` varchar(3) CHARACTER SET cp1251 NOT NULL + `LTRIM(123)` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RTRIM(123)` varchar(3) CHARACTER SET cp1251 NOT NULL + `RTRIM(123)` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT ELT(1,111,222,333) FROM t1; @@ -3126,35 +3127,35 @@ CREATE TABLE t2 AS SELECT REPLACE(111,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPLACE(111,2,3)` varchar(3) CHARACTER SET cp1251 NOT NULL + `REPLACE(111,2,3)` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SUBSTRING_INDEX(111,111,1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SUBSTRING_INDEX(111,111,1)` varchar(3) CHARACTER SET cp1251 NOT NULL + `SUBSTRING_INDEX(111,111,1)` varchar(3) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAKE_SET(111,222,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `MAKE_SET(111,222,3)` varchar(5) CHARACTER SET cp1251 NOT NULL + `MAKE_SET(111,222,3)` varchar(5) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SOUNDEX(1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SOUNDEX(1)` varchar(4) CHARACTER SET cp1251 NOT NULL + `SOUNDEX(1)` varchar(4) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT EXPORT_SET(1,'Y','N','',8); SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `EXPORT_SET(1,'Y','N','',8)` varchar(64) CHARACTER SET cp1251 NOT NULL + `EXPORT_SET(1,'Y','N','',8)` varchar(64) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; diff --git a/mysql-test/r/ctype_cp932_binlog_stm.result b/mysql-test/r/ctype_cp932_binlog_stm.result index 75d05aa9f0a..b958933cd12 100644 --- a/mysql-test/r/ctype_cp932_binlog_stm.result +++ b/mysql-test/r/ctype_cp932_binlog_stm.result @@ -86,7 +86,7 @@ FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (head NOT BETWEEN 'A1' AND 'DF') AND (tail BETWEEN '20' AND 'FF') ORDER BY head, tail; -INSERT t1 (code) SELECT head FROM head +INSERT IGNORE t1 (code) SELECT head FROM head WHERE (head BETWEEN 'A1' AND 'DF') ORDER BY head; DROP TEMPORARY TABLE head, tail; @@ -96,7 +96,7 @@ t1 CREATE TABLE `t1` ( `code` varchar(8) DEFAULT NULL, `a` varchar(1) CHARACTER SET cp932 NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; Warnings: Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1 Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2 @@ -388,138 +388,138 @@ code a 81F0 â„« Warnings: Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81EB to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81EC to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81ED to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81EE to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81EF to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81F8 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81F9 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81FA to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81FB to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8240 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8241 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8242 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8243 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8244 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8245 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8246 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8247 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8248 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8249 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824A to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824B to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824C to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824D to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824E to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8259 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825A to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825B to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825C to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825D to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825E to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825F to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x827A to 'utf8' SELECT * FROM t1 WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code; code a Warnings: Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81AD to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81AE to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81AF to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B0 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B1 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B2 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B3 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B4 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B5 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B6 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81B7 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C0 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C1 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C2 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C3 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C4 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C5 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C6 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81C7 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81CF to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D0 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D1 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D2 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D3 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D4 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D5 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D6 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D7 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D8 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81D9 to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81E9 to 'utf8' -Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8' Warning 1977 Cannot convert 'cp932' character 0x81EA to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81EB to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81EC to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81ED to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81EE to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81EF to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81F8 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81F9 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81FA to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x81FB to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8240 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8241 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8242 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8243 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8244 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8245 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8246 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8247 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8248 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8249 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824A to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824B to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824C to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824D to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x824E to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x8259 to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825A to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825B to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825C to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825D to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825E to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x825F to 'utf8' +Warning 1977 Cannot convert 'cp932' character 0x827A to 'utf8' # # WL#3090 Japanese Character Set adjustments # Test cp932->Unicode conversion @@ -19762,7 +19762,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET cp932 NOT NULL + `a` varchar(5) CHARACTER SET cp932 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -20021,7 +20021,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET cp932 COLLATE cp932_bin NOT NULL + `a` varchar(5) CHARACTER SET cp932 COLLATE cp932_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -20300,7 +20300,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ',10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET cp932 NOT NULL + `a` varchar(10) CHARACTER SET cp932 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\'),('à\t'); INSERT INTO t1 VALUES ('\\à\'),('\\à\t'),('\\à\t\t'); @@ -20339,7 +20339,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET cp932 NOT NULL + `a` varchar(10) CHARACTER SET cp932 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (BINARY('à\')),(BINARY('à\t')); INSERT INTO t1 VALUES (BINARY('\\à\')),(BINARY('\\à\t')),(BINARY('\\à\t\t')); @@ -20378,7 +20378,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET cp932 NOT NULL + `a` varchar(10) CHARACTER SET cp932 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_BINARY'à\'),(_BINARY'à\t'); INSERT INTO t1 VALUES (_BINARY'\\à\'),(_BINARY'\\à\t'),(_BINARY'\\à\t\t'); @@ -20424,7 +20424,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET cp932 NOT NULL + `a` varchar(10) CHARACTER SET cp932 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\['),('\à\['); SELECT HEX(a) FROM t1; @@ -20444,7 +20444,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varbinary(10) NOT NULL + `a` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\['),('\à\['); SELECT HEX(a) FROM t1; diff --git a/mysql-test/r/ctype_eucjpms.result b/mysql-test/r/ctype_eucjpms.result index b40787992bf..afca918abc1 100644 --- a/mysql-test/r/ctype_eucjpms.result +++ b/mysql-test/r/ctype_eucjpms.result @@ -9881,30 +9881,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SET collation_connection='eucjpms_bin'; create table t1 select repeat('a',4000) a; @@ -9988,39 +9976,27 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; select hex(convert(_eucjpms 0xA5FE41 using ucs2)); hex(convert(_eucjpms 0xA5FE41 using ucs2)) -003F0041 +NULL Warnings: Warning 1977 Cannot convert 'eucjpms' character 0xA5FE to 'ucs2' select hex(convert(_eucjpms 0x8FABF841 using ucs2)); hex(convert(_eucjpms 0x8FABF841 using ucs2)) -003F0041 +NULL Warnings: Warning 1977 Cannot convert 'eucjpms' character 0x8FABF8 to 'ucs2' set global LC_TIME_NAMES=convert((convert((0x63) using eucjpms)) using utf8); @@ -10040,18 +10016,18 @@ CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 CREATE TEMPORARY TABLE tail AS SELECT concat(b1.b, b2.b) AS tail FROM t1 b1, t1 b2; DROP TABLE t1; CREATE TABLE t1 AS SELECT 'XXXXXX' AS code, ' ' AS a LIMIT 0; -INSERT INTO t1 (code) SELECT concat('8E', head) FROM head +INSERT IGNORE INTO t1 (code) SELECT concat('8E', head) FROM head WHERE (head BETWEEN 'A1' AND 'DF') ORDER BY head; Warnings: Warning 1364 Field 'a' doesn't have a default value -INSERT INTO t1 (code) SELECT concat(head, tail) +INSERT IGNORE INTO t1 (code) SELECT concat(head, tail) FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (head NOT BETWEEN '8E' AND '8F') AND (tail BETWEEN '20' AND 'FF') ORDER BY head, tail; Warnings: Warning 1364 Field 'a' doesn't have a default value -INSERT INTO t1 (code) SELECT concat('8F', head, tail) +INSERT IGNORE INTO t1 (code) SELECT concat('8F', head, tail) FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (tail BETWEEN '20' AND 'FF') ORDER BY head, tail; @@ -10064,7 +10040,7 @@ t1 CREATE TABLE `t1` ( `code` varchar(6) CHARACTER SET eucjpms NOT NULL, `a` varchar(1) CHARACTER SET eucjpms NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; Warnings: Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1 Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2 @@ -10590,69 +10566,69 @@ code a 8FAABC Ä¢ Warnings: Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2ED to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2EE to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2EF to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2F0 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2F1 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2FA to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2FB to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2FC to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2FD to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A1 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A2 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A3 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A4 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A5 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A6 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A7 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A8 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A9 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AA to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AB to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AC to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AD to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AE to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AF to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BA to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BB to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BC to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BD to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BE to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BF to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3C0 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3DB to 'utf8' SELECT * FROM t1 WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code; @@ -10661,69 +10637,69 @@ code a 8FABB9 ǵ Warnings: Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B1 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B2 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B3 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B4 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B5 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B6 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B7 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B8 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2B9 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C2 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C3 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C4 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C5 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C6 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C7 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C8 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2C9 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D1 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D2 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D3 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D4 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D5 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D6 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D7 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D8 to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2D9 to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2DA to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2DB to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2EB to 'utf8' -Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8' Warning 1977 Cannot convert 'eucjpms' character 0xA2EC to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2ED to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2EE to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2EF to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2F0 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2F1 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2FA to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2FB to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2FC to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA2FD to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A1 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A2 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A3 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A4 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A5 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A6 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A7 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A8 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3A9 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AA to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AB to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AC to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AD to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AE to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3AF to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BA to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BB to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BC to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BD to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BE to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3BF to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3C0 to 'utf8' +Warning 1977 Cannot convert 'eucjpms' character 0xA3DB to 'utf8' # # WL#3090 Japanese Character Set adjustments # Test sjis->Unicode conversion @@ -33013,7 +32989,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET eucjpms NOT NULL + `a` varchar(5) CHARACTER SET eucjpms DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -33446,7 +33422,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET eucjpms COLLATE eucjpms_bin NOT NULL + `a` varchar(5) CHARACTER SET eucjpms COLLATE eucjpms_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -33861,7 +33837,7 @@ hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char),25, 4, 0xC0)) # MDEV-6776 ujis and eucjmps erroneously accept 0x8EA0 as a valid byte sequence # CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET eucjpms); -INSERT INTO t1 VALUES (0x8EA0); +INSERT IGNORE INTO t1 VALUES (0x8EA0); SELECT HEX(a), CHAR_LENGTH(a) FROM t1; HEX(a) CHAR_LENGTH(a) 3F3F 2 @@ -33920,7 +33896,7 @@ DROP TABLE t1; # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis # CREATE TABLE t1 (a TEXT CHARACTER SET eucjpms); -LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET eucjpms IGNORE 4 LINES; +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' IGNORE INTO TABLE t1 CHARACTER SET eucjpms IGNORE 4 LINES; SELECT HEX(a) FROM t1; HEX(a) 3F diff --git a/mysql-test/r/ctype_euckr.result b/mysql-test/r/ctype_euckr.result index 359984d1e51..8069ef54bb1 100644 --- a/mysql-test/r/ctype_euckr.result +++ b/mysql-test/r/ctype_euckr.result @@ -55,7 +55,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -224,30 +224,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SET collation_connection='euckr_bin'; create table t1 select repeat('a',4000) a; @@ -371,30 +359,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SET NAMES euckr; CREATE TABLE t1 (a text) character set euckr; @@ -411,22 +387,22 @@ insert into t1 values (0xA161); insert into t1 values (0xA17A); insert into t1 values (0xA181); insert into t1 values (0xA1FE); -insert into t1 values (0xA140); +insert ignore into t1 values (0xA140); Warnings: Warning 1366 Incorrect string value: '\xA1@' for column 's1' at row 1 -insert into t1 values (0xA15B); +insert ignore into t1 values (0xA15B); Warnings: Warning 1366 Incorrect string value: '\xA1[' for column 's1' at row 1 -insert into t1 values (0xA160); +insert ignore into t1 values (0xA160); Warnings: Warning 1366 Incorrect string value: '\xA1`' for column 's1' at row 1 -insert into t1 values (0xA17B); +insert ignore into t1 values (0xA17B); Warnings: Warning 1366 Incorrect string value: '\xA1{' for column 's1' at row 1 -insert into t1 values (0xA180); +insert ignore into t1 values (0xA180); Warnings: Warning 1366 Incorrect string value: '\xA1\x80' for column 's1' at row 1 -insert into t1 values (0xA1FF); +insert ignore into t1 values (0xA1FF); Warnings: Warning 1366 Incorrect string value: '\xA1\xFF' for column 's1' at row 1 select hex(s1), hex(convert(s1 using utf8)) from t1 order by binary s1; @@ -1985,7 +1961,7 @@ FE7F FE80 DELETE FROM t2 WHERE a='?'; ALTER TABLE t2 ADD u VARCHAR(1) CHARACTER SET utf8, ADD a2 VARCHAR(1) CHARACTER SET euckr; -UPDATE t2 SET u=a, a2=u; +UPDATE IGNORE t2 SET u=a, a2=u; SELECT s as unassigned_code FROM t2 WHERE u='?'; unassigned_code A2E8 @@ -24450,7 +24426,7 @@ t1 CREATE TABLE `t1` ( `code` varchar(8) DEFAULT NULL, `a` varchar(1) CHARACTER SET euckr NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; Warnings: Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1 Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2 @@ -24738,69 +24714,69 @@ code a A1CA â„« Warnings: Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5BE to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5BF to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5C0 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5D9 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DA to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DB to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DC to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DD to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DE to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DF to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5E0 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5F9 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FA to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FB to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FC to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FD to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FE to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E5 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E6 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E7 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E8 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E9 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EA to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EB to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EC to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6ED to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EE to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EF to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6F0 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6F1 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6F2 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6F3 to 'utf8' SELECT * FROM t1 WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code; @@ -24834,69 +24810,69 @@ A8E6 â“© A9A2 Ä‘ Warnings: Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2E8 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2E9 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2ED to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2EF to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F0 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F1 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F2 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F3 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F4 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F5 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F6 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F7 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F8 to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2F9 to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA2FE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AE to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5AF to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5BA to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5BB to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5BC to 'utf8' -Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8' Warning 1977 Cannot convert 'euckr' character 0xA5BD to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5BE to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5BF to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5C0 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5D9 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DA to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DB to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DC to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DD to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DE to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5DF to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5E0 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5F9 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FA to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FB to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FC to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FD to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA5FE to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E5 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E6 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E7 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E8 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6E9 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EA to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EB to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EC to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6ED to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EE to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6EF to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6F0 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6F1 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6F2 to 'utf8' +Warning 1977 Cannot convert 'euckr' character 0xA6F3 to 'utf8' DROP TABLE t1; # # End of 5.5 tests @@ -24935,7 +24911,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET euckr NOT NULL + `a` varchar(5) CHARACTER SET euckr DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -25194,7 +25170,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET euckr COLLATE euckr_bin NOT NULL + `a` varchar(5) CHARACTER SET euckr COLLATE euckr_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/r/ctype_gb2312.result b/mysql-test/r/ctype_gb2312.result index 4702eac6b6b..cef286b0aab 100644 --- a/mysql-test/r/ctype_gb2312.result +++ b/mysql-test/r/ctype_gb2312.result @@ -55,7 +55,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -224,30 +224,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; drop table if exists t1; create table t1 select repeat('a',10) as c1; @@ -452,30 +440,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SET NAMES gb2312; CREATE TABLE t1 (a text) character set gb2312; @@ -511,7 +487,7 @@ t1 CREATE TABLE `t1` ( `code` varchar(8) DEFAULT NULL, `a` varchar(1) CHARACTER SET gb2312 NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; Warnings: Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1 Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2 @@ -766,69 +742,69 @@ A2FB â…ª A2FC â…« Warnings: Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA4FE to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5F7 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5F8 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5F9 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FA to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FB to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FC to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FD to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FE to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6B9 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BA to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BB to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BC to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BD to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BE to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BF to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6C0 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6D9 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DA to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DB to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DC to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DD to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DE to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DF to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E0 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E1 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E2 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E3 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E4 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E5 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E6 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E7 to 'utf8' SELECT * FROM t1 WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code; @@ -861,69 +837,69 @@ A8B9 ü A8BA ê Warnings: Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A1 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A2 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A3 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A4 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A5 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A6 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A7 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A8 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2A9 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AA to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AB to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AC to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AD to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AE to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2E3 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2E4 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2EF to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2F0 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2FD to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA2FE to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F4 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F5 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F6 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F7 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F8 to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4F9 to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4FA to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4FB to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4FC to 'utf8' -Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8' Warning 1977 Cannot convert 'gb2312' character 0xA4FD to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA4FE to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5F7 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5F8 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5F9 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FA to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FB to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FC to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FD to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA5FE to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6B9 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BA to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BB to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BC to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BD to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BE to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6BF to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6C0 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6D9 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DA to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DB to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DC to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DD to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DE to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6DF to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E0 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E1 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E2 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E3 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E4 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E5 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E6 to 'utf8' +Warning 1977 Cannot convert 'gb2312' character 0xA6E7 to 'utf8' DROP TABLE t1; # # End of 5.5 tests @@ -962,7 +938,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET gb2312 NOT NULL + `a` varchar(5) CHARACTER SET gb2312 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -1221,7 +1197,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET gb2312 COLLATE gb2312_bin NOT NULL + `a` varchar(5) CHARACTER SET gb2312 COLLATE gb2312_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -1459,6 +1435,7 @@ A1A1A1A1A1A120202020202020202020202020202020202020 # Start of 10.0 tests # # Start of ctype_unescape.inc +SET sql_mode = ''; SET @query=_binary'SELECT CHARSET(\'test\'),@@character_set_client,@@character_set_connection'; PREPARE stmt FROM @query; EXECUTE stmt; @@ -4521,6 +4498,7 @@ DROP FUNCTION wellformedness; DROP FUNCTION mysql_real_escape_string_generated; DROP FUNCTION iswellformed; DROP TABLE allbytes; +SET sql_mode = DEFAULT; # End of ctype_backslash.inc # # End of 10.0 tests diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result index 34c3f6c7486..8e16320b9df 100644 --- a/mysql-test/r/ctype_gbk.result +++ b/mysql-test/r/ctype_gbk.result @@ -55,7 +55,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -224,30 +224,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; drop table if exists t1; create table t1 select repeat('a',10) as c1; @@ -452,30 +440,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SET NAMES gbk; CREATE TABLE t1 (a text) character set gbk; @@ -487,7 +463,7 @@ A3A0 DROP TABLE t1; select hex(convert(_gbk 0xA14041 using ucs2)); hex(convert(_gbk 0xA14041 using ucs2)) -003F0041 +NULL Warnings: Warning 1977 Cannot convert 'gbk' character 0xA140 to 'ucs2' create table t1 (c1 text not null, c2 text not null) character set gbk; @@ -533,7 +509,7 @@ t1 CREATE TABLE `t1` ( `code` varchar(8) DEFAULT NULL, `a` varchar(1) CHARACTER SET gbk NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; Warnings: Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1 Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2 @@ -798,69 +774,69 @@ A2FB â…ª A2FC â…« Warnings: Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA160 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA161 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA162 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA163 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA164 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA165 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA166 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA167 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA168 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA169 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16A to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16B to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16C to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16D to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16E to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16F to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA170 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA171 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA172 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA173 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA174 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA175 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA176 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA177 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA178 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA179 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17A to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17B to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17C to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17D to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17E to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA180 to 'utf8' SELECT * FROM t1 WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code; @@ -895,69 +871,69 @@ A8BD Å„ A8BE ň Warnings: Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA140 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA141 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA142 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA143 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA144 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA145 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA146 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA147 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA148 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA149 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14A to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14B to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14C to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14D to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14E to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA14F to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA150 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA151 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA152 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA153 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA154 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA155 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA156 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA157 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA158 to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA159 to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15A to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15B to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15C to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15D to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15E to 'utf8' -Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8' Warning 1977 Cannot convert 'gbk' character 0xA15F to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA160 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA161 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA162 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA163 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA164 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA165 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA166 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA167 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA168 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA169 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16A to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16B to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16C to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16D to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16E to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA16F to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA170 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA171 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA172 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA173 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA174 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA175 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA176 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA177 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA178 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA179 to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17A to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17B to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17C to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17D to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA17E to 'utf8' +Warning 1977 Cannot convert 'gbk' character 0xA180 to 'utf8' DROP TABLE t1; # # End of 5.5 tests @@ -996,7 +972,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET gbk NOT NULL + `a` varchar(5) CHARACTER SET gbk DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -1429,7 +1405,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET gbk COLLATE gbk_bin NOT NULL + `a` varchar(5) CHARACTER SET gbk COLLATE gbk_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -1841,6 +1817,7 @@ hex(weight_string(cast(0x8EA18EA18EA1 as char),25, 4, 0xC0)) # Start of 10.0 tests # # Start of ctype_unescape.inc +SET sql_mode = ''; SET @query=_binary'SELECT CHARSET(\'test\'),@@character_set_client,@@character_set_connection'; PREPARE stmt FROM @query; EXECUTE stmt; @@ -4903,6 +4880,7 @@ DROP FUNCTION wellformedness; DROP FUNCTION mysql_real_escape_string_generated; DROP FUNCTION iswellformed; DROP TABLE allbytes; +SET sql_mode = DEFAULT; # End of ctype_backslash.inc SET NAMES gbk; # Start of ctype_E05C.inc @@ -4946,7 +4924,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ',10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET gbk NOT NULL + `a` varchar(10) CHARACTER SET gbk DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\'),('à\t'); INSERT INTO t1 VALUES ('\\à\'),('\\à\t'),('\\à\t\t'); @@ -4985,7 +4963,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET gbk NOT NULL + `a` varchar(10) CHARACTER SET gbk DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (BINARY('à\')),(BINARY('à\t')); INSERT INTO t1 VALUES (BINARY('\\à\')),(BINARY('\\à\t')),(BINARY('\\à\t\t')); @@ -5024,7 +5002,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET gbk NOT NULL + `a` varchar(10) CHARACTER SET gbk DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_BINARY'à\'),(_BINARY'à\t'); INSERT INTO t1 VALUES (_BINARY'\\à\'),(_BINARY'\\à\t'),(_BINARY'\\à\t\t'); @@ -5070,7 +5048,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET gbk NOT NULL + `a` varchar(10) CHARACTER SET gbk DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\['),('\à\['); SELECT HEX(a) FROM t1; @@ -5090,7 +5068,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varbinary(10) NOT NULL + `a` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\['),('\à\['); SELECT HEX(a) FROM t1; @@ -5169,7 +5147,7 @@ DELETE FROM t3; # Sequences that start with a tail or a bad byte, # or end with a bad byte, all should be fixed. # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE type1='tail' OR type1='bad' OR type2='bad' ORDER BY b; Warnings: @@ -5224,7 +5202,7 @@ DELETE FROM t3; # Sequences that start with an ASCII or an MB2 character, # followed by a non-ASCII tail, all should be fixed. # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE (FIND_IN_SET('mb2',type1) OR FIND_IN_SET('ascii',type1)) AND (FIND_IN_SET('tail',type2) AND NOT FIND_IN_SET('ascii',type2)) ORDER BY b; @@ -5378,7 +5356,7 @@ DELETE FROM t3; # Sequences that start with a tail or a bad byte, # or have a bad byte, all should be fixed. # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE type1='tail' OR type1='bad' OR type2='bad' OR type3='bad' ORDER BY b; Warnings: @@ -5622,7 +5600,7 @@ DELETE FROM t3; # Sequences that start with an ASCII or an MB2 character, # followed by a pure non-ASCII tail, all should be fixed. # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE (FIND_IN_SET('mb2',type1) OR FIND_IN_SET('ascii',type1)) AND type2='tail' ORDER BY b; @@ -5688,7 +5666,7 @@ DELETE FROM t3; # Sequences that consist of two ASCII or MB2 characters, # followed by a pure non-ASCII tail, all should be fixed. # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE (FIND_IN_SET('mb2',type1) OR FIND_IN_SET('ascii',type1)) AND (FIND_IN_SET('mb2',type2) OR FIND_IN_SET('ascii',type2)) AND type3='tail' @@ -5739,7 +5717,7 @@ DELETE FROM t3; # Sequences that consist of two MB2 characters, # followed by a non-ASCII head or tail, all should be fixed. # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE FIND_IN_SET('mb2',type1) AND FIND_IN_SET('mb2',type2) AND NOT FIND_IN_SET('ascii',type3) AND NOT FIND_IN_SET('mb2',type3) @@ -5827,7 +5805,7 @@ SELECT HEX(c),HEX(b),comment FROM t3 WHERE b<>c ORDER BY b; HEX(c) HEX(b) comment DELETE FROM t2 WHERE b IN (SELECT b FROM t3); DELETE FROM t3; -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 ORDER BY b; +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 ORDER BY b; Warnings: Warning 1366 Incorrect string value: '\x81' for column 'c' at row 1 Warning 1366 Incorrect string value: '\xA3' for column 'c' at row 3 @@ -5913,6 +5891,7 @@ DROP TABLE t1; # # MDEV-7661 Unexpected result for: CAST(0xHHHH AS CHAR CHARACTER SET xxx) for incorrect byte sequences # +set sql_mode=''; SELECT HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)); HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)) 3F41 @@ -5923,6 +5902,7 @@ HEX(CONVERT(CAST(0xA341 AS CHAR CHARACTER SET gb2312) USING utf8)) 3F41 Warnings: Warning 1300 Invalid gb2312 character string: '\xA3A' +set sql_mode=default; # # End of 10.1 tests # diff --git a/mysql-test/r/ctype_latin1.result b/mysql-test/r/ctype_latin1.result index 80e5358d2df..fc37dcfda8b 100644 --- a/mysql-test/r/ctype_latin1.result +++ b/mysql-test/r/ctype_latin1.result @@ -364,7 +364,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -518,8 +518,8 @@ STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra -subject varchar(64) NO NULL -pattern varchar(64) NO NULL +subject varchar(64) YES NULL +pattern varchar(64) YES NULL INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d'); SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1; HEX(subject) HEX(pattern) STR_TO_DATE(subject, pattern) @@ -719,7 +719,7 @@ create table t1 as select concat(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -732,7 +732,7 @@ create table t1 as select concat(18446744073709551615) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(20) NOT NULL + `c1` varchar(20) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -745,7 +745,7 @@ create table t1 as select concat(1.1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) NOT NULL + `c1` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -758,7 +758,7 @@ create table t1 as select concat(1+2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1-2)); @@ -768,7 +768,7 @@ create table t1 as select concat(1-2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1*2)); @@ -778,7 +778,7 @@ create table t1 as select concat(1*2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1/2)); @@ -818,7 +818,7 @@ create table t1 as select concat(-1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-(1+2))); @@ -828,7 +828,7 @@ create table t1 as select concat(-(1+2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) NOT NULL + `c1` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1|2)); @@ -838,7 +838,7 @@ create table t1 as select concat(1|2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1&2)); @@ -848,7 +848,7 @@ create table t1 as select concat(1&2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_count(12))); @@ -858,7 +858,7 @@ create table t1 as select concat(bit_count(12)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2<<1)); @@ -868,7 +868,7 @@ create table t1 as select concat(2<<1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2>>1)); @@ -878,7 +878,7 @@ create table t1 as select concat(2>>1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(~0)); @@ -888,7 +888,7 @@ create table t1 as select concat(~0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(3^2)); @@ -898,7 +898,7 @@ create table t1 as select concat(3^2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(abs(-2))); @@ -908,7 +908,7 @@ create table t1 as select concat(abs(-2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(concat(exp(2)),1)); @@ -1038,7 +1038,7 @@ create table t1 as select concat(degrees(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) NOT NULL + `c1` varchar(23) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(radians(0))); @@ -1048,7 +1048,7 @@ create table t1 as select concat(radians(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) NOT NULL + `c1` varchar(23) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ceiling(0.5))); @@ -1058,7 +1058,7 @@ create table t1 as select concat(ceiling(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) NOT NULL + `c1` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(floor(0.5))); @@ -1068,7 +1068,7 @@ create table t1 as select concat(floor(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) NOT NULL + `c1` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(round(0.5))); @@ -1078,7 +1078,7 @@ create table t1 as select concat(round(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sign(0.5))); @@ -1088,14 +1088,14 @@ create table t1 as select concat(sign(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(rand()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) NOT NULL + `c1` varchar(23) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(length('a'))); @@ -1105,7 +1105,7 @@ create table t1 as select concat(length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(char_length('a'))); @@ -1115,7 +1115,7 @@ create table t1 as select concat(char_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_length('a'))); @@ -1125,7 +1125,7 @@ create table t1 as select concat(bit_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coercibility('a'))); @@ -1135,7 +1135,7 @@ create table t1 as select concat(coercibility('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(locate('a','a'))); @@ -1145,7 +1145,7 @@ create table t1 as select concat(locate('a','a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(11) NOT NULL + `c1` varchar(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(field('c','a','b','c'))); @@ -1155,7 +1155,7 @@ create table t1 as select concat(field('c','a','b','c')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ascii(61))); @@ -1165,7 +1165,7 @@ create table t1 as select concat(ascii(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ord(61))); @@ -1175,7 +1175,7 @@ create table t1 as select concat(ord(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(find_in_set('b','a,b,c,d'))); @@ -1185,7 +1185,7 @@ create table t1 as select concat(find_in_set('b','a,b,c,d')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select md5('a'), hex(md5('a')); @@ -1195,7 +1195,7 @@ create table t1 as select md5('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(32) NOT NULL + `c1` varchar(32) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select old_password('a'), hex(old_password('a')); @@ -1205,7 +1205,7 @@ create table t1 as select old_password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(16) NOT NULL + `c1` varchar(16) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select password('a'), hex(password('a')); @@ -1215,7 +1215,7 @@ create table t1 as select password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(41) NOT NULL + `c1` varchar(41) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha('a'), hex(sha('a')); @@ -1225,7 +1225,7 @@ create table t1 as select sha('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(40) NOT NULL + `c1` varchar(40) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha1('a'), hex(sha1('a')); @@ -1235,7 +1235,7 @@ create table t1 as select sha1('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(40) NOT NULL + `c1` varchar(40) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('-1' as signed))); @@ -1245,7 +1245,7 @@ create table t1 as select concat(cast('-1' as signed)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('1' as unsigned))); @@ -1255,7 +1255,7 @@ create table t1 as select concat(cast('1' as unsigned)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast(1/2 as decimal(5,5)))); @@ -1314,7 +1314,7 @@ create table t1 as select concat(least(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(greatest(1,2))); @@ -1324,7 +1324,7 @@ create table t1 as select concat(greatest(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(case when 11 then 22 else 33 end)); @@ -1334,7 +1334,7 @@ create table t1 as select concat(case when 11 then 22 else 33 end) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coalesce(1,2))); @@ -1344,7 +1344,7 @@ create table t1 as select concat(coalesce(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat_ws(1,2,3)); @@ -1354,7 +1354,7 @@ create table t1 as select concat_ws(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(group_concat(1,2,3)); @@ -1382,7 +1382,7 @@ create table t1 as select concat(last_insert_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(benchmark(0,0))); @@ -1392,7 +1392,7 @@ create table t1 as select concat(benchmark(0,0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sleep(0))); @@ -1402,7 +1402,7 @@ create table t1 as select concat(sleep(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(is_free_lock('xxxx'))); @@ -1436,7 +1436,7 @@ create table t1 as select concat(crc32('')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(uncompressed_length(''))); @@ -1453,7 +1453,7 @@ create table t1 as select concat(connection_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(inet_aton('127.1.1.1'))); @@ -1489,7 +1489,7 @@ create table t1 as select concat(row_count()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(found_rows())); @@ -1499,21 +1499,21 @@ create table t1 as select concat(found_rows()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid_short()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) NOT NULL + `c1` varchar(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(36) CHARACTER SET utf8 NOT NULL + `c1` varchar(36) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select coercibility(uuid()), coercibility(cast('a' as char character set latin1)); @@ -1526,7 +1526,7 @@ create table t1 as select concat(uuid(), cast('a' as char character set latin1)) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(37) NOT NULL + `c1` varchar(37) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(master_pos_wait('non-existent',0,2)) as c1; @@ -1546,7 +1546,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL, + `c1` varchar(1) DEFAULT NULL, `c2` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -1604,7 +1604,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) NOT NULL, + `c1` varchar(4) DEFAULT NULL, `c2` decimal(2,1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -1643,7 +1643,7 @@ create table t1 as select concat('a'='a' IS TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a'='a' IS NOT TRUE)); @@ -1653,7 +1653,7 @@ create table t1 as select concat('a'='a' IS NOT TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(NOT 'a'='a')); @@ -1663,7 +1663,7 @@ create table t1 as select concat(NOT 'a'='a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NULL)); @@ -1673,7 +1673,7 @@ create table t1 as select concat('a' IS NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NOT NULL)); @@ -1683,7 +1683,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' rlike 'a')); @@ -1693,7 +1693,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(strcmp('a','b'))); @@ -1703,7 +1703,7 @@ create table t1 as select concat(strcmp('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' like 'a')); @@ -1713,7 +1713,7 @@ create table t1 as select concat('a' like 'b') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' between 'b' and 'c')); @@ -1723,7 +1723,7 @@ create table t1 as select concat('a' between 'b' and 'c') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' in ('a','b'))); @@ -1733,7 +1733,7 @@ create table t1 as select concat('a' in ('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(interval(23, 1, 15, 17, 30, 44, 200))); @@ -1743,7 +1743,7 @@ create table t1 as select concat(interval(23, 1, 15, 17, 30, 44, 200)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 (a varchar(10), fulltext key(a)); @@ -1775,7 +1775,7 @@ create table t1 as select concat(ifnull(1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ifnull(1.1,1.1))); @@ -1785,7 +1785,7 @@ create table t1 as select concat(ifnull(1.1,1.1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) NOT NULL + `c1` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(if(1,'b',1)); @@ -1815,7 +1815,7 @@ create table t1 as select concat(if(1,1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(nullif(1,2))); @@ -1980,12 +1980,13 @@ create table t1 as select concat(period_add(200902, 2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(6) NOT NULL + `c1` varchar(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(period_diff(200902, 200802))); hex(concat(period_diff(200902, 200802))) 3132 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 as select concat(period_add(200902, 200802)) as c1; Warnings: Warning 1265 Data truncated for column 'c1' at row 1 @@ -2189,21 +2190,21 @@ create table t1 as select concat(curdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_date()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(curtime()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat('a',20) as c1 limit 0; @@ -2219,7 +2220,7 @@ create table t1 as select concat(utc_time()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sec_to_time(2378))); @@ -2312,21 +2313,21 @@ create table t1 as select concat(now()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) NOT NULL + `c1` varchar(19) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_timestamp()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) NOT NULL + `c1` varchar(19) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(sysdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) NOT NULL + `c1` varchar(19) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(addtime('00:00:00','11:22:33'))); @@ -2366,7 +2367,7 @@ create table t1 as select export_set(1,2,3,4,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(127) NOT NULL + `c1` varchar(127) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(insert(1133,3,0,22)); @@ -2376,7 +2377,7 @@ create table t1 as select insert(1133,3,0,22) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(6) NOT NULL + `c1` varchar(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lcase(123)); @@ -2386,7 +2387,7 @@ create table t1 as select lcase(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(123,1)); @@ -2396,7 +2397,7 @@ create table t1 as select left(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lower(123)); @@ -2406,7 +2407,7 @@ create table t1 as select lower(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) NOT NULL + `c1` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lpad(1,2,0)); @@ -2416,7 +2417,7 @@ create table t1 as select lpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ltrim(1)); @@ -2426,7 +2427,7 @@ create table t1 as select ltrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(mid(1,1,1)); @@ -2436,7 +2437,7 @@ create table t1 as select mid(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(repeat(1,2)); @@ -2446,7 +2447,7 @@ create table t1 as select repeat(1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(replace(1,1,2)); @@ -2456,7 +2457,7 @@ create table t1 as select replace(1,1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(reverse(12)); @@ -2466,7 +2467,7 @@ create table t1 as select reverse(12) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(right(123,1)); @@ -2476,7 +2477,7 @@ create table t1 as select right(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rpad(1,2,0)); @@ -2486,7 +2487,7 @@ create table t1 as select rpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) NOT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rtrim(1)); @@ -2496,7 +2497,7 @@ create table t1 as select rtrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(soundex(1)); @@ -2506,7 +2507,7 @@ create table t1 as select soundex(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) NOT NULL + `c1` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(substring(1,1,1)); @@ -2516,7 +2517,7 @@ create table t1 as select substring(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(trim(1)); @@ -2526,7 +2527,7 @@ create table t1 as select trim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ucase(1)); @@ -2536,7 +2537,7 @@ create table t1 as select ucase(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(upper(1)); @@ -2546,14 +2547,14 @@ create table t1 as select upper(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) NOT NULL + `c1` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat(' ', 64) as a limit 0; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(64) NOT NULL + `a` varchar(64) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ("1.1"), ("2.1"); select a, hex(a) from t1; @@ -2803,7 +2804,7 @@ create table t2 as select concat(a) from t1; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `concat(a)` varchar(19) NOT NULL + `concat(a)` varchar(19) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1, t2; create table t1 (a date); @@ -3102,7 +3103,7 @@ insert into t1 values ('2001-02-03 04:05:06'); create view v1(a) as select concat(a) from t1; show columns from v1; Field Type Null Key Default Extra -a varchar(19) NO +a varchar(19) YES NULL select hex(a) from v1; hex(a) 303030302D30302D30302030303A30303A3030 @@ -3353,14 +3354,14 @@ CREATE TABLE t2 AS SELECT CONCAT_WS(1,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `CONCAT_WS(1,2,3)` varchar(3) NOT NULL + `CONCAT_WS(1,2,3)` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT INSERT(1133,3,0,22) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `INSERT(1133,3,0,22)` varchar(6) NOT NULL + `INSERT(1133,3,0,22)` varchar(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LCASE(a) FROM t1; @@ -3381,35 +3382,35 @@ CREATE TABLE t2 AS SELECT REPEAT(1,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPEAT(1,2)` varchar(2) NOT NULL + `REPEAT(1,2)` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LEFT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LEFT(123,2)` varchar(2) NOT NULL + `LEFT(123,2)` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RIGHT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RIGHT(123,2)` varchar(2) NOT NULL + `RIGHT(123,2)` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LTRIM(123)` varchar(3) NOT NULL + `LTRIM(123)` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RTRIM(123)` varchar(3) NOT NULL + `RTRIM(123)` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT ELT(1,111,222,333) FROM t1; @@ -3423,35 +3424,35 @@ CREATE TABLE t2 AS SELECT REPLACE(111,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPLACE(111,2,3)` varchar(3) NOT NULL + `REPLACE(111,2,3)` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SUBSTRING_INDEX(111,111,1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SUBSTRING_INDEX(111,111,1)` varchar(3) NOT NULL + `SUBSTRING_INDEX(111,111,1)` varchar(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAKE_SET(111,222,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `MAKE_SET(111,222,3)` varchar(5) NOT NULL + `MAKE_SET(111,222,3)` varchar(5) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SOUNDEX(1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SOUNDEX(1)` varchar(4) NOT NULL + `SOUNDEX(1)` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT EXPORT_SET(1,'Y','N','',8); SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `EXPORT_SET(1,'Y','N','',8)` varchar(64) NOT NULL + `EXPORT_SET(1,'Y','N','',8)` varchar(64) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; @@ -3679,7 +3680,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) NOT NULL + `a` varchar(5) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -3923,7 +3924,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL + `a` varchar(5) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -4167,7 +4168,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL + `a` varchar(5) CHARACTER SET latin1 COLLATE latin1_general_cs DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -4411,7 +4412,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varbinary(5) NOT NULL + `a` varbinary(5) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -4635,6 +4636,7 @@ set names latin1; # Start of 10.0 tests # # Start of ctype_unescape.inc +SET sql_mode = ''; SET @query=_binary'SELECT CHARSET(\'test\'),@@character_set_client,@@character_set_connection'; PREPARE stmt FROM @query; EXECUTE stmt; @@ -7697,6 +7699,7 @@ DROP FUNCTION wellformedness; DROP FUNCTION mysql_real_escape_string_generated; DROP FUNCTION iswellformed; DROP TABLE allbytes; +SET sql_mode = DEFAULT; # End of ctype_backslash.inc SET NAMES latin1; # @@ -7706,7 +7709,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -7729,7 +7732,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -7752,7 +7755,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -7775,7 +7778,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) NOT NULL + `c1` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -7801,7 +7804,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) NOT NULL + `a` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -7827,7 +7830,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL + `c1` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -7850,7 +7853,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL + `c1` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -7873,7 +7876,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL + `c1` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -7896,7 +7899,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL + `c1` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -7922,7 +7925,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL + `a` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -7982,7 +7985,7 @@ HEX(CONVERT(' 3F78 SET NAMES utf8; CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); -INSERT INTO t1 VALUES ('Â'),('Â#'); +INSERT IGNORE INTO t1 VALUES ('Â'),('Â#'); Warnings: Warning 1366 Incorrect string value: '\xC2' for column 'a' at row 1 Warning 1366 Incorrect string value: '\xC2#' for column 'a' at row 2 diff --git a/mysql-test/r/ctype_latin1_de.result b/mysql-test/r/ctype_latin1_de.result index d34d132e3a9..2d3803fba18 100644 --- a/mysql-test/r/ctype_latin1_de.result +++ b/mysql-test/r/ctype_latin1_de.result @@ -490,7 +490,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) COLLATE latin1_german2_ci NOT NULL, + `a` varchar(1) COLLATE latin1_german2_ci DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -565,7 +565,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) COLLATE latin1_german2_ci NOT NULL + `a` varchar(5) COLLATE latin1_german2_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/r/ctype_latin2.result b/mysql-test/r/ctype_latin2.result index 634640cab1d..d8fd22b5322 100644 --- a/mysql-test/r/ctype_latin2.result +++ b/mysql-test/r/ctype_latin2.result @@ -416,7 +416,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET latin2 NOT NULL + `a` varchar(5) CHARACTER SET latin2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -626,7 +626,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(64) CHARACTER SET latin2 NOT NULL + `a` varchar(64) CHARACTER SET latin2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (''); SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; @@ -697,7 +697,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET latin2 COLLATE latin2_bin NOT NULL + `a` varchar(5) CHARACTER SET latin2 COLLATE latin2_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/r/ctype_latin2_ch.result b/mysql-test/r/ctype_latin2_ch.result index e559689fdd0..87357a49197 100644 --- a/mysql-test/r/ctype_latin2_ch.result +++ b/mysql-test/r/ctype_latin2_ch.result @@ -52,7 +52,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs NOT NULL + `c1` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -75,7 +75,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs NOT NULL + `c1` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -98,7 +98,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs NOT NULL + `c1` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -121,7 +121,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs NOT NULL + `c1` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -147,7 +147,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs NOT NULL + `a` varchar(10) CHARACTER SET latin2 COLLATE latin2_czech_cs DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -530,7 +530,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET latin2 COLLATE latin2_czech_cs NOT NULL + `a` varchar(5) CHARACTER SET latin2 COLLATE latin2_czech_cs DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/r/ctype_ldml.result b/mysql-test/r/ctype_ldml.result index 237646ade77..3ce50331ed0 100644 --- a/mysql-test/r/ctype_ldml.result +++ b/mysql-test/r/ctype_ldml.result @@ -165,7 +165,7 @@ DROP TABLE t1; # Bug#43827 Server closes connections and restarts # CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_test_ci); -INSERT INTO t1 SELECT REPEAT('a',11); +INSERT IGNORE INTO t1 SELECT REPEAT('a',11); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 DROP TABLE t1; diff --git a/mysql-test/r/ctype_many.result b/mysql-test/r/ctype_many.result index 59443a3a2d5..d73a478b0c0 100644 --- a/mysql-test/r/ctype_many.result +++ b/mysql-test/r/ctype_many.result @@ -1302,6 +1302,7 @@ CYR SMALL YA CYR CAPIT YA CYR SMALL YA CYR SMALL YA SET CHARACTER SET utf8; ALTER TABLE t1 ADD ucs2_f CHAR(32) CHARACTER SET ucs2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CHANGE ucs2_f ucs2_f CHAR(32) UNICODE NOT NULL; INSERT INTO t1 (ucs2_f,comment) VALUES (0x0391,'GREEK CAPIT ALPHA'); INSERT INTO t1 (ucs2_f,comment) VALUES (0x0392,'GREEK CAPIT BETA'); @@ -1764,7 +1765,7 @@ DROP TABLE t1; CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf32); CREATE TABLE t2 (a VARCHAR(10) CHARACTER SET ucs2); INSERT INTO t1 VALUES (0x10082), (0x12345); -INSERT INTO t2 SELECT * FROM t1; +INSERT IGNORE INTO t2 SELECT * FROM t1; Warnings: Warning 1366 Incorrect string value: '\x00\x01\x00\x82' for column 'a' at row 1 Warning 1366 Incorrect string value: '\x00\x01\x23\x45' for column 'a' at row 2 diff --git a/mysql-test/r/ctype_mb.result b/mysql-test/r/ctype_mb.result index b6e93bae65a..015457cc1b3 100644 --- a/mysql-test/r/ctype_mb.result +++ b/mysql-test/r/ctype_mb.result @@ -15,7 +15,7 @@ t1 CREATE TABLE `t1` ( `c2` varchar(4) CHARACTER SET utf8 NOT NULL, `c3` char(4) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 VALUES ('aaaabbbbccccdddd','aaaabbbbccccdddd','aaaabbbbccccdddd'); +INSERT IGNORE INTO t1 VALUES ('aaaabbbbccccdddd','aaaabbbbccccdddd','aaaabbbbccccdddd'); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 diff --git a/mysql-test/r/ctype_recoding.result b/mysql-test/r/ctype_recoding.result index 93f1639e88d..806d9dc6997 100644 --- a/mysql-test/r/ctype_recoding.result +++ b/mysql-test/r/ctype_recoding.result @@ -169,7 +169,7 @@ ERROR HY000: Invalid utf8 character string: 'good\xD0\xCC\xCF\xC8\xCF' set names latin1; create table t1 (a char(10) character set koi8r, b text character set koi8r); insert into t1 values ('test','test'); -insert into t1 values ('ÊÃÕË','ÊÃÕË'); +insert ignore into t1 values ('ÊÃÕË','ÊÃÕË'); Warnings: Warning 1366 Incorrect string value: '\xCA\xC3\xD5\xCB' for column 'a' at row 1 Warning 1366 Incorrect string value: '\xCA\xC3\xD5\xCB' for column 'b' at row 1 diff --git a/mysql-test/r/ctype_sjis.result b/mysql-test/r/ctype_sjis.result index 50938fada63..756e7a11d93 100644 --- a/mysql-test/r/ctype_sjis.result +++ b/mysql-test/r/ctype_sjis.result @@ -193,30 +193,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; # # MDEV-4842 STR_TO_DATE does not work with UCS2/UTF16/UTF32 @@ -230,8 +218,8 @@ STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra -subject varchar(64) NO NULL -pattern varchar(64) NO NULL +subject varchar(64) YES NULL +pattern varchar(64) YES NULL INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d'); SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1; HEX(subject) HEX(pattern) STR_TO_DATE(subject, pattern) @@ -359,30 +347,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SET NAMES sjis; SELECT HEX('²“‘@Œ\') FROM DUAL; @@ -424,7 +400,7 @@ FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (head NOT BETWEEN 'A1' AND 'DF') AND (tail BETWEEN '20' AND 'FF') ORDER BY head, tail; -INSERT t1 (code) SELECT head FROM head WHERE (head BETWEEN 'A1' AND 'DF'); +INSERT IGNORE t1 (code) SELECT head FROM head WHERE (head BETWEEN 'A1' AND 'DF'); Warnings: Warning 1364 Field 'a' doesn't have a default value DROP TEMPORARY TABLE head, tail; @@ -434,7 +410,7 @@ t1 CREATE TABLE `t1` ( `code` varchar(8) DEFAULT NULL, `a` varchar(1) CHARACTER SET sjis NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; Warnings: Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1 Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2 @@ -687,138 +663,138 @@ code a 81F0 â„« Warnings: Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81EB to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81EC to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81ED to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81EE to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81EF to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81F8 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81F9 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81FA to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81FB to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8240 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8241 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8242 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8243 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8244 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8245 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8246 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8247 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8248 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8249 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824A to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824B to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824C to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824D to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824E to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8259 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825A to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825B to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825C to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825D to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825E to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825F to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x827A to 'utf8' SELECT * FROM t1 WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code; code a Warnings: Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81AD to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81AE to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81AF to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B0 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B1 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B2 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B3 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B4 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B5 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B6 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81B7 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C0 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C1 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C2 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C3 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C4 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C5 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C6 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81C7 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81CF to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D0 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D1 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D2 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D3 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D4 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D5 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D6 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D7 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D8 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81D9 to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81E9 to 'utf8' -Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8' Warning 1977 Cannot convert 'sjis' character 0x81EA to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81EB to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81EC to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81ED to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81EE to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81EF to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81F8 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81F9 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81FA to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x81FB to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8240 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8241 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8242 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8243 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8244 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8245 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8246 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8247 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8248 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8249 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824A to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824B to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824C to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824D to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x824E to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x8259 to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825A to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825B to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825C to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825D to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825E to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x825F to 'utf8' +Warning 1977 Cannot convert 'sjis' character 0x827A to 'utf8' # # WL#3090 Japanese Character Set adjustments # Test sjis->Unicode conversion @@ -14972,7 +14948,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET sjis NOT NULL + `a` varchar(5) CHARACTER SET sjis DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -15231,7 +15207,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET sjis COLLATE sjis_bin NOT NULL + `a` varchar(5) CHARACTER SET sjis COLLATE sjis_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -15469,6 +15445,7 @@ hex(weight_string(cast(0x814081408140 as char),25, 4, 0xC0)) # Start of 10.0 tests # # Start of ctype_unescape.inc +SET sql_mode = ''; SET @query=_binary'SELECT CHARSET(\'test\'),@@character_set_client,@@character_set_connection'; PREPARE stmt FROM @query; EXECUTE stmt; @@ -18531,6 +18508,7 @@ DROP FUNCTION wellformedness; DROP FUNCTION mysql_real_escape_string_generated; DROP FUNCTION iswellformed; DROP TABLE allbytes; +SET sql_mode = DEFAULT; # End of ctype_backslash.inc SET NAMES sjis; # Start of ctype_E05C.inc @@ -18574,7 +18552,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ',10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET sjis NOT NULL + `a` varchar(10) CHARACTER SET sjis DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\'),('à\t'); INSERT INTO t1 VALUES ('\\à\'),('\\à\t'),('\\à\t\t'); @@ -18613,7 +18591,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET sjis NOT NULL + `a` varchar(10) CHARACTER SET sjis DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (BINARY('à\')),(BINARY('à\t')); INSERT INTO t1 VALUES (BINARY('\\à\')),(BINARY('\\à\t')),(BINARY('\\à\t\t')); @@ -18652,7 +18630,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET sjis NOT NULL + `a` varchar(10) CHARACTER SET sjis DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_BINARY'à\'),(_BINARY'à\t'); INSERT INTO t1 VALUES (_BINARY'\\à\'),(_BINARY'\\à\t'),(_BINARY'\\à\t\t'); @@ -18698,7 +18676,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET sjis NOT NULL + `a` varchar(10) CHARACTER SET sjis DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\['),('\à\['); SELECT HEX(a) FROM t1; @@ -18718,7 +18696,7 @@ CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varbinary(10) NOT NULL + `a` varbinary(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('à\['),('\à\['); SELECT HEX(a) FROM t1; diff --git a/mysql-test/r/ctype_swe7.result b/mysql-test/r/ctype_swe7.result index 8aeb05eaa3b..63da7d362ca 100644 --- a/mysql-test/r/ctype_swe7.result +++ b/mysql-test/r/ctype_swe7.result @@ -3,6 +3,7 @@ # SET NAMES swe7; # Start of ctype_unescape.inc +SET sql_mode = ''; SET @query=_binary'SELECT CHARSET(\'test\'),@@character_set_client,@@character_set_connection'; PREPARE stmt FROM @query; EXECUTE stmt; @@ -3065,6 +3066,7 @@ DROP FUNCTION wellformedness; DROP FUNCTION mysql_real_escape_string_generated; DROP FUNCTION iswellformed; DROP TABLE allbytes; +SET sql_mode = DEFAULT; # End of ctype_backslash.inc # # End of 10.0 tests diff --git a/mysql-test/r/ctype_tis620.result b/mysql-test/r/ctype_tis620.result index 3dbccf9ccb0..d5b4c632c31 100644 --- a/mysql-test/r/ctype_tis620.result +++ b/mysql-test/r/ctype_tis620.result @@ -3122,7 +3122,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET tis620 NOT NULL + `c1` varchar(10) CHARACTER SET tis620 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -3145,7 +3145,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET tis620 NOT NULL + `c1` varchar(10) CHARACTER SET tis620 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -3168,7 +3168,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET tis620 NOT NULL + `c1` varchar(10) CHARACTER SET tis620 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -3191,7 +3191,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET tis620 NOT NULL + `c1` varchar(10) CHARACTER SET tis620 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -3217,7 +3217,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET tis620 NOT NULL + `a` varchar(10) CHARACTER SET tis620 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -3338,7 +3338,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin NOT NULL + `c1` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -3361,7 +3361,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin NOT NULL + `c1` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -3384,7 +3384,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin NOT NULL + `c1` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -3407,7 +3407,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin NOT NULL + `c1` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -3433,7 +3433,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin NOT NULL + `a` varchar(10) CHARACTER SET tis620 COLLATE tis620_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -3486,7 +3486,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET tis620 NOT NULL + `a` varchar(5) CHARACTER SET tis620 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -3679,7 +3679,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET tis620 COLLATE tis620_bin NOT NULL + `a` varchar(5) CHARACTER SET tis620 COLLATE tis620_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result index 3d93d7f201e..6c6dceba9cb 100644 --- a/mysql-test/r/ctype_uca.result +++ b/mysql-test/r/ctype_uca.result @@ -6080,7 +6080,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -6326,7 +6326,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, + `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -6520,30 +6520,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; set names utf8; End for 5.0 tests @@ -6746,7 +6734,7 @@ ADD KEY(ch); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, + `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), KEY `ch` (`ch`) @@ -6834,7 +6822,7 @@ aÖ€ EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†' ORDER BY ch; @@ -6861,7 +6849,7 @@ Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†b' ORDER BY ch; @@ -6894,7 +6882,7 @@ z EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†' ORDER BY ch; @@ -6905,7 +6893,7 @@ Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†b' ORDER BY ch; @@ -6990,7 +6978,7 @@ ADD KEY(ch); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, + `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), KEY `ch` (`ch`) @@ -7245,7 +7233,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET ucs2 COLLATE ucs2_unicode_ci NOT NULL + `a` varchar(5) CHARACTER SET ucs2 COLLATE ucs2_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -7489,7 +7477,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL + `a` varchar(5) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -8117,7 +8105,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL, + `a` varchar(1) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -8147,7 +8135,7 @@ CREATE TABLE t1 AS SELECT repeat('a', 10) as c LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL + `c` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_utf32 0x0180),(_utf32 0x023A); INSERT INTO t1 VALUES (_utf32 0x023B),(_utf32 0x023C); @@ -8420,7 +8408,7 @@ F09090A8 30D2 ð¨ ALTER TABLE t1 ADD KEY(c); EXPLAIN SELECT hex(c) FROM t1 WHERE c LIKE 'a%' ORDER BY c; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range c c 42 NULL 3 Using where; Using index +1 SIMPLE t1 range c c 43 NULL 3 Using where; Using index SELECT hex(c), hex(weight_string(c)) FROM t1 WHERE c LIKE 'a%' ORDER BY c; hex(c) hex(weight_string(c)) 61 120F @@ -8451,7 +8439,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -8474,7 +8462,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -8497,7 +8485,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -8520,7 +8508,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -8546,7 +8534,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL + `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -8571,7 +8559,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('ae'),('ä'); SELECT * FROM t1 WHERE c1='ä'; @@ -8609,7 +8597,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -8632,7 +8620,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -8655,7 +8643,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -8678,7 +8666,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -8704,7 +8692,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL + `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -8729,7 +8717,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_german2_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('ae'),('ä'); SELECT * FROM t1 WHERE c1='ä'; @@ -8782,7 +8770,7 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `s1` varchar(64) CHARACTER SET utf8 COLLATE utf8_myanmar_ci NOT NULL, + `s1` varchar(64) CHARACTER SET utf8 COLLATE utf8_myanmar_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 (s1) VALUES @@ -11358,7 +11346,7 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `s1` varchar(64) CHARACTER SET ucs2 COLLATE ucs2_myanmar_ci NOT NULL, + `s1` varchar(64) CHARACTER SET ucs2 COLLATE ucs2_myanmar_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 (s1) VALUES @@ -13998,7 +13986,7 @@ CREATE TABLE t1 AS SELECT SPACE(3) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(3) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 NOT NULL + `a` varchar(3) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (SPACE(0)),(SPACE(1)),(SPACE(2)); SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(8))) FROM t1; @@ -14031,7 +14019,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_ucs2 0x3400); INSERT INTO t1 VALUES (_ucs2 0xF001); @@ -14044,7 +14032,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('A'),('À'),('Ã'),('Â'),('Ã'),('Ä'),('Ã…'); SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a; @@ -14103,7 +14091,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('cota'),('cote'),('cotz'); INSERT INTO t1 VALUES ('coté'),('côte'),('côté'),('cotë'),('côtë'); @@ -14692,7 +14680,7 @@ CREATE TABLE t1 AS SELECT SPACE(3) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(3) CHARACTER SET ucs2 COLLATE ucs2_thai_520_w2 NOT NULL + `a` varchar(3) CHARACTER SET ucs2 COLLATE ucs2_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (SPACE(0)),(SPACE(1)),(SPACE(2)); SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(8))) FROM t1; @@ -14725,7 +14713,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_ucs2 0x3400); INSERT INTO t1 VALUES (_ucs2 0xF001); @@ -14738,7 +14726,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('A'),('À'),('Ã'),('Â'),('Ã'),('Ä'),('Ã…'); SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a; @@ -14797,7 +14785,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('cota'),('cote'),('cotz'); INSERT INTO t1 VALUES ('coté'),('côte'),('côté'),('cotë'),('côtë'); diff --git a/mysql-test/r/ctype_uca_innodb.result b/mysql-test/r/ctype_uca_innodb.result index f189e698da1..c04a99c8cd3 100644 --- a/mysql-test/r/ctype_uca_innodb.result +++ b/mysql-test/r/ctype_uca_innodb.result @@ -15,7 +15,7 @@ ADD KEY(ch); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, + `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), KEY `ch` (`ch`) @@ -103,7 +103,7 @@ aÖ€ EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†' ORDER BY ch; @@ -130,7 +130,7 @@ Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†b' ORDER BY ch; @@ -163,7 +163,7 @@ z EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†' ORDER BY ch; @@ -174,7 +174,7 @@ Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†b' ORDER BY ch; diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 9c5a33f23e5..389a5d3850a 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -55,7 +55,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -196,8 +196,8 @@ RPAD(_ucs2 X'0420',10,_ucs2 X'0421') r; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `l` varchar(10) CHARACTER SET ucs2 NOT NULL, - `r` varchar(10) CHARACTER SET ucs2 NOT NULL + `l` varchar(10) CHARACTER SET ucs2 DEFAULT NULL, + `r` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # @@ -933,7 +933,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET ucs2 NOT NULL, + `a` varchar(1) CHARACTER SET ucs2 DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -959,30 +959,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; # # MDEV-4842 STR_TO_DATE does not work with UCS2/UTF16/UTF32 @@ -996,8 +984,8 @@ STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra -subject varchar(64) NO NULL -pattern varchar(64) NO NULL +subject varchar(64) YES NULL +pattern varchar(64) YES NULL INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d'); SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1; HEX(subject) HEX(pattern) STR_TO_DATE(subject, pattern) @@ -1104,30 +1092,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; select hex(substr(_ucs2 0x00e400e50068,1)); hex(substr(_ucs2 0x00e400e50068,1)) @@ -1156,7 +1132,7 @@ Field1 -1 DROP TABLE t1; CREATE TABLE t1 (Field1 int(10) unsigned default '0'); -INSERT INTO t1 VALUES ('-1'); +INSERT IGNORE INTO t1 VALUES ('-1'); Warnings: Warning 1264 Out of range value for column 'Field1' at row 1 DROP TABLE t1; @@ -1622,7 +1598,7 @@ create table t1 as select concat(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -1635,7 +1611,7 @@ create table t1 as select concat(18446744073709551615) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(20) CHARACTER SET ucs2 NOT NULL + `c1` varchar(20) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -1648,7 +1624,7 @@ create table t1 as select concat(1.1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET ucs2 NOT NULL + `c1` varchar(4) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -1661,7 +1637,7 @@ create table t1 as select concat(1+2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1-2)); @@ -1671,7 +1647,7 @@ create table t1 as select concat(1-2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1*2)); @@ -1681,7 +1657,7 @@ create table t1 as select concat(1*2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1/2)); @@ -1721,7 +1697,7 @@ create table t1 as select concat(-1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-(1+2))); @@ -1731,7 +1707,7 @@ create table t1 as select concat(-(1+2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET ucs2 NOT NULL + `c1` varchar(4) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1|2)); @@ -1741,7 +1717,7 @@ create table t1 as select concat(1|2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1&2)); @@ -1751,7 +1727,7 @@ create table t1 as select concat(1&2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_count(12))); @@ -1761,7 +1737,7 @@ create table t1 as select concat(bit_count(12)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2<<1)); @@ -1771,7 +1747,7 @@ create table t1 as select concat(2<<1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2>>1)); @@ -1781,7 +1757,7 @@ create table t1 as select concat(2>>1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(~0)); @@ -1791,7 +1767,7 @@ create table t1 as select concat(~0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(3^2)); @@ -1801,7 +1777,7 @@ create table t1 as select concat(3^2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(abs(-2))); @@ -1811,7 +1787,7 @@ create table t1 as select concat(abs(-2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(concat(exp(2)),1)); @@ -1941,7 +1917,7 @@ create table t1 as select concat(degrees(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) CHARACTER SET ucs2 NOT NULL + `c1` varchar(23) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(radians(0))); @@ -1951,7 +1927,7 @@ create table t1 as select concat(radians(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) CHARACTER SET ucs2 NOT NULL + `c1` varchar(23) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ceiling(0.5))); @@ -1961,7 +1937,7 @@ create table t1 as select concat(ceiling(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET ucs2 NOT NULL + `c1` varchar(4) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(floor(0.5))); @@ -1971,7 +1947,7 @@ create table t1 as select concat(floor(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET ucs2 NOT NULL + `c1` varchar(4) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(round(0.5))); @@ -1981,7 +1957,7 @@ create table t1 as select concat(round(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sign(0.5))); @@ -1991,14 +1967,14 @@ create table t1 as select concat(sign(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(rand()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) CHARACTER SET ucs2 NOT NULL + `c1` varchar(23) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(length('a'))); @@ -2008,7 +1984,7 @@ create table t1 as select concat(length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(char_length('a'))); @@ -2018,7 +1994,7 @@ create table t1 as select concat(char_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_length('a'))); @@ -2028,7 +2004,7 @@ create table t1 as select concat(bit_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coercibility('a'))); @@ -2038,7 +2014,7 @@ create table t1 as select concat(coercibility('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(locate('a','a'))); @@ -2048,7 +2024,7 @@ create table t1 as select concat(locate('a','a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(11) CHARACTER SET ucs2 NOT NULL + `c1` varchar(11) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(field('c','a','b','c'))); @@ -2058,7 +2034,7 @@ create table t1 as select concat(field('c','a','b','c')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ascii(61))); @@ -2068,7 +2044,7 @@ create table t1 as select concat(ascii(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ord(61))); @@ -2078,7 +2054,7 @@ create table t1 as select concat(ord(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(find_in_set('b','a,b,c,d'))); @@ -2088,7 +2064,7 @@ create table t1 as select concat(find_in_set('b','a,b,c,d')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select md5('a'), hex(md5('a')); @@ -2098,7 +2074,7 @@ create table t1 as select md5('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(32) CHARACTER SET ucs2 NOT NULL + `c1` varchar(32) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select old_password('a'), hex(old_password('a')); @@ -2108,7 +2084,7 @@ create table t1 as select old_password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(16) CHARACTER SET ucs2 NOT NULL + `c1` varchar(16) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select password('a'), hex(password('a')); @@ -2118,7 +2094,7 @@ create table t1 as select password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(41) CHARACTER SET ucs2 NOT NULL + `c1` varchar(41) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha('a'), hex(sha('a')); @@ -2128,7 +2104,7 @@ create table t1 as select sha('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(40) CHARACTER SET ucs2 NOT NULL + `c1` varchar(40) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha1('a'), hex(sha1('a')); @@ -2138,7 +2114,7 @@ create table t1 as select sha1('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(40) CHARACTER SET ucs2 NOT NULL + `c1` varchar(40) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('-1' as signed))); @@ -2148,7 +2124,7 @@ create table t1 as select concat(cast('-1' as signed)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('1' as unsigned))); @@ -2158,7 +2134,7 @@ create table t1 as select concat(cast('1' as unsigned)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast(1/2 as decimal(5,5)))); @@ -2217,7 +2193,7 @@ create table t1 as select concat(least(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(greatest(1,2))); @@ -2227,7 +2203,7 @@ create table t1 as select concat(greatest(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(case when 11 then 22 else 33 end)); @@ -2237,7 +2213,7 @@ create table t1 as select concat(case when 11 then 22 else 33 end) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coalesce(1,2))); @@ -2247,7 +2223,7 @@ create table t1 as select concat(coalesce(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat_ws(1,2,3)); @@ -2257,7 +2233,7 @@ create table t1 as select concat_ws(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(group_concat(1,2,3)); @@ -2285,7 +2261,7 @@ create table t1 as select concat(last_insert_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(benchmark(0,0))); @@ -2295,7 +2271,7 @@ create table t1 as select concat(benchmark(0,0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sleep(0))); @@ -2305,7 +2281,7 @@ create table t1 as select concat(sleep(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(is_free_lock('xxxx'))); @@ -2339,7 +2315,7 @@ create table t1 as select concat(crc32('')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(uncompressed_length(''))); @@ -2356,7 +2332,7 @@ create table t1 as select concat(connection_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(inet_aton('127.1.1.1'))); @@ -2392,7 +2368,7 @@ create table t1 as select concat(row_count()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(found_rows())); @@ -2402,21 +2378,21 @@ create table t1 as select concat(found_rows()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid_short()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET ucs2 NOT NULL + `c1` varchar(21) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(36) CHARACTER SET utf8 NOT NULL + `c1` varchar(36) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select coercibility(uuid()), coercibility(cast('a' as char character set latin1)); @@ -2429,7 +2405,7 @@ create table t1 as select concat(uuid(), cast('a' as char character set latin1)) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(37) NOT NULL + `c1` varchar(37) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(master_pos_wait('non-existent',0,2)) as c1; @@ -2449,7 +2425,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL, + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL, `c2` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -2507,7 +2483,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET ucs2 NOT NULL, + `c1` varchar(4) CHARACTER SET ucs2 DEFAULT NULL, `c2` decimal(2,1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -2546,7 +2522,7 @@ create table t1 as select concat('a'='a' IS TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a'='a' IS NOT TRUE)); @@ -2556,7 +2532,7 @@ create table t1 as select concat('a'='a' IS NOT TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(NOT 'a'='a')); @@ -2566,7 +2542,7 @@ create table t1 as select concat(NOT 'a'='a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NULL)); @@ -2576,7 +2552,7 @@ create table t1 as select concat('a' IS NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NOT NULL)); @@ -2586,7 +2562,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' rlike 'a')); @@ -2596,7 +2572,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(strcmp('a','b'))); @@ -2606,7 +2582,7 @@ create table t1 as select concat(strcmp('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' like 'a')); @@ -2616,7 +2592,7 @@ create table t1 as select concat('a' like 'b') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' between 'b' and 'c')); @@ -2626,7 +2602,7 @@ create table t1 as select concat('a' between 'b' and 'c') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' in ('a','b'))); @@ -2636,7 +2612,7 @@ create table t1 as select concat('a' in ('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(interval(23, 1, 15, 17, 30, 44, 200))); @@ -2646,7 +2622,7 @@ create table t1 as select concat(interval(23, 1, 15, 17, 30, 44, 200)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 (a varchar(10), fulltext key(a)); @@ -2678,7 +2654,7 @@ create table t1 as select concat(ifnull(1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ifnull(1.1,1.1))); @@ -2688,7 +2664,7 @@ create table t1 as select concat(ifnull(1.1,1.1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET ucs2 NOT NULL + `c1` varchar(4) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(if(1,'b',1)); @@ -2718,7 +2694,7 @@ create table t1 as select concat(if(1,1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(nullif(1,2))); @@ -2883,12 +2859,13 @@ create table t1 as select concat(period_add(200902, 2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(6) CHARACTER SET ucs2 NOT NULL + `c1` varchar(6) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(period_diff(200902, 200802))); hex(concat(period_diff(200902, 200802))) 00310032 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 as select concat(period_add(200902, 200802)) as c1; Warnings: Warning 1265 Data truncated for column 'c1' at row 1 @@ -3092,21 +3069,21 @@ create table t1 as select concat(curdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_date()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(curtime()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat('a',20) as c1 limit 0; @@ -3122,7 +3099,7 @@ create table t1 as select concat(utc_time()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sec_to_time(2378))); @@ -3215,21 +3192,21 @@ create table t1 as select concat(now()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) CHARACTER SET ucs2 NOT NULL + `c1` varchar(19) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_timestamp()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) CHARACTER SET ucs2 NOT NULL + `c1` varchar(19) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(sysdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) CHARACTER SET ucs2 NOT NULL + `c1` varchar(19) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(addtime('00:00:00','11:22:33'))); @@ -3269,7 +3246,7 @@ create table t1 as select export_set(1,2,3,4,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(127) CHARACTER SET ucs2 NOT NULL + `c1` varchar(127) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(insert(1133,3,0,22)); @@ -3279,7 +3256,7 @@ create table t1 as select insert(1133,3,0,22) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(6) CHARACTER SET ucs2 NOT NULL + `c1` varchar(6) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lcase(123)); @@ -3289,7 +3266,7 @@ create table t1 as select lcase(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(123,1)); @@ -3299,7 +3276,7 @@ create table t1 as select left(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lower(123)); @@ -3309,7 +3286,7 @@ create table t1 as select lower(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET ucs2 NOT NULL + `c1` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lpad(1,2,0)); @@ -3319,7 +3296,7 @@ create table t1 as select lpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ltrim(1)); @@ -3329,7 +3306,7 @@ create table t1 as select ltrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(mid(1,1,1)); @@ -3339,7 +3316,7 @@ create table t1 as select mid(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(repeat(1,2)); @@ -3349,7 +3326,7 @@ create table t1 as select repeat(1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(replace(1,1,2)); @@ -3359,7 +3336,7 @@ create table t1 as select replace(1,1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(reverse(12)); @@ -3369,7 +3346,7 @@ create table t1 as select reverse(12) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(right(123,1)); @@ -3379,7 +3356,7 @@ create table t1 as select right(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rpad(1,2,0)); @@ -3389,7 +3366,7 @@ create table t1 as select rpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET ucs2 NOT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rtrim(1)); @@ -3399,7 +3376,7 @@ create table t1 as select rtrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(soundex(1)); @@ -3409,7 +3386,7 @@ create table t1 as select soundex(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET ucs2 NOT NULL + `c1` varchar(4) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(substring(1,1,1)); @@ -3419,7 +3396,7 @@ create table t1 as select substring(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(trim(1)); @@ -3429,7 +3406,7 @@ create table t1 as select trim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ucase(1)); @@ -3439,7 +3416,7 @@ create table t1 as select ucase(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(upper(1)); @@ -3449,14 +3426,14 @@ create table t1 as select upper(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 NOT NULL + `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat(' ', 64) as a limit 0; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(64) CHARACTER SET ucs2 NOT NULL + `a` varchar(64) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ("1.1"), ("2.1"); select a, hex(a) from t1; @@ -3706,7 +3683,7 @@ create table t2 as select concat(a) from t1; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `concat(a)` varchar(19) CHARACTER SET ucs2 NOT NULL + `concat(a)` varchar(19) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1, t2; create table t1 (a date); @@ -4005,7 +3982,7 @@ insert into t1 values ('2001-02-03 04:05:06'); create view v1(a) as select concat(a) from t1; show columns from v1; Field Type Null Key Default Extra -a varchar(19) NO +a varchar(19) YES NULL select hex(a) from v1; hex(a) 0030003000300030002D00300030002D00300030002000300030003A00300030003A00300030 @@ -4256,14 +4233,14 @@ CREATE TABLE t2 AS SELECT CONCAT_WS(1,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `CONCAT_WS(1,2,3)` varchar(3) CHARACTER SET ucs2 NOT NULL + `CONCAT_WS(1,2,3)` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT INSERT(1133,3,0,22) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `INSERT(1133,3,0,22)` varchar(6) CHARACTER SET ucs2 NOT NULL + `INSERT(1133,3,0,22)` varchar(6) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LCASE(a) FROM t1; @@ -4284,35 +4261,35 @@ CREATE TABLE t2 AS SELECT REPEAT(1,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPEAT(1,2)` varchar(2) CHARACTER SET ucs2 NOT NULL + `REPEAT(1,2)` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LEFT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LEFT(123,2)` varchar(2) CHARACTER SET ucs2 NOT NULL + `LEFT(123,2)` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RIGHT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RIGHT(123,2)` varchar(2) CHARACTER SET ucs2 NOT NULL + `RIGHT(123,2)` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LTRIM(123)` varchar(3) CHARACTER SET ucs2 NOT NULL + `LTRIM(123)` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RTRIM(123)` varchar(3) CHARACTER SET ucs2 NOT NULL + `RTRIM(123)` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT ELT(1,111,222,333) FROM t1; @@ -4326,35 +4303,35 @@ CREATE TABLE t2 AS SELECT REPLACE(111,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPLACE(111,2,3)` varchar(3) CHARACTER SET ucs2 NOT NULL + `REPLACE(111,2,3)` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SUBSTRING_INDEX(111,111,1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SUBSTRING_INDEX(111,111,1)` varchar(3) CHARACTER SET ucs2 NOT NULL + `SUBSTRING_INDEX(111,111,1)` varchar(3) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAKE_SET(111,222,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `MAKE_SET(111,222,3)` varchar(5) CHARACTER SET ucs2 NOT NULL + `MAKE_SET(111,222,3)` varchar(5) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SOUNDEX(1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SOUNDEX(1)` varchar(4) CHARACTER SET ucs2 NOT NULL + `SOUNDEX(1)` varchar(4) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT EXPORT_SET(1,'Y','N','',8); SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `EXPORT_SET(1,'Y','N','',8)` varchar(64) CHARACTER SET ucs2 NOT NULL + `EXPORT_SET(1,'Y','N','',8)` varchar(64) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; @@ -4534,6 +4511,7 @@ SET NAMES latin1; # # Bug #13832953 MY_STRNXFRM_UNICODE: ASSERTION `SRC' FAILED # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (c1 SET('','') CHARACTER SET ucs2); Warnings: Note 1291 Column 'c1' has duplicated value '' in SET @@ -4622,7 +4600,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET ucs2 NOT NULL + `a` varchar(5) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -4866,7 +4844,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL + `a` varchar(5) CHARACTER SET ucs2 COLLATE ucs2_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -5175,7 +5153,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(64) CHARACTER SET ucs2 NOT NULL + `a` varchar(64) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (''); SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; @@ -5318,7 +5296,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET ucs2 COLLATE ucs2_german2_ci NOT NULL, + `a` varchar(1) CHARACTER SET ucs2 COLLATE ucs2_german2_ci DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -5361,7 +5339,7 @@ SET sql_mode='strict_all_tables'; INSERT INTO t1 VALUES (CONVERT('9e99999999' USING ucs2)); ERROR 22003: Out of range value for column 'a' at row 1 SET sql_mode=DEFAULT; -INSERT INTO t1 VALUES (CONVERT('aaa' USING ucs2)); +INSERT IGNORE INTO t1 VALUES (CONVERT('aaa' USING ucs2)); Warnings: Warning 1366 Incorrect decimal value: 'aaa' for column 'a' at row 1 DROP TABLE t1; @@ -5379,7 +5357,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -5402,7 +5380,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -5425,7 +5403,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -5448,7 +5426,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -5474,7 +5452,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL + `a` varchar(10) CHARACTER SET ucs2 COLLATE ucs2_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -5500,7 +5478,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -5523,7 +5501,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -5546,7 +5524,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -5569,7 +5547,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET ucs2 NOT NULL + `c1` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -5595,7 +5573,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET ucs2 NOT NULL + `a` varchar(10) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; diff --git a/mysql-test/r/ctype_ujis.result b/mysql-test/r/ctype_ujis.result index 90db3474cef..93a31a2818c 100644 --- a/mysql-test/r/ctype_ujis.result +++ b/mysql-test/r/ctype_ujis.result @@ -2331,30 +2331,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SET collation_connection='ujis_bin'; create table t1 select repeat('a',4000) a; @@ -2478,39 +2466,27 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; select hex(convert(_ujis 0xA5FE41 using ucs2)); hex(convert(_ujis 0xA5FE41 using ucs2)) -003F0041 +NULL Warnings: Warning 1977 Cannot convert 'ujis' character 0xA5FE to 'ucs2' select hex(convert(_ujis 0x8FABF841 using ucs2)); hex(convert(_ujis 0x8FABF841 using ucs2)) -003F0041 +NULL Warnings: Warning 1977 Cannot convert 'ujis' character 0x8FABF8 to 'ucs2' DROP TABLE IF EXISTS t1, t2; @@ -2569,18 +2545,18 @@ CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 CREATE TEMPORARY TABLE tail AS SELECT concat(b1.b, b2.b) AS tail FROM t1 b1, t1 b2; DROP TABLE t1; CREATE TABLE t1 AS SELECT 'XXXXXX' AS code, ' ' AS a LIMIT 0; -INSERT INTO t1 (code) SELECT concat('8E', head) FROM head +INSERT IGNORE INTO t1 (code) SELECT concat('8E', head) FROM head WHERE (head BETWEEN 'A1' AND 'DF') ORDER BY head; Warnings: Warning 1364 Field 'a' doesn't have a default value -INSERT INTO t1 (code) SELECT concat(head, tail) +INSERT IGNORE INTO t1 (code) SELECT concat(head, tail) FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (head NOT BETWEEN '8E' AND '8F') AND (tail BETWEEN '20' AND 'FF') ORDER BY head, tail; Warnings: Warning 1364 Field 'a' doesn't have a default value -INSERT INTO t1 (code) SELECT concat('8F', head, tail) +INSERT IGNORE INTO t1 (code) SELECT concat('8F', head, tail) FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (tail BETWEEN '80' AND 'FF') ORDER BY head, tail; @@ -2593,7 +2569,7 @@ t1 CREATE TABLE `t1` ( `code` varchar(6) CHARACTER SET ujis NOT NULL, `a` varchar(1) CHARACTER SET ujis NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; Warnings: Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1 Warning 1366 Incorrect string value: '\x80!' for column 'a' at row 2 @@ -3084,69 +3060,69 @@ code a 8FAABC Ä¢ Warnings: Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2ED to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2EE to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2EF to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2F0 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2F1 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2FA to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2FB to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2FC to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2FD to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A1 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A2 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A3 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A4 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A5 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A6 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A7 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A8 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A9 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AA to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AB to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AC to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AD to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AE to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AF to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BA to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BB to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BC to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BD to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BE to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BF to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3C0 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3DB to 'utf8' SELECT * FROM t1 WHERE HEX(CAST(UPPER(a) AS CHAR CHARACTER SET utf8)) <> HEX(UPPER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code; @@ -3155,69 +3131,69 @@ code a 8FABB9 ǵ Warnings: Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2AF to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B0 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B1 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B2 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B3 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B4 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B5 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B6 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B7 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B8 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2B9 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C2 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C3 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C4 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C5 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C6 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C7 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C8 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2C9 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D1 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D2 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D3 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D4 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D5 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D6 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D7 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D8 to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2D9 to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2DA to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2DB to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2EB to 'utf8' -Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8' Warning 1977 Cannot convert 'ujis' character 0xA2EC to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2ED to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2EE to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2EF to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2F0 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2F1 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2FA to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2FB to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2FC to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA2FD to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A1 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A2 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A3 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A4 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A5 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A6 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A7 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A8 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3A9 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AA to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AB to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AC to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AD to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AE to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3AF to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BA to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BB to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BC to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BD to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BE to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3BF to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3C0 to 'utf8' +Warning 1977 Cannot convert 'ujis' character 0xA3DB to 'utf8' # # WL#3090 Japanese Character Set adjustments # Test sjis->Unicode conversion @@ -25318,7 +25294,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET ujis NOT NULL + `a` varchar(5) CHARACTER SET ujis DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -25751,7 +25727,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET ujis COLLATE ujis_bin NOT NULL + `a` varchar(5) CHARACTER SET ujis COLLATE ujis_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -26166,7 +26142,7 @@ hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char),25, 4, 0xC0)) # MDEV-6776 ujis and eucjmps erroneously accept 0x8EA0 as a valid byte sequence # CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET ujis); -INSERT INTO t1 VALUES (0x8EA0); +INSERT IGNORE INTO t1 VALUES (0x8EA0); SELECT HEX(a), CHAR_LENGTH(a) FROM t1; HEX(a) CHAR_LENGTH(a) 3F3F 2 @@ -26225,7 +26201,7 @@ DROP TABLE t1; # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis # CREATE TABLE t1 (a TEXT CHARACTER SET ujis); -LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET ujis IGNORE 4 LINES; +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' IGNORE INTO TABLE t1 CHARACTER SET ujis IGNORE 4 LINES; SELECT HEX(a) FROM t1; HEX(a) 3F diff --git a/mysql-test/r/ctype_ujis_ucs2.result b/mysql-test/r/ctype_ujis_ucs2.result index 3c63e7c0441..77961046346 100644 --- a/mysql-test/r/ctype_ujis_ucs2.result +++ b/mysql-test/r/ctype_ujis_ucs2.result @@ -1138,7 +1138,7 @@ update t1 set name='U+9FA3 ' where ujis=0x8FEDE2; update t1 set name='U+9FA5 ' where ujis=0x8FEDE3; update t1 set name='User defined range #2' where ujis >= 0x8FF5A1 and ujis <= 0x8FFEFE; update t1 set name='UNASSIGNED' where name=''; -update t1 set ucs2=ujis, ujis2=ucs2; +update ignore t1 set ucs2=ujis, ujis2=ucs2; Warnings: Warning 1366 Incorrect string value: '\xA2\xAF' for column 'ucs2' at row 237 Warning 1366 Incorrect string value: '\xA2\xB0' for column 'ucs2' at row 238 @@ -19129,7 +19129,7 @@ insert into t1 (ucs2,name) values (0xFFE0,'U+FFE0 FULLWIDTH CENT SIGN'); insert into t1 (ucs2,name) values (0xFFE1,'U+FFE1 FULLWIDTH POUND SIGN'); insert into t1 (ucs2,name) values (0xFFE2,'U+FFE2 FULLWIDTH NOT SIGN'); insert into t1 (ucs2,name) values (0xFFE4,'U+FFE4 FULLWIDTH BROKEN BAR'); -update t1 set ujis=ucs2; +update ignore t1 set ujis=ucs2; Warnings: Warning 1366 Incorrect string value: '\x00\xA5' for column 'ujis' at row 1 Warning 1366 Incorrect string value: '\x20\x14' for column 'ujis' at row 2 diff --git a/mysql-test/r/ctype_utf16.result b/mysql-test/r/ctype_utf16.result index 3f483c43902..2371dd54bff 100644 --- a/mysql-test/r/ctype_utf16.result +++ b/mysql-test/r/ctype_utf16.result @@ -101,8 +101,8 @@ RPAD(_utf16 X'0420',10,_utf16 X'0421') r; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `l` varchar(10) CHARACTER SET utf16 NOT NULL, - `r` varchar(10) CHARACTER SET utf16 NOT NULL + `l` varchar(10) CHARACTER SET utf16 DEFAULT NULL, + `r` varchar(10) CHARACTER SET utf16 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(l), hex(r) from t1; hex(l) hex(r) @@ -755,7 +755,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf16 COLLATE utf16_bin NOT NULL + `a` varchar(1) CHARACTER SET utf16 COLLATE utf16_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_utf8mb4 0xEFBE9D),(_utf8mb4 0xF0908E84); INSERT INTO t1 VALUES (_utf8mb4 0xCE85),(_utf8mb4 0xF4808080); @@ -1012,6 +1012,7 @@ DBFFDCFF drop table t1; create table t1 (s1 varchar(50) character set ucs2); insert into t1 values (0xdf84); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify column s1 varchar(50) character set utf16; Warnings: Warning 1366 Incorrect string value: '\xDF\x84' for column 's1' at row 1 @@ -1021,7 +1022,7 @@ hex(s1) drop table t1; create table t1 (s1 varchar(5) character set ucs2, s2 varchar(5) character set utf16); insert into t1 (s1) values (0xdf84); -update t1 set s2 = s1; +update ignore t1 set s2 = s1; Warnings: Warning 1366 Incorrect string value: '\xDF\x84' for column 's2' at row 1 select hex(s2) from t1; @@ -1250,7 +1251,7 @@ Warnings: Warning 1292 Truncated incorrect INTEGER value: '123456789123456789123x' create table t1 (a int); insert into t1 values ('-1234.1e2'); -insert into t1 values ('-1234.1e2xxxx'); +insert ignore into t1 values ('-1234.1e2xxxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 insert into t1 values ('-1234.1e2 '); @@ -1266,7 +1267,7 @@ create table t1 (a int); insert into t1 values ('1 '); Warnings: Note 1265 Data truncated for column 'a' at row 1 -insert into t1 values ('1 x'); +insert ignore into t1 values ('1 x'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; @@ -1274,6 +1275,7 @@ a 1 1 drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (a varchar(17000) character set utf16); Warnings: Note 1246 Converting column 'a' from VARCHAR to TEXT @@ -1419,7 +1421,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(64) CHARACTER SET utf16 NOT NULL + `a` varchar(64) CHARACTER SET utf16 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (''); SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; @@ -1468,7 +1470,7 @@ CREATE TABLE t1 AS SELECT repeat('a',2) as s1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `s1` varchar(2) CHARACTER SET utf16 NOT NULL + `s1` varchar(2) CHARACTER SET utf16 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('ab'),('AE'),('ab'),('AE'); SELECT * FROM t1 ORDER BY s1; @@ -1626,7 +1628,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf16 NOT NULL + `a` varchar(5) CHARACTER SET utf16 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -1876,7 +1878,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf16 COLLATE utf16_bin NOT NULL + `a` varchar(5) CHARACTER SET utf16 COLLATE utf16_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/r/ctype_utf16_uca.result b/mysql-test/r/ctype_utf16_uca.result index 0c478222650..1105225ed87 100644 --- a/mysql-test/r/ctype_utf16_uca.result +++ b/mysql-test/r/ctype_utf16_uca.result @@ -2810,7 +2810,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -3045,7 +3045,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf16 COLLATE utf16_unicode_ci NOT NULL, + `a` varchar(1) CHARACTER SET utf16 COLLATE utf16_unicode_ci DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -3228,7 +3228,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf16 COLLATE utf16_unicode_ci NOT NULL + `a` varchar(5) CHARACTER SET utf16 COLLATE utf16_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -3695,7 +3695,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf16 COLLATE utf16_german2_ci NOT NULL, + `a` varchar(1) CHARACTER SET utf16 COLLATE utf16_german2_ci DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -3726,7 +3726,7 @@ CREATE TABLE t1 AS SELECT repeat('a', 10) as c LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c` varchar(10) CHARACTER SET utf16 COLLATE utf16_unicode_520_ci NOT NULL + `c` varchar(10) CHARACTER SET utf16 COLLATE utf16_unicode_520_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_utf32 0x0180),(_utf32 0x023A); INSERT INTO t1 VALUES (_utf32 0x023B),(_utf32 0x023C); @@ -3999,7 +3999,7 @@ D801DC28 30D2 ð¨ ALTER TABLE t1 ADD KEY(c); EXPLAIN SELECT hex(c) FROM t1 WHERE c LIKE 'a%' ORDER BY c; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range c c 42 NULL 2 Using where; Using index +1 SIMPLE t1 range c c 43 NULL 2 Using where; Using index SELECT hex(c), hex(weight_string(c)) FROM t1 WHERE c LIKE 'a%' ORDER BY c; hex(c) hex(weight_string(c)) 0061 120F @@ -4042,7 +4042,7 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `s1` varchar(64) CHARACTER SET utf16 COLLATE utf16_myanmar_ci NOT NULL, + `s1` varchar(64) CHARACTER SET utf16 COLLATE utf16_myanmar_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 (s1) VALUES @@ -6628,7 +6628,7 @@ CREATE TABLE t1 AS SELECT SPACE(3) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(3) CHARACTER SET utf16 COLLATE utf16_thai_520_w2 NOT NULL + `a` varchar(3) CHARACTER SET utf16 COLLATE utf16_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (SPACE(0)),(SPACE(1)),(SPACE(2)); SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(8))) FROM t1; @@ -6661,7 +6661,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf16 COLLATE utf16_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf16 COLLATE utf16_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_ucs2 0x3400); INSERT INTO t1 VALUES (_ucs2 0xF001); @@ -6674,7 +6674,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf16 COLLATE utf16_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf16 COLLATE utf16_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('A'),('À'),('Ã'),('Â'),('Ã'),('Ä'),('Ã…'); SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a; @@ -6733,7 +6733,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf16 COLLATE utf16_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf16 COLLATE utf16_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('cota'),('cote'),('cotz'); INSERT INTO t1 VALUES ('coté'),('côte'),('côté'),('cotë'),('côtë'); diff --git a/mysql-test/r/ctype_utf16le.result b/mysql-test/r/ctype_utf16le.result index 1ba2cf600a4..0fedff7d3bf 100644 --- a/mysql-test/r/ctype_utf16le.result +++ b/mysql-test/r/ctype_utf16le.result @@ -82,7 +82,7 @@ CREATE TABLE t1 (a VARCHAR(10), pad INT, b VARCHAR(10)) CHARACTER SET utf16le; INSERT INTO t1 VALUES (_ucs2 X'0420', 10, _ucs2 X'0421'); INSERT INTO t1 VALUES (_ucs2 X'0420', 10, _ucs2 X'04210422'); INSERT INTO t1 VALUES (_ucs2 X'0420', 10, _ucs2 X'042104220423'); -INSERT INTO t1 VALUES (_ucs2 X'0420042104220423042404250426042704280429042A042B',10,_ucs2 X'042104220423'); +INSERT IGNORE INTO t1 VALUES (_ucs2 X'0420042104220423042404250426042704280429042A042B',10,_ucs2 X'042104220423'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (_utf32 X'010000', 10, _ucs2 X'0421'); @@ -102,8 +102,8 @@ RPAD(_utf16le X'2004',10,_utf16le X'2104') r; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `l` varchar(10) CHARACTER SET utf16le NOT NULL, - `r` varchar(10) CHARACTER SET utf16le NOT NULL + `l` varchar(10) CHARACTER SET utf16le DEFAULT NULL, + `r` varchar(10) CHARACTER SET utf16le DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT HEX(l), HEX(r) FROM t1; HEX(l) HEX(r) @@ -798,7 +798,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf16le COLLATE utf16le_bin NOT NULL + `a` varchar(1) CHARACTER SET utf16le COLLATE utf16le_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_utf8mb4 0xEFBE9D),(_utf8mb4 0xF0908E84); INSERT INTO t1 VALUES (_utf8mb4 0xCE85),(_utf8mb4 0xF4808080); @@ -1121,6 +1121,7 @@ DROP TABLE t1; # CREATE TABLE t1 (s1 VARCHAR(50) CHARACTER SET ucs2); INSERT INTO t1 VALUES (0xDF84); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY column s1 VARCHAR(50) CHARACTER SET utf16le; Warnings: Warning 1366 Incorrect string value: '\xDF\x84' for column 's1' at row 1 @@ -1133,7 +1134,7 @@ DROP TABLE t1; # CREATE TABLE t1 (s1 VARCHAR(5) CHARACTER SET ucs2, s2 VARCHAR(5) CHARACTER SET utf16le); INSERT INTO t1 (s1) VALUES (0xdf84); -UPDATE t1 set s2 = s1; +UPDATE IGNORE t1 set s2 = s1; Warnings: Warning 1366 Incorrect string value: '\xDF\x84' for column 's2' at row 1 SELECT HEX(s2) FROM t1; @@ -1470,7 +1471,7 @@ Warning 1292 Truncated incorrect INTEGER value: '123456789123456789123x' # CREATE TABLE t1 (a int); INSERT INTO t1 VALUES ('-1234.1e2'); -INSERT INTO t1 VALUES ('-1234.1e2xxxx'); +INSERT IGNORE INTO t1 VALUES ('-1234.1e2xxxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-1234.1e2 '); @@ -1524,7 +1525,7 @@ CREATE TABLE t1 (a int); INSERT INTO t1 VALUES ('1 '); Warnings: Note 1265 Data truncated for column 'a' at row 1 -INSERT INTO t1 VALUES ('1 x'); +INSERT IGNORE INTO t1 VALUES ('1 x'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; @@ -1535,6 +1536,7 @@ DROP TABLE t1; # # Testing auto-conversion to TEXT # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (a VARCHAR(17000) CHARACTER SET utf16le); Warnings: Note 1246 Converting column 'a' from VARCHAR to TEXT @@ -1690,7 +1692,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(64) CHARACTER SET utf16le NOT NULL + `a` varchar(64) CHARACTER SET utf16le DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (''); SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; @@ -1741,7 +1743,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',2) as s1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `s1` varchar(2) CHARACTER SET utf16le NOT NULL + `s1` varchar(2) CHARACTER SET utf16le DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('ab'),('AE'),('ab'),('AE'); SELECT * FROM t1 ORDER BY s1; @@ -1854,7 +1856,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf16le NOT NULL + `a` varchar(5) CHARACTER SET utf16le DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -2104,7 +2106,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf16le COLLATE utf16le_bin NOT NULL + `a` varchar(5) CHARACTER SET utf16le COLLATE utf16le_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/r/ctype_utf32.result b/mysql-test/r/ctype_utf32.result index ab2f8b14c41..e597af0f6b6 100644 --- a/mysql-test/r/ctype_utf32.result +++ b/mysql-test/r/ctype_utf32.result @@ -100,8 +100,8 @@ RPAD(_utf32 X'0420',10,_utf32 X'0421') r; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `l` varchar(10) CHARACTER SET utf32 NOT NULL, - `r` varchar(10) CHARACTER SET utf32 NOT NULL + `l` varchar(10) CHARACTER SET utf32 DEFAULT NULL, + `r` varchar(10) CHARACTER SET utf32 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(l), hex(r) from t1; hex(l) hex(r) @@ -754,7 +754,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf32 COLLATE utf32_bin NOT NULL + `a` varchar(1) CHARACTER SET utf32 COLLATE utf32_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_utf8mb4 0xEFBE9D),(_utf8mb4 0xF0908E84); INSERT INTO t1 VALUES (_utf8mb4 0xCE85),(_utf8mb4 0xF4808080); @@ -983,31 +983,31 @@ hex(a) drop table t1; create table t1 (utf32 varchar(2) character set utf32); Wrong character with pad -insert into t1 values (0x110000); +insert ignore into t1 values (0x110000); Warnings: Warning 1366 Incorrect string value: '\x11\x00\x00' for column 'utf32' at row 1 Wrong chsaracter without pad -insert into t1 values (0x00110000); +insert ignore into t1 values (0x00110000); Warnings: Warning 1366 Incorrect string value: '\x00\x11\x00\x00' for column 'utf32' at row 1 Wrong character with pad followed by another wrong character -insert into t1 values (0x11000000110000); +insert ignore into t1 values (0x11000000110000); Warnings: Warning 1366 Incorrect string value: '\x11\x00\x00\x00\x11\x00...' for column 'utf32' at row 1 Good character with pad followed by bad character -insert into t1 values (0x10000000110000); +insert ignore into t1 values (0x10000000110000); Warnings: Warning 1366 Incorrect string value: '\x00\x11\x00\x00' for column 'utf32' at row 1 Good character without pad followed by bad character -insert into t1 values (0x0010000000110000); +insert ignore into t1 values (0x0010000000110000); Warnings: Warning 1366 Incorrect string value: '\x00\x11\x00\x00' for column 'utf32' at row 1 Wrong character with the second byte higher than 0x10 -insert into t1 values (0x00800037); +insert ignore into t1 values (0x00800037); Warnings: Warning 1366 Incorrect string value: '\x00\x80\x007' for column 'utf32' at row 1 Wrong character with pad with the second byte higher than 0x10 -insert into t1 values (0x00800037); +insert ignore into t1 values (0x00800037); Warnings: Warning 1366 Incorrect string value: '\x00\x80\x007' for column 'utf32' at row 1 drop table t1; @@ -1248,7 +1248,7 @@ Warnings: Warning 1292 Truncated incorrect INTEGER value: '123456789123456789123x' create table t1 (a int); insert into t1 values ('-1234.1e2'); -insert into t1 values ('-1234.1e2xxxx'); +insert ignore into t1 values ('-1234.1e2xxxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 insert into t1 values ('-1234.1e2 '); @@ -1264,7 +1264,7 @@ create table t1 (a int); insert into t1 values ('1 '); Warnings: Note 1265 Data truncated for column 'a' at row 1 -insert into t1 values ('1 x'); +insert ignore into t1 values ('1 x'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; @@ -1272,6 +1272,7 @@ a 1 1 drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (a varchar(17000) character set utf32); Warnings: Note 1246 Converting column 'a' from VARCHAR to TEXT @@ -1367,7 +1368,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(64) CHARACTER SET utf32 NOT NULL + `a` varchar(64) CHARACTER SET utf32 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (''); SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; @@ -1467,7 +1468,7 @@ hex(char(0x010203 using utf32)) 00010203 select hex(char(0x01020304 using utf32)); hex(char(0x01020304 using utf32)) - +NULL Warnings: Warning 1300 Invalid utf32 character string: '010203' create table t1 (s1 varchar(1) character set utf32, s2 text character set utf32); @@ -1482,7 +1483,7 @@ CREATE TABLE t1 AS SELECT repeat('a',2) as s1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `s1` varchar(2) CHARACTER SET utf32 NOT NULL + `s1` varchar(2) CHARACTER SET utf32 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('ab'),('AE'),('ab'),('AE'); SELECT * FROM t1 ORDER BY s1; @@ -1558,12 +1559,12 @@ DROP TABLE t1; # CREATE TABLE t1 (utf32 CHAR(5) CHARACTER SET utf32, latin1 CHAR(5) CHARACTER SET latin1); INSERT INTO t1 (utf32) VALUES (0xc581); -UPDATE t1 SET latin1 = utf32; +UPDATE IGNORE t1 SET latin1 = utf32; Warnings: Warning 1366 Incorrect string value: '\x00\x00\xC5\x81' for column 'latin1' at row 1 DELETE FROM t1; INSERT INTO t1 (utf32) VALUES (0x100cc); -UPDATE t1 SET latin1 = utf32; +UPDATE IGNORE t1 SET latin1 = utf32; Warnings: Warning 1366 Incorrect string value: '\x00\x01\x00\xCC' for column 'latin1' at row 1 DROP TABLE t1; @@ -1575,7 +1576,7 @@ CREATE TABLE t1 AS SELECT format(123,2,'no_NO'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `format(123,2,'no_NO')` varchar(45) CHARACTER SET utf32 NOT NULL + `format(123,2,'no_NO')` varchar(45) CHARACTER SET utf32 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t1; format(123,2,'no_NO') @@ -1662,7 +1663,7 @@ CHAR_LENGTH(TRIM(BOTH 0x00 FROM _utf32 0x00000061)) 1 select hex(lower(cast(0xffff0000 as char character set utf32))) as c; c -0000003F0000003F0000003F0000003F +NULL Warnings: Warning 1300 Invalid utf32 character string: '\xFF\xFF\x00\x00' # @@ -1712,7 +1713,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf32 NOT NULL + `a` varchar(5) CHARACTER SET utf32 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -1962,7 +1963,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf32 COLLATE utf32_bin NOT NULL + `a` varchar(5) CHARACTER SET utf32 COLLATE utf32_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; diff --git a/mysql-test/r/ctype_utf32_uca.result b/mysql-test/r/ctype_utf32_uca.result index 08b0dbe999a..097da3d7c16 100644 --- a/mysql-test/r/ctype_utf32_uca.result +++ b/mysql-test/r/ctype_utf32_uca.result @@ -2810,7 +2810,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -3045,7 +3045,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf32 COLLATE utf32_unicode_ci NOT NULL, + `a` varchar(1) CHARACTER SET utf32 COLLATE utf32_unicode_ci DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -3248,7 +3248,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf32 COLLATE utf32_unicode_ci NOT NULL + `a` varchar(5) CHARACTER SET utf32 COLLATE utf32_unicode_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -3715,7 +3715,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf32 COLLATE utf32_german2_ci NOT NULL, + `a` varchar(1) CHARACTER SET utf32 COLLATE utf32_german2_ci DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -3746,7 +3746,7 @@ CREATE TABLE t1 AS SELECT repeat('a', 10) as c LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c` varchar(10) CHARACTER SET utf32 COLLATE utf32_unicode_520_ci NOT NULL + `c` varchar(10) CHARACTER SET utf32 COLLATE utf32_unicode_520_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_utf32 0x0180),(_utf32 0x023A); INSERT INTO t1 VALUES (_utf32 0x023B),(_utf32 0x023C); @@ -4019,7 +4019,7 @@ hex(c) hex(weight_string(c)) c ALTER TABLE t1 ADD KEY(c); EXPLAIN SELECT hex(c) FROM t1 WHERE c LIKE 'a%' ORDER BY c; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range c c 42 NULL 2 Using where; Using index +1 SIMPLE t1 range c c 43 NULL 2 Using where; Using index SELECT hex(c), hex(weight_string(c)) FROM t1 WHERE c LIKE 'a%' ORDER BY c; hex(c) hex(weight_string(c)) 00000061 120F @@ -4062,7 +4062,7 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `s1` varchar(64) CHARACTER SET utf32 COLLATE utf32_myanmar_ci NOT NULL, + `s1` varchar(64) CHARACTER SET utf32 COLLATE utf32_myanmar_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 (s1) VALUES @@ -6648,7 +6648,7 @@ CREATE TABLE t1 AS SELECT SPACE(3) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(3) CHARACTER SET utf32 COLLATE utf32_thai_520_w2 NOT NULL + `a` varchar(3) CHARACTER SET utf32 COLLATE utf32_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (SPACE(0)),(SPACE(1)),(SPACE(2)); SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(8))) FROM t1; @@ -6681,7 +6681,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf32 COLLATE utf32_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf32 COLLATE utf32_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_ucs2 0x3400); INSERT INTO t1 VALUES (_ucs2 0xF001); @@ -6694,7 +6694,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf32 COLLATE utf32_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf32 COLLATE utf32_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('A'),('À'),('Ã'),('Â'),('Ã'),('Ä'),('Ã…'); SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a; @@ -6753,7 +6753,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf32 COLLATE utf32_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf32 COLLATE utf32_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('cota'),('cote'),('cotz'); INSERT INTO t1 VALUES ('coté'),('côte'),('côté'),('cotë'),('côtë'); diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 810dc9b970d..0a4898ff0b9 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -157,7 +157,7 @@ drop table t1; set LC_TIME_NAMES='en_US'; set names koi8r; create table t1 (s1 char(1) character set utf8); -insert into t1 values (_koi8r'ÁÂ'); +insert ignore into t1 values (_koi8r'ÁÂ'); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select s1,hex(s1),char_length(s1),octet_length(s1) from t1; @@ -165,19 +165,19 @@ s1 hex(s1) char_length(s1) octet_length(s1) Á D0B0 1 2 drop table t1; create table t1 (s1 tinytext character set utf8); -insert into t1 select repeat('a',300); +insert ignore into t1 select repeat('a',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',300); +insert ignore into t1 select repeat('Ñ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',300); +insert ignore into t1 select repeat('aÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',300); +insert ignore into t1 select repeat('Ña',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',300); +insert ignore into t1 select repeat('ÑÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select hex(s1) from t1; @@ -196,19 +196,19 @@ length(s1) char_length(s1) 254 127 drop table t1; create table t1 (s1 text character set utf8); -insert into t1 select repeat('a',66000); +insert ignore into t1 select repeat('a',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',66000); +insert ignore into t1 select repeat('Ñ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',66000); +insert ignore into t1 select repeat('aÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',66000); +insert ignore into t1 select repeat('Ña',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',66000); +insert ignore into t1 select repeat('ÑÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select length(s1),char_length(s1) from t1; @@ -220,7 +220,7 @@ length(s1) char_length(s1) 65534 32767 drop table t1; create table t1 (s1 char(10) character set utf8); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -228,7 +228,7 @@ hex(s1) 413F drop table t1; create table t1 (s1 varchar(10) character set utf8); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -236,7 +236,7 @@ hex(s1) 413F drop table t1; create table t1 (s1 text character set utf8); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -901,8 +901,8 @@ create table t2 select concat(a,_utf8'') as a, concat(b,_utf8'')as b from t1; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `a` varchar(5) CHARACTER SET utf8 NOT NULL, - `b` varchar(15) CHARACTER SET utf8 NOT NULL + `a` varchar(5) CHARACTER SET utf8 DEFAULT NULL, + `b` varchar(15) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t2; drop table t1; @@ -1126,7 +1126,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf8 NOT NULL, + `a` varchar(1) CHARACTER SET utf8 DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -1160,8 +1160,8 @@ STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)) CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra -subject varchar(64) NO NULL -pattern varchar(64) NO NULL +subject varchar(64) YES NULL +pattern varchar(64) YES NULL INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d'); SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1; HEX(subject) HEX(pattern) STR_TO_DATE(subject, pattern) @@ -1387,6 +1387,7 @@ ERR Имри.Ðфимим.Ðеимимримдмримрмрирор имрим DROP TABLE t1,t2; create table t1 (a char(20) character set utf8); insert into t1 values ('123456'),('андрей'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify a char(2) character set utf8; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1863,24 +1864,28 @@ insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); select * from t1; a abcdefghijklmnopqrstuvwxyz +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(20) character set utf8 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmnopqrst +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(15) character set utf8 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmno +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(10) character set utf8 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghij +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(5) character set utf8 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1892,6 +1897,7 @@ create table t1 ( a varchar(4000) not null ) default character set utf8; insert into t1 values (repeat('a',4000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(3000) character set utf8 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1914,12 +1920,12 @@ char(53647 using utf8) Ñ select char(0xff,0x8f using utf8); char(0xff,0x8f using utf8) - +NULL Warnings: Warning 1300 Invalid utf8 character string: 'FF8F' select convert(char(0xff,0x8f) using utf8); convert(char(0xff,0x8f) using utf8) -?? +NULL Warnings: Warning 1300 Invalid utf8 character string: '\xFF\x8F' set sql_mode=traditional; @@ -2128,12 +2134,12 @@ ERROR HY000: Invalid utf8 character string: 'FF' set sql_mode=default; select hex(char(0xFF using utf8)); hex(char(0xFF using utf8)) - +NULL Warnings: Warning 1300 Invalid utf8 character string: 'FF' select hex(convert(0xFF using utf8)); hex(convert(0xFF using utf8)) -3F +NULL Warnings: Warning 1300 Invalid utf8 character string: '\xFF' select hex(_utf8 0x616263FF); @@ -2464,7 +2470,7 @@ create table t1 as select concat(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -2477,7 +2483,7 @@ create table t1 as select concat(18446744073709551615) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(20) CHARACTER SET utf8 NOT NULL + `c1` varchar(20) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -2490,7 +2496,7 @@ create table t1 as select concat(1.1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET utf8 NOT NULL + `c1` varchar(4) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select hex(c1) from t1; hex(c1) @@ -2503,7 +2509,7 @@ create table t1 as select concat(1+2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1-2)); @@ -2513,7 +2519,7 @@ create table t1 as select concat(1-2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1*2)); @@ -2523,7 +2529,7 @@ create table t1 as select concat(1*2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1/2)); @@ -2563,7 +2569,7 @@ create table t1 as select concat(-1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-(1+2))); @@ -2573,7 +2579,7 @@ create table t1 as select concat(-(1+2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET utf8 NOT NULL + `c1` varchar(4) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1|2)); @@ -2583,7 +2589,7 @@ create table t1 as select concat(1|2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(1&2)); @@ -2593,7 +2599,7 @@ create table t1 as select concat(1&2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_count(12))); @@ -2603,7 +2609,7 @@ create table t1 as select concat(bit_count(12)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2<<1)); @@ -2613,7 +2619,7 @@ create table t1 as select concat(2<<1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(2>>1)); @@ -2623,7 +2629,7 @@ create table t1 as select concat(2>>1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(~0)); @@ -2633,7 +2639,7 @@ create table t1 as select concat(~0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(3^2)); @@ -2643,7 +2649,7 @@ create table t1 as select concat(3^2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(abs(-2))); @@ -2653,7 +2659,7 @@ create table t1 as select concat(abs(-2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(concat(exp(2)),1)); @@ -2783,7 +2789,7 @@ create table t1 as select concat(degrees(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) CHARACTER SET utf8 NOT NULL + `c1` varchar(23) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(radians(0))); @@ -2793,7 +2799,7 @@ create table t1 as select concat(radians(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) CHARACTER SET utf8 NOT NULL + `c1` varchar(23) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ceiling(0.5))); @@ -2803,7 +2809,7 @@ create table t1 as select concat(ceiling(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET utf8 NOT NULL + `c1` varchar(4) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(floor(0.5))); @@ -2813,7 +2819,7 @@ create table t1 as select concat(floor(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET utf8 NOT NULL + `c1` varchar(4) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(round(0.5))); @@ -2823,7 +2829,7 @@ create table t1 as select concat(round(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sign(0.5))); @@ -2833,14 +2839,14 @@ create table t1 as select concat(sign(0.5)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(rand()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(23) CHARACTER SET utf8 NOT NULL + `c1` varchar(23) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(length('a'))); @@ -2850,7 +2856,7 @@ create table t1 as select concat(length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(char_length('a'))); @@ -2860,7 +2866,7 @@ create table t1 as select concat(char_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(bit_length('a'))); @@ -2870,7 +2876,7 @@ create table t1 as select concat(bit_length('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coercibility('a'))); @@ -2880,7 +2886,7 @@ create table t1 as select concat(coercibility('a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(locate('a','a'))); @@ -2890,7 +2896,7 @@ create table t1 as select concat(locate('a','a')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(11) CHARACTER SET utf8 NOT NULL + `c1` varchar(11) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(field('c','a','b','c'))); @@ -2900,7 +2906,7 @@ create table t1 as select concat(field('c','a','b','c')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ascii(61))); @@ -2910,7 +2916,7 @@ create table t1 as select concat(ascii(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ord(61))); @@ -2920,7 +2926,7 @@ create table t1 as select concat(ord(61)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(find_in_set('b','a,b,c,d'))); @@ -2930,7 +2936,7 @@ create table t1 as select concat(find_in_set('b','a,b,c,d')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select md5('a'), hex(md5('a')); @@ -2940,7 +2946,7 @@ create table t1 as select md5('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(32) CHARACTER SET utf8 NOT NULL + `c1` varchar(32) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select old_password('a'), hex(old_password('a')); @@ -2950,7 +2956,7 @@ create table t1 as select old_password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(16) CHARACTER SET utf8 NOT NULL + `c1` varchar(16) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select password('a'), hex(password('a')); @@ -2960,7 +2966,7 @@ create table t1 as select password('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(41) CHARACTER SET utf8 NOT NULL + `c1` varchar(41) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha('a'), hex(sha('a')); @@ -2970,7 +2976,7 @@ create table t1 as select sha('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(40) CHARACTER SET utf8 NOT NULL + `c1` varchar(40) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select sha1('a'), hex(sha1('a')); @@ -2980,7 +2986,7 @@ create table t1 as select sha1('a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(40) CHARACTER SET utf8 NOT NULL + `c1` varchar(40) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('-1' as signed))); @@ -2990,7 +2996,7 @@ create table t1 as select concat(cast('-1' as signed)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast('1' as unsigned))); @@ -3000,7 +3006,7 @@ create table t1 as select concat(cast('1' as unsigned)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(cast(1/2 as decimal(5,5)))); @@ -3059,7 +3065,7 @@ create table t1 as select concat(least(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(greatest(1,2))); @@ -3069,7 +3075,7 @@ create table t1 as select concat(greatest(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(case when 11 then 22 else 33 end)); @@ -3079,7 +3085,7 @@ create table t1 as select concat(case when 11 then 22 else 33 end) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(coalesce(1,2))); @@ -3089,7 +3095,7 @@ create table t1 as select concat(coalesce(1,2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat_ws(1,2,3)); @@ -3099,7 +3105,7 @@ create table t1 as select concat_ws(1,2,3) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(group_concat(1,2,3)); @@ -3127,7 +3133,7 @@ create table t1 as select concat(last_insert_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(benchmark(0,0))); @@ -3137,7 +3143,7 @@ create table t1 as select concat(benchmark(0,0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sleep(0))); @@ -3147,7 +3153,7 @@ create table t1 as select concat(sleep(0)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(is_free_lock('xxxx'))); @@ -3181,7 +3187,7 @@ create table t1 as select concat(crc32('')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(uncompressed_length(''))); @@ -3198,7 +3204,7 @@ create table t1 as select concat(connection_id()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(inet_aton('127.1.1.1'))); @@ -3234,7 +3240,7 @@ create table t1 as select concat(row_count()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(found_rows())); @@ -3244,21 +3250,21 @@ create table t1 as select concat(found_rows()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid_short()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(21) CHARACTER SET utf8 NOT NULL + `c1` varchar(21) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(uuid()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(36) CHARACTER SET utf8 NOT NULL + `c1` varchar(36) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select coercibility(uuid()), coercibility(cast('a' as char character set latin1)); @@ -3271,7 +3277,7 @@ create table t1 as select concat(uuid(), cast('a' as char character set latin1)) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(37) NOT NULL + `c1` varchar(37) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(master_pos_wait('non-existent',0,2)) as c1; @@ -3291,7 +3297,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL, + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL, `c2` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -3349,7 +3355,7 @@ hex(c1) show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET utf8 NOT NULL, + `c1` varchar(4) CHARACTER SET utf8 DEFAULT NULL, `c2` decimal(2,1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -3388,7 +3394,7 @@ create table t1 as select concat('a'='a' IS TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a'='a' IS NOT TRUE)); @@ -3398,7 +3404,7 @@ create table t1 as select concat('a'='a' IS NOT TRUE) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(NOT 'a'='a')); @@ -3408,7 +3414,7 @@ create table t1 as select concat(NOT 'a'='a') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NULL)); @@ -3418,7 +3424,7 @@ create table t1 as select concat('a' IS NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' IS NOT NULL)); @@ -3428,7 +3434,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' rlike 'a')); @@ -3438,7 +3444,7 @@ create table t1 as select concat('a' IS NOT NULL) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(strcmp('a','b'))); @@ -3448,7 +3454,7 @@ create table t1 as select concat(strcmp('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' like 'a')); @@ -3458,7 +3464,7 @@ create table t1 as select concat('a' like 'b') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' between 'b' and 'c')); @@ -3468,7 +3474,7 @@ create table t1 as select concat('a' between 'b' and 'c') as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat('a' in ('a','b'))); @@ -3478,7 +3484,7 @@ create table t1 as select concat('a' in ('a','b')) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(interval(23, 1, 15, 17, 30, 44, 200))); @@ -3488,7 +3494,7 @@ create table t1 as select concat(interval(23, 1, 15, 17, 30, 44, 200)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 (a varchar(10), fulltext key(a)); @@ -3520,7 +3526,7 @@ create table t1 as select concat(ifnull(1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(ifnull(1.1,1.1))); @@ -3530,7 +3536,7 @@ create table t1 as select concat(ifnull(1.1,1.1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET utf8 NOT NULL + `c1` varchar(4) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(if(1,'b',1)); @@ -3560,7 +3566,7 @@ create table t1 as select concat(if(1,1,1)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(nullif(1,2))); @@ -3725,12 +3731,13 @@ create table t1 as select concat(period_add(200902, 2)) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(6) CHARACTER SET utf8 NOT NULL + `c1` varchar(6) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(period_diff(200902, 200802))); hex(concat(period_diff(200902, 200802))) 3132 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 as select concat(period_add(200902, 200802)) as c1; Warnings: Warning 1265 Data truncated for column 'c1' at row 1 @@ -3934,21 +3941,21 @@ create table t1 as select concat(curdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_date()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(curtime()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat('a',20) as c1 limit 0; @@ -3964,7 +3971,7 @@ create table t1 as select concat(utc_time()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(sec_to_time(2378))); @@ -4057,21 +4064,21 @@ create table t1 as select concat(now()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) CHARACTER SET utf8 NOT NULL + `c1` varchar(19) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(utc_timestamp()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) CHARACTER SET utf8 NOT NULL + `c1` varchar(19) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select concat(sysdate()) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(19) CHARACTER SET utf8 NOT NULL + `c1` varchar(19) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(addtime('00:00:00','11:22:33'))); @@ -4111,7 +4118,7 @@ create table t1 as select export_set(1,2,3,4,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(127) CHARACTER SET utf8 NOT NULL + `c1` varchar(127) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(insert(1133,3,0,22)); @@ -4121,7 +4128,7 @@ create table t1 as select insert(1133,3,0,22) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(6) CHARACTER SET utf8 NOT NULL + `c1` varchar(6) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lcase(123)); @@ -4131,7 +4138,7 @@ create table t1 as select lcase(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(left(123,1)); @@ -4141,7 +4148,7 @@ create table t1 as select left(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lower(123)); @@ -4151,7 +4158,7 @@ create table t1 as select lower(123) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(3) CHARACTER SET utf8 NOT NULL + `c1` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(lpad(1,2,0)); @@ -4161,7 +4168,7 @@ create table t1 as select lpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ltrim(1)); @@ -4171,7 +4178,7 @@ create table t1 as select ltrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(mid(1,1,1)); @@ -4181,7 +4188,7 @@ create table t1 as select mid(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(repeat(1,2)); @@ -4191,7 +4198,7 @@ create table t1 as select repeat(1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(replace(1,1,2)); @@ -4201,7 +4208,7 @@ create table t1 as select replace(1,1,2) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(reverse(12)); @@ -4211,7 +4218,7 @@ create table t1 as select reverse(12) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(right(123,1)); @@ -4221,7 +4228,7 @@ create table t1 as select right(123,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rpad(1,2,0)); @@ -4231,7 +4238,7 @@ create table t1 as select rpad(1,2,0) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(2) CHARACTER SET utf8 NOT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(rtrim(1)); @@ -4241,7 +4248,7 @@ create table t1 as select rtrim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(soundex(1)); @@ -4251,7 +4258,7 @@ create table t1 as select soundex(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(4) CHARACTER SET utf8 NOT NULL + `c1` varchar(4) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(substring(1,1,1)); @@ -4261,7 +4268,7 @@ create table t1 as select substring(1,1,1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(trim(1)); @@ -4271,7 +4278,7 @@ create table t1 as select trim(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(ucase(1)); @@ -4281,7 +4288,7 @@ create table t1 as select ucase(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(upper(1)); @@ -4291,14 +4298,14 @@ create table t1 as select upper(1) as c1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 NOT NULL + `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 as select repeat(' ', 64) as a limit 0; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(64) CHARACTER SET utf8 NOT NULL + `a` varchar(64) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ("1.1"), ("2.1"); select a, hex(a) from t1; @@ -4548,7 +4555,7 @@ create table t2 as select concat(a) from t1; show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `concat(a)` varchar(19) CHARACTER SET utf8 NOT NULL + `concat(a)` varchar(19) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1, t2; create table t1 (a date); @@ -4847,7 +4854,7 @@ insert into t1 values ('2001-02-03 04:05:06'); create view v1(a) as select concat(a) from t1; show columns from v1; Field Type Null Key Default Extra -a varchar(19) NO +a varchar(19) YES NULL select hex(a) from v1; hex(a) 303030302D30302D30302030303A30303A3030 @@ -5098,14 +5105,14 @@ CREATE TABLE t2 AS SELECT CONCAT_WS(1,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `CONCAT_WS(1,2,3)` varchar(3) CHARACTER SET utf8 NOT NULL + `CONCAT_WS(1,2,3)` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT INSERT(1133,3,0,22) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `INSERT(1133,3,0,22)` varchar(6) CHARACTER SET utf8 NOT NULL + `INSERT(1133,3,0,22)` varchar(6) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LCASE(a) FROM t1; @@ -5126,35 +5133,35 @@ CREATE TABLE t2 AS SELECT REPEAT(1,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPEAT(1,2)` varchar(2) CHARACTER SET utf8 NOT NULL + `REPEAT(1,2)` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LEFT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LEFT(123,2)` varchar(2) CHARACTER SET utf8 NOT NULL + `LEFT(123,2)` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RIGHT(123,2) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RIGHT(123,2)` varchar(2) CHARACTER SET utf8 NOT NULL + `RIGHT(123,2)` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT LTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LTRIM(123)` varchar(3) CHARACTER SET utf8 NOT NULL + `LTRIM(123)` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT RTRIM(123) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `RTRIM(123)` varchar(3) CHARACTER SET utf8 NOT NULL + `RTRIM(123)` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT ELT(1,111,222,333) FROM t1; @@ -5168,35 +5175,35 @@ CREATE TABLE t2 AS SELECT REPLACE(111,2,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `REPLACE(111,2,3)` varchar(3) CHARACTER SET utf8 NOT NULL + `REPLACE(111,2,3)` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SUBSTRING_INDEX(111,111,1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SUBSTRING_INDEX(111,111,1)` varchar(3) CHARACTER SET utf8 NOT NULL + `SUBSTRING_INDEX(111,111,1)` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAKE_SET(111,222,3) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `MAKE_SET(111,222,3)` varchar(5) CHARACTER SET utf8 NOT NULL + `MAKE_SET(111,222,3)` varchar(5) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT SOUNDEX(1) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `SOUNDEX(1)` varchar(4) CHARACTER SET utf8 NOT NULL + `SOUNDEX(1)` varchar(4) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT EXPORT_SET(1,'Y','N','',8); SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `EXPORT_SET(1,'Y','N','',8)` varchar(64) CHARACTER SET utf8 NOT NULL + `EXPORT_SET(1,'Y','N','',8)` varchar(64) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; @@ -5440,7 +5447,7 @@ ADD KEY(ch); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `ch` varchar(60) CHARACTER SET utf8 NOT NULL, + `ch` varchar(60) CHARACTER SET utf8 DEFAULT NULL, `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), KEY `ch` (`ch`) @@ -5528,7 +5535,7 @@ aÖ€ EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†' ORDER BY ch; @@ -5555,7 +5562,7 @@ Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†b' ORDER BY ch; @@ -5588,7 +5595,7 @@ z EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†' ORDER BY ch; @@ -5599,7 +5606,7 @@ Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†b' ORDER BY ch; @@ -5684,7 +5691,7 @@ ADD KEY(ch); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `ch` varchar(60) CHARACTER SET utf8 NOT NULL, + `ch` varchar(60) CHARACTER SET utf8 DEFAULT NULL, `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), KEY `ch` (`ch`) @@ -5772,7 +5779,7 @@ aÖ€ EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†' ORDER BY ch; @@ -5799,7 +5806,7 @@ Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'aðŒ†b' ORDER BY ch; @@ -5832,7 +5839,7 @@ z EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†' ORDER BY ch; @@ -5843,7 +5850,7 @@ Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index ch ch 182 NULL # Using where; Using index +1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'aðŒ†b' ORDER BY ch; @@ -5928,7 +5935,7 @@ ADD KEY(ch); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `ch` varchar(60) CHARACTER SET utf8 NOT NULL, + `ch` varchar(60) CHARACTER SET utf8 DEFAULT NULL, `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), KEY `ch` (`ch`) @@ -6197,6 +6204,7 @@ INSERT INTO t1 VALUES (REPEAT('A',100)); SELECT OCTET_LENGTH(a) FROM t1; OCTET_LENGTH(a) 300 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a TINYTEXT CHARACTER SET utf8; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -6250,7 +6258,7 @@ CREATE TABLE t1 (i INT, KEY(i)); INSERT INTO t1 VALUES (20081205),(20050327); SELECT HEX(i), HEX(CHAR(i USING utf8)) FROM t1; HEX(i) HEX(CHAR(i USING utf8)) -131F197 0131 +131F197 NULL 1326A35 01326A35 Warnings: Warning 1300 Invalid utf8 character string: 'F197' @@ -6306,7 +6314,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf8 NOT NULL + `a` varchar(5) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -6550,7 +6558,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL + `a` varchar(5) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -6802,7 +6810,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -6825,7 +6833,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -6848,7 +6856,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -6871,7 +6879,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL + `c1` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -6897,7 +6905,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL + `a` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -6923,7 +6931,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE CONCAT(c1)='a'; @@ -6946,7 +6954,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT * FROM t1 WHERE 'a'=CONCAT(c1); @@ -6969,7 +6977,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '% '=CONCAT(c1); @@ -6992,7 +7000,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('%'),('% '); SELECT * FROM t1 WHERE '%'=CONCAT(c1); @@ -7018,7 +7026,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8 NOT NULL + `a` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('a'),('a '); SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; @@ -7043,7 +7051,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',10) AS c1 LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(10) CHARACTER SET utf8 NOT NULL + `c1` varchar(10) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('ae'),('ä'); SELECT * FROM t1 WHERE c1='ä'; @@ -7174,6 +7182,7 @@ SELECT _utf8 0x7E, _utf8 X'7E', _utf8 B'01111110'; _utf8 0x7E _utf8 X'7E' _utf8 B'01111110' ~ ~ ~ # Start of ctype_unescape.inc +SET sql_mode = ''; SET @query=_binary'SELECT CHARSET(\'test\'),@@character_set_client,@@character_set_connection'; PREPARE stmt FROM @query; EXECUTE stmt; @@ -10236,6 +10245,7 @@ DROP FUNCTION wellformedness; DROP FUNCTION mysql_real_escape_string_generated; DROP FUNCTION iswellformed; DROP TABLE allbytes; +SET sql_mode = DEFAULT; # End of ctype_backslash.inc # # End of 10.0 tests @@ -10499,7 +10509,7 @@ DROP TABLE t1; # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis # CREATE TABLE t1 (a TEXT CHARACTER SET utf8); -LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8 IGNORE 4 LINES; +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' IGNORE INTO TABLE t1 CHARACTER SET utf8 IGNORE 4 LINES; Warnings: Warning 1366 Incorrect string value: '\xD0' for column 'a' at row 1 Warning 1366 Incorrect string value: '\xE1\x80' for column 'a' at row 3 @@ -10521,7 +10531,7 @@ DROP TABLE t1; # MDEV-9874 LOAD XML INFILE does not handle well broken multi-byte characters # CREATE TABLE t1 (a TEXT CHARACTER SET utf8); -LOAD XML INFILE '../../std_data/loaddata/mdev9874.xml' INTO TABLE t1 CHARACTER SET utf8 ROWS IDENTIFIED BY ''; +LOAD XML INFILE '../../std_data/loaddata/mdev9874.xml' IGNORE INTO TABLE t1 CHARACTER SET utf8 ROWS IDENTIFIED BY ''; Warnings: Warning 1366 Incorrect string value: '\xD0' for column 'a' at row 1 SELECT HEX(a) FROM t1; diff --git a/mysql-test/r/ctype_utf8mb4.result b/mysql-test/r/ctype_utf8mb4.result index b80fbe36f42..cb2f93dec30 100644 --- a/mysql-test/r/ctype_utf8mb4.result +++ b/mysql-test/r/ctype_utf8mb4.result @@ -157,7 +157,7 @@ drop table t1; set LC_TIME_NAMES='en_US'; set names koi8r; create table t1 (s1 char(1) character set utf8mb4); -insert into t1 values (_koi8r'ÁÂ'); +insert ignore into t1 values (_koi8r'ÁÂ'); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select s1,hex(s1),char_length(s1),octet_length(s1) from t1; @@ -165,19 +165,19 @@ s1 hex(s1) char_length(s1) octet_length(s1) Á D0B0 1 2 drop table t1; create table t1 (s1 tinytext character set utf8mb4); -insert into t1 select repeat('a',300); +insert ignore into t1 select repeat('a',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',300); +insert ignore into t1 select repeat('Ñ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',300); +insert ignore into t1 select repeat('aÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',300); +insert ignore into t1 select repeat('Ña',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',300); +insert ignore into t1 select repeat('ÑÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select hex(s1) from t1; @@ -196,19 +196,19 @@ length(s1) char_length(s1) 254 127 drop table t1; create table t1 (s1 text character set utf8mb4); -insert into t1 select repeat('a',66000); +insert ignore into t1 select repeat('a',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',66000); +insert ignore into t1 select repeat('Ñ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',66000); +insert ignore into t1 select repeat('aÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',66000); +insert ignore into t1 select repeat('Ña',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',66000); +insert ignore into t1 select repeat('ÑÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select length(s1),char_length(s1) from t1; @@ -220,7 +220,7 @@ length(s1) char_length(s1) 65534 32767 drop table t1; create table t1 (s1 char(10) character set utf8mb4); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -228,7 +228,7 @@ hex(s1) 413F drop table t1; create table t1 (s1 varchar(10) character set utf8mb4); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -236,7 +236,7 @@ hex(s1) 413F drop table t1; create table t1 (s1 text character set utf8mb4); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -901,8 +901,8 @@ create table t2 select concat(a,_utf8mb4'') as a, concat(b,_utf8mb4'')as b from show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `a` varchar(5) CHARACTER SET utf8mb4 NOT NULL, - `b` varchar(15) CHARACTER SET utf8mb4 NOT NULL + `a` varchar(5) CHARACTER SET utf8mb4 DEFAULT NULL, + `b` varchar(15) CHARACTER SET utf8mb4 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t2; drop table t1; @@ -1126,7 +1126,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf8mb4 NOT NULL, + `a` varchar(1) CHARACTER SET utf8mb4 DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -1233,7 +1233,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL + `a` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_utf8mb4 0xEFBE9D),(_utf8mb4 0xF0908E84); INSERT INTO t1 VALUES (_utf8mb4 0xCE85),(_utf8mb4 0xF4808080); @@ -1408,6 +1408,7 @@ ERR Имри.Ðфимим.Ðеимимримдмримрмрирор имрим DROP TABLE t1,t2; create table t1 (a char(20) character set utf8mb4); insert into t1 values ('123456'),('андрей'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify a char(2) character set utf8mb4; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1888,24 +1889,28 @@ insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); select * from t1; a abcdefghijklmnopqrstuvwxyz +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(20) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmnopqrst +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(15) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmno +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(10) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghij +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(5) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1917,6 +1922,7 @@ create table t1 ( a varchar(4000) not null ) default character set utf8mb4; insert into t1 values (repeat('a',4000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(3000) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1939,12 +1945,12 @@ char(53647 using utf8mb4) Ñ select char(0xff,0x8f using utf8mb4); char(0xff,0x8f using utf8mb4) - +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: 'FF8F' select convert(char(0xff,0x8f) using utf8mb4); convert(char(0xff,0x8f) using utf8mb4) -?? +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: '\xFF\x8F' set sql_mode=traditional; @@ -2153,12 +2159,12 @@ ERROR HY000: Invalid utf8mb4 character string: 'FF' set sql_mode=default; select hex(char(0xFF using utf8mb4)); hex(char(0xFF using utf8mb4)) - +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: 'FF' select hex(convert(0xFF using utf8mb4)); hex(convert(0xFF using utf8mb4)) -3F +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: '\xFF' select hex(_utf8mb4 0x616263FF); @@ -2320,7 +2326,7 @@ create table t1 (utf8mb4 char(1) character set utf8mb4); Testing [F0][90..BF][80..BF][80..BF] insert into t1 values (0xF0908080); insert into t1 values (0xF0BFBFBF); -insert into t1 values (0xF08F8080); +insert ignore into t1 values (0xF08F8080); Warnings: Warning 1366 Incorrect string value: '\xF0\x8F\x80\x80' for column 'utf8mb4' at row 1 select hex(utf8mb4) from t1 order by binary utf8mb4; @@ -2340,7 +2346,7 @@ delete from t1; Testing [F4][80..8F][80..BF][80..BF] insert into t1 values (0xF4808080); insert into t1 values (0xF48F8080); -insert into t1 values (0xF4908080); +insert ignore into t1 values (0xF4908080); Warnings: Warning 1366 Incorrect string value: '\xF4\x90\x80\x80' for column 'utf8mb4' at row 1 select hex(utf8mb4) from t1 order by binary utf8mb4; @@ -2418,7 +2424,7 @@ INSERT INTO t1 VALUES (119040, x'f09d8480'), (917999, x'f3a087af'); INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480'); INSERT INTO t1 VALUES (65131, x'efb9abf09d849ef09d859ef09d859ef09d8480f09d859fefb9abefb9abf09d85a0efb9ab'); -INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); +INSERT IGNORE INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); Warnings: Warning 1265 Data truncated for column 'utf8mb4_encoding' at row 1 SELECT u_decimal, hex(utf8mb4_encoding) FROM t1 ORDER BY utf8mb4_encoding COLLATE utf8mb4_general_ci, BINARY utf8mb4_encoding; @@ -2434,7 +2440,7 @@ u_decimal hex(utf8mb4_encoding) 1114111 F48FBFBF 119070 F09D849EF09D859EF09D859EF09D8480F09D859FF09D859FF09D859FF09D85A0F09D85A0F09D8480 119070 F09D849EF09D859EF09D859EF09D8480F09D859FF09D859FF09D859FF09D85A0F09D85A0F09D8480 -INSERT INTO t1 VALUES (1114111, x'f5808080'); +INSERT IGNORE INTO t1 VALUES (1114111, x'f5808080'); Warnings: Warning 1366 Incorrect string value: '\xF5\x80\x80\x80' for column 'utf8mb4_encoding' at row 1 SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE @@ -2448,14 +2454,14 @@ utf8mb3_encoding VARCHAR(10) NOT NULL ) CHARACTER SET utf8mb3; INSERT INTO t2 VALUES (42856, x'ea9da8'); INSERT INTO t2 VALUES (65131, x'efb9ab'); -INSERT INTO t2 VALUES (1114111, x'f48fbfbf'); +INSERT IGNORE INTO t2 VALUES (1114111, x'f48fbfbf'); Warnings: Warning 1366 Incorrect string value: '\xF4\x8F\xBF\xBF' for column 'utf8mb3_encoding' at row 1 SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE table_name= 't2' AND column_name= 'utf8mb3_encoding'; character_maximum_length character_octet_length 10 30 -UPDATE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; +UPDATE IGNORE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; Warnings: Warning 1366 Incorrect string value: '\xF4\x8F\xBF\xBD' for column 'utf8mb3_encoding' at row 1 UPDATE t2 SET utf8mb3_encoding= _utf8mb4 x'ea9da8' where u_decimal= 42856; @@ -2515,6 +2521,7 @@ SELECT count(*) FROM t1, t2 WHERE t1.utf8mb4_encoding > t2.utf8mb3_encoding; count(*) 33 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CONVERT TO CHARACTER SET utf8; Warnings: Warning 1366 Incorrect string value: '\xF0\x9D\x84\x80' for column 'utf8mb4_encoding' at row 1 @@ -2667,7 +2674,7 @@ Table Create Table t3 CREATE TEMPORARY TABLE `t3` ( `utf8mb4` varchar(10) CHARACTER SET utf8mb4 NOT NULL, `utf8mb3` varchar(10) CHARACTER SET utf8 NOT NULL, - `concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 NOT NULL + `concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TEMPORARY TABLE t3; SELECT * FROM t1, t2 WHERE t1.utf8mb4 > t2.utf8mb3; @@ -2700,6 +2707,7 @@ subject varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci, p VARCHAR(15) CHARACTER SET utf8 ) DEFAULT CHARSET=latin1; ALTER TABLE t1 ADD INDEX (subject); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 DEFAULT CHARACTER SET utf8, MODIFY subject varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, @@ -2817,6 +2825,7 @@ INSERT INTO t1 VALUES (REPEAT('😎',100)); SELECT OCTET_LENGTH(a) FROM t1; OCTET_LENGTH(a) 400 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a TINYTEXT CHARACTER SET utf8mb4; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -2892,7 +2901,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf8mb4 NOT NULL + `a` varchar(5) CHARACTER SET utf8mb4 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -3136,7 +3145,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL + `a` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; SHOW CREATE TABLE t2; @@ -3393,7 +3402,7 @@ CREATE TABLE t1 ( a VARCHAR(32) CHARACTER SET utf8mb4, b VARCHAR(32) CHARACTER SET utf8 ); -INSERT INTO t1 SELECT 'a 😠b', 'a 😠b'; +INSERT IGNORE INTO t1 SELECT 'a 😠b', 'a 😠b'; Warnings: Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81 b' for column 'a' at row 1 Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81 b' for column 'b' at row 1 @@ -3413,7 +3422,7 @@ CREATE TABLE t1 ( a VARCHAR(32) CHARACTER SET utf8mb4, b VARCHAR(32) CHARACTER SET utf8 ); -INSERT INTO t1 SELECT 'a 😠b', 'a 😠b'; +INSERT IGNORE INTO t1 SELECT 'a 😠b', 'a 😠b'; Warnings: Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81 b' for column 'b' at row 1 SELECT * FROM t1; @@ -3456,7 +3465,7 @@ DROP FUNCTION f1; # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis # CREATE TABLE t1 (a TEXT CHARACTER SET utf8mb4); -LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8mb4 IGNORE 4 LINES; +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' IGNORE INTO TABLE t1 CHARACTER SET utf8mb4 IGNORE 4 LINES; Warnings: Warning 1366 Incorrect string value: '\xD0' for column 'a' at row 1 Warning 1366 Incorrect string value: '\xE1\x80' for column 'a' at row 3 diff --git a/mysql-test/r/ctype_utf8mb4_heap.result b/mysql-test/r/ctype_utf8mb4_heap.result index d70e009228e..859ceff864e 100644 --- a/mysql-test/r/ctype_utf8mb4_heap.result +++ b/mysql-test/r/ctype_utf8mb4_heap.result @@ -157,7 +157,7 @@ drop table t1; set LC_TIME_NAMES='en_US'; set names koi8r; create table t1 (s1 char(1) character set utf8mb4) engine heap; -insert into t1 values (_koi8r'ÁÂ'); +insert ignore into t1 values (_koi8r'ÁÂ'); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select s1,hex(s1),char_length(s1),octet_length(s1) from t1; @@ -165,19 +165,19 @@ s1 hex(s1) char_length(s1) octet_length(s1) Á D0B0 1 2 drop table t1; create table t1 (s1 varchar(255) character set utf8mb4) engine heap; -insert into t1 select repeat('a',300); +insert ignore into t1 select repeat('a',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',300); +insert ignore into t1 select repeat('Ñ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',300); +insert ignore into t1 select repeat('aÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',300); +insert ignore into t1 select repeat('Ña',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',300); +insert ignore into t1 select repeat('ÑÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select hex(s1) from t1; @@ -196,19 +196,19 @@ length(s1) char_length(s1) 510 255 drop table t1; create table t1 (s1 varchar(255) character set utf8mb4) engine heap; -insert into t1 select repeat('a',66000); +insert ignore into t1 select repeat('a',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',66000); +insert ignore into t1 select repeat('Ñ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',66000); +insert ignore into t1 select repeat('aÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',66000); +insert ignore into t1 select repeat('Ña',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',66000); +insert ignore into t1 select repeat('ÑÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select length(s1),char_length(s1) from t1; @@ -220,7 +220,7 @@ length(s1) char_length(s1) 510 255 drop table t1; create table t1 (s1 char(10) character set utf8mb4) engine heap; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -228,7 +228,7 @@ hex(s1) 413F drop table t1; create table t1 (s1 varchar(10) character set utf8mb4) engine heap; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -840,8 +840,8 @@ create table t2 engine heap select concat(a,_utf8mb4'') as a, concat(b,_utf8mb4' show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `a` varchar(5) CHARACTER SET utf8mb4 NOT NULL, - `b` varchar(15) CHARACTER SET utf8mb4 NOT NULL + `a` varchar(5) CHARACTER SET utf8mb4 DEFAULT NULL, + `b` varchar(15) CHARACTER SET utf8mb4 DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 drop table t2; drop table t1; @@ -1065,7 +1065,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf8mb4 NOT NULL, + `a` varchar(1) CHARACTER SET utf8mb4 DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -1307,6 +1307,7 @@ ERR Имри.Ðфимим.Ðеимимримдмримрмрирор имрим DROP TABLE t1,t2; create table t1 (a char(20) character set utf8mb4) engine heap; insert into t1 values ('123456'),('андрей'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify a char(2) character set utf8mb4; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1720,24 +1721,28 @@ insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); select * from t1; a abcdefghijklmnopqrstuvwxyz +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(20) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmnopqrst +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(15) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmno +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(10) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghij +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(5) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1749,6 +1754,7 @@ create table t1 ( a varchar(4000) not null ) default character set utf8mb4 engine heap; insert into t1 values (repeat('a',4000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(3000) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1771,12 +1777,12 @@ char(53647 using utf8mb4) Ñ select char(0xff,0x8f using utf8mb4); char(0xff,0x8f using utf8mb4) - +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: 'FF8F' select convert(char(0xff,0x8f) using utf8mb4); convert(char(0xff,0x8f) using utf8mb4) -?? +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: '\xFF\x8F' set sql_mode=traditional; @@ -1985,12 +1991,12 @@ ERROR HY000: Invalid utf8mb4 character string: 'FF' set sql_mode=default; select hex(char(0xFF using utf8mb4)); hex(char(0xFF using utf8mb4)) - +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: 'FF' select hex(convert(0xFF using utf8mb4)); hex(convert(0xFF using utf8mb4)) -3F +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: '\xFF' select hex(_utf8mb4 0x616263FF); @@ -2152,7 +2158,7 @@ create table t1 (utf8mb4 char(1) character set utf8mb4) engine heap; Testing [F0][90..BF][80..BF][80..BF] insert into t1 values (0xF0908080); insert into t1 values (0xF0BFBFBF); -insert into t1 values (0xF08F8080); +insert ignore into t1 values (0xF08F8080); Warnings: Warning 1366 Incorrect string value: '\xF0\x8F\x80\x80' for column 'utf8mb4' at row 1 select hex(utf8mb4) from t1; @@ -2172,7 +2178,7 @@ delete from t1; Testing [F4][80..8F][80..BF][80..BF] insert into t1 values (0xF4808080); insert into t1 values (0xF48F8080); -insert into t1 values (0xF4908080); +insert ignore into t1 values (0xF4908080); Warnings: Warning 1366 Incorrect string value: '\xF4\x90\x80\x80' for column 'utf8mb4' at row 1 select hex(utf8mb4) from t1; @@ -2231,7 +2237,7 @@ INSERT INTO t1 VALUES (119040, x'f09d8480'), (917999, x'f3a087af'); INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480'); INSERT INTO t1 VALUES (65131, x'efb9abf09d849ef09d859ef09d859ef09d8480f09d859fefb9abefb9abf09d85a0efb9ab'); -INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); +INSERT IGNORE INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); Warnings: Warning 1265 Data truncated for column 'utf8mb4_encoding' at row 1 SELECT u_decimal, hex(utf8mb4_encoding) FROM t1 ORDER BY utf8mb4_encoding COLLATE utf8mb4_general_ci, BINARY utf8mb4_encoding; @@ -2247,7 +2253,7 @@ u_decimal hex(utf8mb4_encoding) 120735 F09D9E9F 65131 EFB9ABF09D849EF09D859EF09D859EF09D8480F09D859FEFB9ABEFB9ABF09D85A0EFB9AB 917999 F3A087AF -INSERT INTO t1 VALUES (1114111, x'f5808080'); +INSERT IGNORE INTO t1 VALUES (1114111, x'f5808080'); Warnings: Warning 1366 Incorrect string value: '\xF5\x80\x80\x80' for column 'utf8mb4_encoding' at row 1 SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE @@ -2261,14 +2267,14 @@ utf8mb3_encoding VARCHAR(10) NOT NULL ) CHARACTER SET utf8mb3 ENGINE heap; INSERT INTO t2 VALUES (42856, x'ea9da8'); INSERT INTO t2 VALUES (65131, x'efb9ab'); -INSERT INTO t2 VALUES (1114111, x'f48fbfbf'); +INSERT IGNORE INTO t2 VALUES (1114111, x'f48fbfbf'); Warnings: Warning 1366 Incorrect string value: '\xF4\x8F\xBF\xBF' for column 'utf8mb3_encoding' at row 1 SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE table_name= 't2' AND column_name= 'utf8mb3_encoding'; character_maximum_length character_octet_length 10 30 -UPDATE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; +UPDATE IGNORE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; Warnings: Warning 1366 Incorrect string value: '\xF4\x8F\xBF\xBD' for column 'utf8mb3_encoding' at row 1 UPDATE t2 SET utf8mb3_encoding= _utf8mb4 x'ea9da8' where u_decimal= 42856; @@ -2328,6 +2334,7 @@ SELECT count(*) FROM t1, t2 WHERE t1.utf8mb4_encoding > t2.utf8mb3_encoding; count(*) 33 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CONVERT TO CHARACTER SET utf8; SHOW CREATE TABLE t1; Table Create Table @@ -2468,7 +2475,7 @@ Table Create Table t3 CREATE TEMPORARY TABLE `t3` ( `utf8mb4` varchar(10) CHARACTER SET utf8mb4 NOT NULL, `utf8mb3` varchar(10) CHARACTER SET utf8 NOT NULL, - `concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 NOT NULL + `concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 DROP TEMPORARY TABLE t3; SELECT * FROM t1, t2 WHERE t1.utf8mb4 > t2.utf8mb3; diff --git a/mysql-test/r/ctype_utf8mb4_innodb.result b/mysql-test/r/ctype_utf8mb4_innodb.result index 28b566c19eb..28ed7ed313d 100644 --- a/mysql-test/r/ctype_utf8mb4_innodb.result +++ b/mysql-test/r/ctype_utf8mb4_innodb.result @@ -157,7 +157,7 @@ drop table t1; set LC_TIME_NAMES='en_US'; set names koi8r; create table t1 (s1 char(1) character set utf8mb4) engine InnoDB; -insert into t1 values (_koi8r'ÁÂ'); +insert ignore into t1 values (_koi8r'ÁÂ'); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select s1,hex(s1),char_length(s1),octet_length(s1) from t1; @@ -165,19 +165,19 @@ s1 hex(s1) char_length(s1) octet_length(s1) Á D0B0 1 2 drop table t1; create table t1 (s1 tinytext character set utf8mb4) engine InnoDB; -insert into t1 select repeat('a',300); +insert ignore into t1 select repeat('a',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',300); +insert ignore into t1 select repeat('Ñ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',300); +insert ignore into t1 select repeat('aÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',300); +insert ignore into t1 select repeat('Ña',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',300); +insert ignore into t1 select repeat('ÑÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select hex(s1) from t1; @@ -196,19 +196,19 @@ length(s1) char_length(s1) 255 255 drop table t1; create table t1 (s1 text character set utf8mb4) engine InnoDB; -insert into t1 select repeat('a',66000); +insert ignore into t1 select repeat('a',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',66000); +insert ignore into t1 select repeat('Ñ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',66000); +insert ignore into t1 select repeat('aÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',66000); +insert ignore into t1 select repeat('Ña',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',66000); +insert ignore into t1 select repeat('ÑÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select length(s1),char_length(s1) from t1; @@ -220,7 +220,7 @@ length(s1) char_length(s1) 65535 65535 drop table t1; create table t1 (s1 char(10) character set utf8mb4) engine InnoDB; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -228,7 +228,7 @@ hex(s1) 413F drop table t1; create table t1 (s1 varchar(10) character set utf8mb4) engine InnoDB; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -236,7 +236,7 @@ hex(s1) 413F drop table t1; create table t1 (s1 text character set utf8mb4) engine InnoDB; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -901,8 +901,8 @@ create table t2 engine InnoDB select concat(a,_utf8mb4'') as a, concat(b,_utf8mb show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `a` varchar(5) CHARACTER SET utf8mb4 NOT NULL, - `b` varchar(15) CHARACTER SET utf8mb4 NOT NULL + `a` varchar(5) CHARACTER SET utf8mb4 DEFAULT NULL, + `b` varchar(15) CHARACTER SET utf8mb4 DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t2; drop table t1; @@ -1126,7 +1126,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf8mb4 NOT NULL, + `a` varchar(1) CHARACTER SET utf8mb4 DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -1368,6 +1368,7 @@ ERR Имри.Ðфимим.Ðеимимримдмримрмрирор имрим DROP TABLE t1,t2; create table t1 (a char(20) character set utf8mb4) engine InnoDB; insert into t1 values ('123456'),('андрей'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify a char(2) character set utf8mb4; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1848,24 +1849,28 @@ insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); select * from t1; a abcdefghijklmnopqrstuvwxyz +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(20) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmnopqrst +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(15) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmno +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(10) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghij +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(5) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1877,6 +1882,7 @@ create table t1 ( a varchar(4000) not null ) default character set utf8mb4 engine InnoDB; insert into t1 values (repeat('a',4000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(3000) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1899,12 +1905,12 @@ char(53647 using utf8mb4) Ñ select char(0xff,0x8f using utf8mb4); char(0xff,0x8f using utf8mb4) - +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: 'FF8F' select convert(char(0xff,0x8f) using utf8mb4); convert(char(0xff,0x8f) using utf8mb4) -?? +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: '\xFF\x8F' set sql_mode=traditional; @@ -2113,12 +2119,12 @@ ERROR HY000: Invalid utf8mb4 character string: 'FF' set sql_mode=default; select hex(char(0xFF using utf8mb4)); hex(char(0xFF using utf8mb4)) - +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: 'FF' select hex(convert(0xFF using utf8mb4)); hex(convert(0xFF using utf8mb4)) -3F +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: '\xFF' select hex(_utf8mb4 0x616263FF); @@ -2280,7 +2286,7 @@ create table t1 (utf8mb4 char(1) character set utf8mb4) engine InnoDB; Testing [F0][90..BF][80..BF][80..BF] insert into t1 values (0xF0908080); insert into t1 values (0xF0BFBFBF); -insert into t1 values (0xF08F8080); +insert ignore into t1 values (0xF08F8080); Warnings: Warning 1366 Incorrect string value: '\xF0\x8F\x80\x80' for column 'utf8mb4' at row 1 select hex(utf8mb4) from t1; @@ -2300,7 +2306,7 @@ delete from t1; Testing [F4][80..8F][80..BF][80..BF] insert into t1 values (0xF4808080); insert into t1 values (0xF48F8080); -insert into t1 values (0xF4908080); +insert ignore into t1 values (0xF4908080); Warnings: Warning 1366 Incorrect string value: '\xF4\x90\x80\x80' for column 'utf8mb4' at row 1 select hex(utf8mb4) from t1; @@ -2378,7 +2384,7 @@ INSERT INTO t1 VALUES (119040, x'f09d8480'), (917999, x'f3a087af'); INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480'); INSERT INTO t1 VALUES (65131, x'efb9abf09d849ef09d859ef09d859ef09d8480f09d859fefb9abefb9abf09d85a0efb9ab'); -INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); +INSERT IGNORE INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); Warnings: Warning 1265 Data truncated for column 'utf8mb4_encoding' at row 1 SELECT u_decimal, hex(utf8mb4_encoding) FROM t1 ORDER BY utf8mb4_encoding COLLATE utf8mb4_general_ci, BINARY utf8mb4_encoding; @@ -2394,7 +2400,7 @@ u_decimal hex(utf8mb4_encoding) 120735 F09D9E9F 65131 EFB9ABF09D849EF09D859EF09D859EF09D8480F09D859FEFB9ABEFB9ABF09D85A0EFB9AB 917999 F3A087AF -INSERT INTO t1 VALUES (1114111, x'f5808080'); +INSERT IGNORE INTO t1 VALUES (1114111, x'f5808080'); Warnings: Warning 1366 Incorrect string value: '\xF5\x80\x80\x80' for column 'utf8mb4_encoding' at row 1 SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE @@ -2408,14 +2414,14 @@ utf8mb3_encoding VARCHAR(10) NOT NULL ) CHARACTER SET utf8mb3 ENGINE InnoDB; INSERT INTO t2 VALUES (42856, x'ea9da8'); INSERT INTO t2 VALUES (65131, x'efb9ab'); -INSERT INTO t2 VALUES (1114111, x'f48fbfbf'); +INSERT IGNORE INTO t2 VALUES (1114111, x'f48fbfbf'); Warnings: Warning 1366 Incorrect string value: '\xF4\x8F\xBF\xBF' for column 'utf8mb3_encoding' at row 1 SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE table_name= 't2' AND column_name= 'utf8mb3_encoding'; character_maximum_length character_octet_length 10 30 -UPDATE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; +UPDATE IGNORE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; Warnings: Warning 1366 Incorrect string value: '\xF4\x8F\xBF\xBD' for column 'utf8mb3_encoding' at row 1 UPDATE t2 SET utf8mb3_encoding= _utf8mb4 x'ea9da8' where u_decimal= 42856; @@ -2475,6 +2481,7 @@ SELECT count(*) FROM t1, t2 WHERE t1.utf8mb4_encoding > t2.utf8mb3_encoding; count(*) 33 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CONVERT TO CHARACTER SET utf8; SHOW CREATE TABLE t1; Table Create Table @@ -2615,7 +2622,7 @@ Table Create Table t3 CREATE TEMPORARY TABLE `t3` ( `utf8mb4` varchar(10) CHARACTER SET utf8mb4 NOT NULL, `utf8mb3` varchar(10) CHARACTER SET utf8 NOT NULL, - `concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 NOT NULL + `concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TEMPORARY TABLE t3; SELECT * FROM t1, t2 WHERE t1.utf8mb4 > t2.utf8mb3; diff --git a/mysql-test/r/ctype_utf8mb4_myisam.result b/mysql-test/r/ctype_utf8mb4_myisam.result index 34145417966..2c798102e50 100644 --- a/mysql-test/r/ctype_utf8mb4_myisam.result +++ b/mysql-test/r/ctype_utf8mb4_myisam.result @@ -157,7 +157,7 @@ drop table t1; set LC_TIME_NAMES='en_US'; set names koi8r; create table t1 (s1 char(1) character set utf8mb4) engine MyISAM; -insert into t1 values (_koi8r'ÁÂ'); +insert ignore into t1 values (_koi8r'ÁÂ'); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select s1,hex(s1),char_length(s1),octet_length(s1) from t1; @@ -165,19 +165,19 @@ s1 hex(s1) char_length(s1) octet_length(s1) Á D0B0 1 2 drop table t1; create table t1 (s1 tinytext character set utf8mb4) engine MyISAM; -insert into t1 select repeat('a',300); +insert ignore into t1 select repeat('a',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',300); +insert ignore into t1 select repeat('Ñ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',300); +insert ignore into t1 select repeat('aÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',300); +insert ignore into t1 select repeat('Ña',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',300); +insert ignore into t1 select repeat('ÑÑ',300); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select hex(s1) from t1; @@ -196,19 +196,19 @@ length(s1) char_length(s1) 255 255 drop table t1; create table t1 (s1 text character set utf8mb4) engine MyISAM; -insert into t1 select repeat('a',66000); +insert ignore into t1 select repeat('a',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ñ',66000); +insert ignore into t1 select repeat('Ñ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('aÑ',66000); +insert ignore into t1 select repeat('aÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('Ña',66000); +insert ignore into t1 select repeat('Ña',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 -insert into t1 select repeat('ÑÑ',66000); +insert ignore into t1 select repeat('ÑÑ',66000); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select length(s1),char_length(s1) from t1; @@ -220,7 +220,7 @@ length(s1) char_length(s1) 65535 65535 drop table t1; create table t1 (s1 char(10) character set utf8mb4) engine MyISAM; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -228,7 +228,7 @@ hex(s1) 413F drop table t1; create table t1 (s1 varchar(10) character set utf8mb4) engine MyISAM; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -236,7 +236,7 @@ hex(s1) 413F drop table t1; create table t1 (s1 text character set utf8mb4) engine MyISAM; -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); Warnings: Warning 1366 Incorrect string value: '\xFF' for column 's1' at row 1 select hex(s1) from t1; @@ -901,8 +901,8 @@ create table t2 engine MyISAM select concat(a,_utf8mb4'') as a, concat(b,_utf8mb show create table t2; Table Create Table t2 CREATE TABLE `t2` ( - `a` varchar(5) CHARACTER SET utf8mb4 NOT NULL, - `b` varchar(15) CHARACTER SET utf8mb4 NOT NULL + `a` varchar(5) CHARACTER SET utf8mb4 DEFAULT NULL, + `b` varchar(15) CHARACTER SET utf8mb4 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t2; drop table t1; @@ -1126,7 +1126,7 @@ CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(1) CHARACTER SET utf8mb4 NOT NULL, + `a` varchar(1) CHARACTER SET utf8mb4 DEFAULT NULL, `b` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); @@ -1368,6 +1368,7 @@ ERR Имри.Ðфимим.Ðеимимримдмримрмрирор имрим DROP TABLE t1,t2; create table t1 (a char(20) character set utf8mb4) engine MyISAM; insert into t1 values ('123456'),('андрей'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify a char(2) character set utf8mb4; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1848,24 +1849,28 @@ insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); select * from t1; a abcdefghijklmnopqrstuvwxyz +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(20) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmnopqrst +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(15) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghijklmno +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(10) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a abcdefghij +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(5) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1877,6 +1882,7 @@ create table t1 ( a varchar(4000) not null ) default character set utf8mb4 engine MyISAM; insert into t1 values (repeat('a',4000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(3000) character set utf8mb4 not null; Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -1899,12 +1905,12 @@ char(53647 using utf8mb4) Ñ select char(0xff,0x8f using utf8mb4); char(0xff,0x8f using utf8mb4) - +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: 'FF8F' select convert(char(0xff,0x8f) using utf8mb4); convert(char(0xff,0x8f) using utf8mb4) -?? +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: '\xFF\x8F' set sql_mode=traditional; @@ -2113,12 +2119,12 @@ ERROR HY000: Invalid utf8mb4 character string: 'FF' set sql_mode=default; select hex(char(0xFF using utf8mb4)); hex(char(0xFF using utf8mb4)) - +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: 'FF' select hex(convert(0xFF using utf8mb4)); hex(convert(0xFF using utf8mb4)) -3F +NULL Warnings: Warning 1300 Invalid utf8mb4 character string: '\xFF' select hex(_utf8mb4 0x616263FF); @@ -2280,7 +2286,7 @@ create table t1 (utf8mb4 char(1) character set utf8mb4) engine MyISAM; Testing [F0][90..BF][80..BF][80..BF] insert into t1 values (0xF0908080); insert into t1 values (0xF0BFBFBF); -insert into t1 values (0xF08F8080); +insert ignore into t1 values (0xF08F8080); Warnings: Warning 1366 Incorrect string value: '\xF0\x8F\x80\x80' for column 'utf8mb4' at row 1 select hex(utf8mb4) from t1; @@ -2300,7 +2306,7 @@ delete from t1; Testing [F4][80..8F][80..BF][80..BF] insert into t1 values (0xF4808080); insert into t1 values (0xF48F8080); -insert into t1 values (0xF4908080); +insert ignore into t1 values (0xF4908080); Warnings: Warning 1366 Incorrect string value: '\xF4\x90\x80\x80' for column 'utf8mb4' at row 1 select hex(utf8mb4) from t1; @@ -2378,7 +2384,7 @@ INSERT INTO t1 VALUES (119040, x'f09d8480'), (917999, x'f3a087af'); INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480'); INSERT INTO t1 VALUES (65131, x'efb9abf09d849ef09d859ef09d859ef09d8480f09d859fefb9abefb9abf09d85a0efb9ab'); -INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); +INSERT IGNORE INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); Warnings: Warning 1265 Data truncated for column 'utf8mb4_encoding' at row 1 SELECT u_decimal, hex(utf8mb4_encoding) FROM t1 ORDER BY utf8mb4_encoding COLLATE utf8mb4_general_ci, BINARY utf8mb4_encoding; @@ -2394,7 +2400,7 @@ u_decimal hex(utf8mb4_encoding) 120735 F09D9E9F 65131 EFB9ABF09D849EF09D859EF09D859EF09D8480F09D859FEFB9ABEFB9ABF09D85A0EFB9AB 917999 F3A087AF -INSERT INTO t1 VALUES (1114111, x'f5808080'); +INSERT IGNORE INTO t1 VALUES (1114111, x'f5808080'); Warnings: Warning 1366 Incorrect string value: '\xF5\x80\x80\x80' for column 'utf8mb4_encoding' at row 1 SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE @@ -2408,14 +2414,14 @@ utf8mb3_encoding VARCHAR(10) NOT NULL ) CHARACTER SET utf8mb3 ENGINE MyISAM; INSERT INTO t2 VALUES (42856, x'ea9da8'); INSERT INTO t2 VALUES (65131, x'efb9ab'); -INSERT INTO t2 VALUES (1114111, x'f48fbfbf'); +INSERT IGNORE INTO t2 VALUES (1114111, x'f48fbfbf'); Warnings: Warning 1366 Incorrect string value: '\xF4\x8F\xBF\xBF' for column 'utf8mb3_encoding' at row 1 SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE table_name= 't2' AND column_name= 'utf8mb3_encoding'; character_maximum_length character_octet_length 10 30 -UPDATE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; +UPDATE IGNORE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; Warnings: Warning 1366 Incorrect string value: '\xF4\x8F\xBF\xBD' for column 'utf8mb3_encoding' at row 1 UPDATE t2 SET utf8mb3_encoding= _utf8mb4 x'ea9da8' where u_decimal= 42856; @@ -2475,6 +2481,7 @@ SELECT count(*) FROM t1, t2 WHERE t1.utf8mb4_encoding > t2.utf8mb3_encoding; count(*) 33 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CONVERT TO CHARACTER SET utf8; SHOW CREATE TABLE t1; Table Create Table @@ -2615,7 +2622,7 @@ Table Create Table t3 CREATE TEMPORARY TABLE `t3` ( `utf8mb4` varchar(10) CHARACTER SET utf8mb4 NOT NULL, `utf8mb3` varchar(10) CHARACTER SET utf8 NOT NULL, - `concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 NOT NULL + `concat(utf8mb4,utf8mb3)` varchar(20) CHARACTER SET utf8mb4 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TEMPORARY TABLE t3; SELECT * FROM t1, t2 WHERE t1.utf8mb4 > t2.utf8mb3; diff --git a/mysql-test/r/ctype_utf8mb4_uca.result b/mysql-test/r/ctype_utf8mb4_uca.result index c03aaef387a..ca7f1a3d7d4 100644 --- a/mysql-test/r/ctype_utf8mb4_uca.result +++ b/mysql-test/r/ctype_utf8mb4_uca.result @@ -2752,7 +2752,7 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `s1` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_myanmar_ci NOT NULL, + `s1` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_myanmar_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 (s1) VALUES @@ -5338,7 +5338,7 @@ CREATE TABLE t1 AS SELECT SPACE(3) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_thai_520_w2 NOT NULL + `a` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (SPACE(0)),(SPACE(1)),(SPACE(2)); SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(8))) FROM t1; @@ -5371,7 +5371,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES (_ucs2 0x3400); INSERT INTO t1 VALUES (_ucs2 0xF001); @@ -5384,7 +5384,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('A'),('À'),('Ã'),('Â'),('Ã'),('Ä'),('Ã…'); SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a; @@ -5443,7 +5443,7 @@ CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_thai_520_w2 NOT NULL + `a` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_thai_520_w2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 VALUES ('cota'),('cote'),('cotz'); INSERT INTO t1 VALUES ('coté'),('côte'),('côté'),('cotë'),('côtë'); diff --git a/mysql-test/r/default.result b/mysql-test/r/default.result index ded0bbb3cbd..e3088e7ee85 100644 --- a/mysql-test/r/default.result +++ b/mysql-test/r/default.result @@ -107,11 +107,11 @@ 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 a1 b1 drop table t1; drop table t2; create table bug20691 (i int, d datetime NOT NULL, dn datetime not null default '0000-00-00 00:00:00'); -insert into bug20691 values (1, DEFAULT, DEFAULT), (1, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (1, DEFAULT, DEFAULT); +insert ignore into bug20691 values (1, DEFAULT, DEFAULT), (1, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (1, DEFAULT, DEFAULT); Warnings: Warning 1364 Field 'd' doesn't have a default value Warning 1364 Field 'd' doesn't have a default value -insert into bug20691 (i) values (2); +insert ignore into bug20691 (i) values (2); Warnings: Warning 1364 Field 'd' doesn't have a default value desc bug20691; @@ -119,14 +119,14 @@ Field Type Null Key Default Extra i int(11) YES NULL d datetime NO NULL dn datetime NO 0000-00-00 00:00:00 -insert into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT); +insert ignore into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT); Warnings: Warning 1364 Field 'd' doesn't have a default value Warning 1364 Field 'd' doesn't have a default value -insert into bug20691 (i) values (4); +insert ignore into bug20691 (i) values (4); Warnings: Warning 1364 Field 'd' doesn't have a default value -insert into bug20691 values (5, DEFAULT, DEFAULT), (5, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (5, DEFAULT, DEFAULT); +insert ignore into bug20691 values (5, DEFAULT, DEFAULT), (5, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (5, DEFAULT, DEFAULT); Warnings: Warning 1364 Field 'd' doesn't have a default value Warning 1364 Field 'd' doesn't have a default value @@ -1054,7 +1054,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` decimal(30,6) DEFAULT coalesce(curtime(6)) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 VALUES(); +INSERT IGNORE INTO t1 VALUES(); Warnings: Warning 1265 Data truncated for column 'a' at row 1 DROP TABLE t1; @@ -1067,7 +1067,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` decimal(30,6) DEFAULT coalesce(curdate()) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 VALUES(); +INSERT IGNORE INTO t1 VALUES(); Warnings: Warning 1265 Data truncated for column 'a' at row 1 DROP TABLE t1; @@ -1123,7 +1123,7 @@ t1 CREATE TABLE `t1` ( `a` decimal(30,0) DEFAULT current_timestamp(6), `b` decimal(30,0) DEFAULT coalesce(current_timestamp(6)) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 VALUES (); +INSERT IGNORE INTO t1 VALUES (); Warnings: Note 1265 Data truncated for column 'a' at row 1 Warning 1265 Data truncated for column 'b' at row 1 @@ -2181,7 +2181,7 @@ t1 CREATE TABLE `t1` ( `b` varchar(10) DEFAULT (cast(`a` as char(10) charset latin1)), `c` varchar(10) DEFAULT (cast(`a` as char(4) charset latin1)) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 (a) VALUES (123.456); +INSERT IGNORE INTO t1 (a) VALUES (123.456); Warnings: Warning 1292 Truncated incorrect CHAR(4) value: '123.456' SELECT * FROM t1; @@ -2195,7 +2195,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` int(10) unsigned DEFAULT (cast(`a` as unsigned)) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 (a) VALUES (-1); +INSERT IGNORE INTO t1 (a) VALUES (-1); Warnings: Note 1105 Cast to unsigned converted negative integer to it's positive complement Warning 1264 Out of range value for column 'b' at row 1 @@ -2644,7 +2644,7 @@ t1 CREATE TABLE `t1` ( `number_of_bits` int(11) DEFAULT NULL, `x` varchar(30) DEFAULT export_set(`bits`,`v_on`,`v_off`,`v_separator`,`number_of_bits`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 VALUES (0x50006,'Y','N','',64,DEFAULT); +INSERT IGNORE INTO t1 VALUES (0x50006,'Y','N','',64,DEFAULT); Warnings: Warning 1265 Data truncated for column 'x' at row 1 SELECT * FROM t1; diff --git a/mysql-test/r/default_session.result b/mysql-test/r/default_session.result index b00bf27dcf3..6c0bcad0cb3 100644 --- a/mysql-test/r/default_session.result +++ b/mysql-test/r/default_session.result @@ -89,6 +89,6 @@ insert t1 () values (); set sql_mode=default; select * from t1; a -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI drop table t1; diff --git a/mysql-test/r/errors.result b/mysql-test/r/errors.result index 07fa646d558..cf3e738395a 100644 --- a/mysql-test/r/errors.result +++ b/mysql-test/r/errors.result @@ -32,6 +32,8 @@ set sql_mode=default; CREATE TABLE t1 (a INT); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); a +Warnings: +Warning 1365 Division by 0 INSERT INTO t1 VALUES(1); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); a @@ -40,6 +42,8 @@ INSERT INTO t1 VALUES(2),(3); SELECT a FROM t1 WHERE a IN(1, (SELECT IF(1=0,1,2/0))); a 1 +Warnings: +Warning 1365 Division by 0 DROP TABLE t1; CREATE TABLE t1( a INT ); SELECT b FROM t1; diff --git a/mysql-test/r/failed_auth_3909.result b/mysql-test/r/failed_auth_3909.result index 8b41ef4618a..d0fd2c41221 100644 --- a/mysql-test/r/failed_auth_3909.result +++ b/mysql-test/r/failed_auth_3909.result @@ -1,7 +1,7 @@ optimize table mysql.user; Table Op Msg_type Msg_text mysql.user optimize status OK -insert mysql.user (user,plugin) values ('foo','bar'),('bar','bar'),('baz','bar'); +insert ignore mysql.user (user,plugin) values ('foo','bar'),('bar','bar'),('baz','bar'); Warnings: Warning 1364 Field 'ssl_cipher' doesn't have a default value Warning 1364 Field 'x509_issuer' doesn't have a default value diff --git a/mysql-test/r/fulltext.result b/mysql-test/r/fulltext.result index a81faeebaf2..7ee5a68ca90 100644 --- a/mysql-test/r/fulltext.result +++ b/mysql-test/r/fulltext.result @@ -379,6 +379,7 @@ t collation(t) SELECT t, collation(t),FORMAT(MATCH t AGAINST ('Osnabruck'),6) FROM t1 WHERE MATCH t AGAINST ('Osnabruck'); t collation(t) FORMAT(MATCH t AGAINST ('Osnabruck'),6) aus Osnabrück utf8_general_ci 1.591140 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify t varchar(200) collate latin1_german2_ci not null; Warnings: Warning 1366 Incorrect string value: '\xD0\xAD\xD1\x82\xD0\xBE...' for column 't' at row 3 diff --git a/mysql-test/r/func_gconcat.result b/mysql-test/r/func_gconcat.result index 75d227b41d3..0c3d649a6bb 100644 --- a/mysql-test/r/func_gconcat.result +++ b/mysql-test/r/func_gconcat.result @@ -810,7 +810,7 @@ LENGTH( GROUP_CONCAT( DISTINCT a ) ) CREATE TABLE t3( a TEXT, b INT ); INSERT INTO t3 VALUES( REPEAT( 'a', 65534 ), 1 ); INSERT INTO t3 VALUES( REPEAT( 'a', 65535 ), 2 ); -INSERT INTO t3 VALUES( REPEAT( 'a', 65536 ), 3 ); +INSERT IGNORE INTO t3 VALUES( REPEAT( 'a', 65536 ), 3 ); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 1; @@ -834,7 +834,7 @@ id group_concat(b.name) 2 óra,óra drop table t1; create table t1(a bit not null); -insert into t1 values (), (), (); +insert ignore into t1 values (), (), (); Warnings: Warning 1364 Field 'a' doesn't have a default value select group_concat(distinct a) from t1; diff --git a/mysql-test/r/func_hybrid_type.result b/mysql-test/r/func_hybrid_type.result index 746bc55ef85..324db452f9b 100644 --- a/mysql-test/r/func_hybrid_type.result +++ b/mysql-test/r/func_hybrid_type.result @@ -209,6 +209,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` int(10) unsigned DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -416,6 +417,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -623,6 +625,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` bigint(20) unsigned DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -830,6 +833,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` bigint(20) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -1006,6 +1010,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` int(8) unsigned DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -1182,6 +1187,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` int(8) unsigned DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -1358,6 +1364,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` int(8) unsigned DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -1534,6 +1541,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` int(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -1710,6 +1718,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -1886,6 +1895,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` int(4) unsigned DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -2062,6 +2072,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` int(4) unsigned DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -2239,6 +2250,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` time DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -2417,6 +2429,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` time DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -2595,6 +2608,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` time DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -2773,6 +2787,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` date DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, @@ -2965,6 +2980,7 @@ t2 CREATE TABLE `t2` ( `greatest_b_b` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, diff --git a/mysql-test/r/func_in.result b/mysql-test/r/func_in.result index aaf1d981e59..d18681bc80d 100644 --- a/mysql-test/r/func_in.result +++ b/mysql-test/r/func_in.result @@ -487,6 +487,8 @@ CREATE TABLE t1 (id int not null); INSERT INTO t1 VALUES (1),(2); SELECT id FROM t1 WHERE id IN(4564, (SELECT IF(1=0,1,1/0)) ); id +Warnings: +Warning 1365 Division by 0 DROP TABLE t1; End of 5.0 tests create table t1(f1 char(1)); @@ -627,9 +629,9 @@ c_char CHAR(10) NOT NULL, INDEX(c_int), INDEX(c_decimal), INDEX(c_float), INDEX(c_bit), INDEX(c_date), INDEX(c_datetime), INDEX(c_timestamp), INDEX(c_time), INDEX(c_year), INDEX(c_char)); -INSERT INTO t1 (c_int) VALUES (1), (2), (3), (4), (5); -INSERT INTO t1 (c_int) SELECT 0 FROM t1; -INSERT INTO t1 (c_int) SELECT 0 FROM t1; +INSERT IGNORE INTO t1 (c_int) VALUES (1), (2), (3), (4), (5); +INSERT IGNORE INTO t1 (c_int) SELECT 0 FROM t1; +INSERT IGNORE INTO t1 (c_int) SELECT 0 FROM t1; EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, 2, 3); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index bdee7cb9f7f..e8d11fce56f 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -266,7 +266,7 @@ create table t1 as select json_object('id', 87, 'name', 'carrot') as f; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `f` varchar(32) NOT NULL + `f` varchar(32) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select * from t1; f @@ -291,7 +291,7 @@ json_quote('foo') show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `json_quote('foo')` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL + `json_quote('foo')` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select json_merge('string'); diff --git a/mysql-test/r/func_like.result b/mysql-test/r/func_like.result index 0a309bcfab6..0ba8e41f164 100644 --- a/mysql-test/r/func_like.result +++ b/mysql-test/r/func_like.result @@ -175,7 +175,7 @@ End of 4.1 tests # CREATE TABLE t1(a SET('a') NOT NULL, UNIQUE KEY(a)); CREATE TABLE t2(b INT PRIMARY KEY); -INSERT INTO t1 VALUES (); +INSERT IGNORE INTO t1 VALUES (); Warnings: Warning 1364 Field 'a' doesn't have a default value INSERT INTO t2 VALUES (1), (2), (3); diff --git a/mysql-test/r/func_math.result b/mysql-test/r/func_math.result index f02776d4448..8ca10203add 100644 --- a/mysql-test/r/func_math.result +++ b/mysql-test/r/func_math.result @@ -45,6 +45,10 @@ Note 1003 select abs(-10) AS `abs(-10)`,sign(-5) AS `sign(-5)`,sign(5) AS `sign( select log(exp(10)),exp(log(sqrt(10))*2),log(-1),log(NULL),log(1,1),log(3,9),log(-1,2),log(NULL,2); log(exp(10)) exp(log(sqrt(10))*2) log(-1) log(NULL) log(1,1) log(3,9) log(-1,2) log(NULL,2) 10 10.000000000000002 NULL NULL NULL 2 NULL NULL +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 explain extended select log(exp(10)),exp(log(sqrt(10))*2),log(-1),log(NULL),log(1,1),log(3,9),log(-1,2),log(NULL,2); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used @@ -53,6 +57,9 @@ Note 1003 select log(exp(10)) AS `log(exp(10))`,exp(log(sqrt(10)) * 2) AS `exp(l select ln(exp(10)),exp(ln(sqrt(10))*2),ln(-1),ln(0),ln(NULL); ln(exp(10)) exp(ln(sqrt(10))*2) ln(-1) ln(0) ln(NULL) 10 10.000000000000002 NULL NULL NULL +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 explain extended select ln(exp(10)),exp(ln(sqrt(10))*2),ln(-1),ln(0),ln(NULL); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used @@ -61,6 +68,9 @@ Note 1003 select ln(exp(10)) AS `ln(exp(10))`,exp(ln(sqrt(10)) * 2) AS `exp(ln(s select log2(8),log2(15),log2(-2),log2(0),log2(NULL); log2(8) log2(15) log2(-2) log2(0) log2(NULL) 3 3.9068905956085187 NULL NULL NULL +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 explain extended select log2(8),log2(15),log2(-2),log2(0),log2(NULL); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used @@ -69,6 +79,9 @@ Note 1003 select log2(8) AS `log2(8)`,log2(15) AS `log2(15)`,log2(-2) AS `log2(- select log10(100),log10(18),log10(-4),log10(0),log10(NULL); log10(100) log10(18) log10(-4) log10(0) log10(NULL) 2 1.255272505103306 NULL NULL NULL +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 explain extended select log10(100),log10(18),log10(-4),log10(0),log10(NULL); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used @@ -688,6 +701,8 @@ ERROR 22003: DECIMAL value is out of range in '@`a` / 0.5' SELECT COT(1/0); COT(1/0) NULL +Warnings: +Warning 1365 Division by 0 SELECT -1 + 9223372036854775808; -1 + 9223372036854775808 9223372036854775807 @@ -697,6 +712,9 @@ SELECT 2 DIV -2; SELECT -(1 DIV 0); -(1 DIV 0) NULL +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 SELECT -9223372036854775808 MOD -1; -9223372036854775808 MOD -1 0 @@ -715,7 +733,7 @@ Warning 1292 Truncated incorrect DOUBLE value: '179,769,313,486,231,570,000,000, # my_gcvt: Assertion `width > 0 && to != ((void *)0)' failed # CREATE TABLE t1(a char(0)); -INSERT INTO t1 (SELECT -pi()); +INSERT IGNORE INTO t1 (SELECT -pi()); Warnings: Warning 1265 Data truncated for column 'a' at row 1 DROP TABLE t1; @@ -728,6 +746,7 @@ SELECT ((@a:=@b:=1.0) div (@b:=@a:=get_format(datetime, 'usa'))); NULL Warnings: Warning 1918 Encountered illegal value '' when converting to DECIMAL +Warning 1365 Division by 0 # # Bug #59498 div function broken in mysql-trunk # @@ -767,6 +786,8 @@ foo select 999999999999999999999999999999999999999999999999999999999999999999999999999999999 % 0.0 as foo; foo NULL +Warnings: +Warning 1365 Division by 0 # # Bug#12711164 - 61676: # RESULT OF DIV WITH DECIMAL AND INTEGER DOES NOT MAKE SENSE diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result index 10423a4b105..bbc7f1a0a0a 100644 --- a/mysql-test/r/func_misc.result +++ b/mysql-test/r/func_misc.result @@ -107,8 +107,8 @@ create table t1 as select uuid(), length(uuid()); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `uuid()` varchar(36) CHARACTER SET utf8 NOT NULL, - `length(uuid())` int(10) NOT NULL + `uuid()` varchar(36) CHARACTER SET utf8 DEFAULT NULL, + `length(uuid())` int(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 select INET_ATON('255.255.0.1') as `a`; diff --git a/mysql-test/r/func_regexp_pcre.result b/mysql-test/r/func_regexp_pcre.result index fcff0484b65..18aa7ed8379 100644 --- a/mysql-test/r/func_regexp_pcre.result +++ b/mysql-test/r/func_regexp_pcre.result @@ -436,7 +436,7 @@ CREATE TABLE t1 AS SELECT REGEXP_REPLACE('abc','b','x'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `REGEXP_REPLACE('abc','b','x')` longtext CHARACTER SET utf8 NOT NULL + `REGEXP_REPLACE('abc','b','x')` longtext CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; EXPLAIN EXTENDED SELECT REGEXP_REPLACE('abc','b','x'); @@ -444,6 +444,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select regexp_replace('abc','b','x') AS `REGEXP_REPLACE('abc','b','x')` +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT REGEXP_REPLACE('abc','b','x')+0; Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'axc' @@ -738,7 +739,7 @@ CREATE TABLE t1 AS SELECT REGEXP_SUBSTR('abc','b'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `REGEXP_SUBSTR('abc','b')` varchar(3) CHARACTER SET utf8 NOT NULL + `REGEXP_SUBSTR('abc','b')` varchar(3) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; EXPLAIN EXTENDED SELECT REGEXP_SUBSTR('abc','b'); @@ -746,6 +747,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select regexp_substr('abc','b') AS `REGEXP_SUBSTR('abc','b')` +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT REGEXP_SUBSTR('abc','b')+0; Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'b' diff --git a/mysql-test/r/func_set.result b/mysql-test/r/func_set.result index 3ffbe275fb9..46be54ca6a4 100644 --- a/mysql-test/r/func_set.result +++ b/mysql-test/r/func_set.result @@ -148,7 +148,7 @@ NULL drop table t1; CREATE TABLE t1( a SET('a', 'b', 'c') ); CREATE TABLE t2( a SET('a', 'b', 'c') ); -INSERT INTO t1 VALUES ('d'); +INSERT IGNORE INTO t1 VALUES ('d'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t2 VALUES (''); diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index ac7ab2bede6..8ca0d8c0297 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -318,6 +318,8 @@ quote(concat('abc\'', '\\cba')) select quote(1/0), quote('\0\Z'); quote(1/0) quote('\0\Z') NULL '\0\Z' +Warnings: +Warning 1365 Division by 0 select length(quote(concat(char(0),"test"))); length(quote(concat(char(0),"test"))) 8 @@ -729,34 +731,34 @@ t1 CREATE TABLE `t1` ( `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, - `char(130)` varbinary(4) NOT NULL, - `format(130,10)` varchar(45) NOT NULL, - `left(_latin2'a',1)` varchar(1) CHARACTER SET latin2 NOT NULL, - `right(_latin2'a',1)` varchar(1) CHARACTER SET latin2 NOT NULL, - `lcase(_latin2'a')` varchar(1) CHARACTER SET latin2 NOT NULL, - `ucase(_latin2'a')` varchar(1) CHARACTER SET latin2 NOT NULL, - `substring(_latin2'a',1,1)` varchar(1) CHARACTER SET latin2 NOT NULL, - `concat(_latin2'a',_latin2'b')` varchar(2) CHARACTER SET latin2 NOT NULL, - `lpad(_latin2'a',4,_latin2'b')` varchar(4) CHARACTER SET latin2 NOT NULL, - `rpad(_latin2'a',4,_latin2'b')` varchar(4) CHARACTER SET latin2 NOT NULL, - `concat_ws(_latin2'a',_latin2'b')` varchar(1) CHARACTER SET latin2 NOT NULL, - `make_set(255,_latin2'a',_latin2'b',_latin2'c')` varchar(5) CHARACTER SET latin2 NOT NULL, - `export_set(255,_latin2'y',_latin2'n',_latin2' ')` varchar(127) CHARACTER SET latin2 NOT NULL, - `trim(_latin2' a ')` varchar(3) CHARACTER SET latin2 NOT NULL, - `ltrim(_latin2' a ')` varchar(3) CHARACTER SET latin2 NOT NULL, - `rtrim(_latin2' a ')` varchar(3) CHARACTER SET latin2 NOT NULL, - `trim(LEADING _latin2' ' FROM _latin2' a ')` varchar(3) CHARACTER SET latin2 NOT NULL, - `trim(TRAILING _latin2' ' FROM _latin2' a ')` varchar(3) CHARACTER SET latin2 NOT NULL, - `trim(BOTH _latin2' ' FROM _latin2' a ')` varchar(3) CHARACTER SET latin2 NOT NULL, - `repeat(_latin2'a',10)` varchar(10) CHARACTER SET latin2 NOT NULL, - `reverse(_latin2'ab')` varchar(2) CHARACTER SET latin2 NOT NULL, - `quote(_latin2'ab')` varchar(6) CHARACTER SET latin2 NOT NULL, - `soundex(_latin2'ab')` varchar(4) CHARACTER SET latin2 NOT NULL, - `substring(_latin2'ab',1)` varchar(2) CHARACTER SET latin2 NOT NULL, - `insert(_latin2'abcd',2,3,_latin2'ef')` varchar(6) CHARACTER SET latin2 NOT NULL, - `replace(_latin2'abcd',_latin2'b',_latin2'B')` varchar(4) CHARACTER SET latin2 NOT NULL, - `encode('abcd','ab')` varbinary(4) NOT NULL + `hex(130)` varchar(6) DEFAULT NULL, + `char(130)` varbinary(4) DEFAULT NULL, + `format(130,10)` varchar(45) DEFAULT NULL, + `left(_latin2'a',1)` varchar(1) CHARACTER SET latin2 DEFAULT NULL, + `right(_latin2'a',1)` varchar(1) CHARACTER SET latin2 DEFAULT NULL, + `lcase(_latin2'a')` varchar(1) CHARACTER SET latin2 DEFAULT NULL, + `ucase(_latin2'a')` varchar(1) CHARACTER SET latin2 DEFAULT NULL, + `substring(_latin2'a',1,1)` varchar(1) CHARACTER SET latin2 DEFAULT NULL, + `concat(_latin2'a',_latin2'b')` varchar(2) CHARACTER SET latin2 DEFAULT NULL, + `lpad(_latin2'a',4,_latin2'b')` varchar(4) CHARACTER SET latin2 DEFAULT NULL, + `rpad(_latin2'a',4,_latin2'b')` varchar(4) CHARACTER SET latin2 DEFAULT NULL, + `concat_ws(_latin2'a',_latin2'b')` varchar(1) CHARACTER SET latin2 DEFAULT NULL, + `make_set(255,_latin2'a',_latin2'b',_latin2'c')` varchar(5) CHARACTER SET latin2 DEFAULT NULL, + `export_set(255,_latin2'y',_latin2'n',_latin2' ')` varchar(127) CHARACTER SET latin2 DEFAULT NULL, + `trim(_latin2' a ')` varchar(3) CHARACTER SET latin2 DEFAULT NULL, + `ltrim(_latin2' a ')` varchar(3) CHARACTER SET latin2 DEFAULT NULL, + `rtrim(_latin2' a ')` varchar(3) CHARACTER SET latin2 DEFAULT NULL, + `trim(LEADING _latin2' ' FROM _latin2' a ')` varchar(3) CHARACTER SET latin2 DEFAULT NULL, + `trim(TRAILING _latin2' ' FROM _latin2' a ')` varchar(3) CHARACTER SET latin2 DEFAULT NULL, + `trim(BOTH _latin2' ' FROM _latin2' a ')` varchar(3) CHARACTER SET latin2 DEFAULT NULL, + `repeat(_latin2'a',10)` varchar(10) CHARACTER SET latin2 DEFAULT NULL, + `reverse(_latin2'ab')` varchar(2) CHARACTER SET latin2 DEFAULT NULL, + `quote(_latin2'ab')` varchar(6) CHARACTER SET latin2 DEFAULT NULL, + `soundex(_latin2'ab')` varchar(4) CHARACTER SET latin2 DEFAULT NULL, + `substring(_latin2'ab',1)` varchar(2) CHARACTER SET latin2 DEFAULT NULL, + `insert(_latin2'abcd',2,3,_latin2'ef')` varchar(6) CHARACTER SET latin2 DEFAULT NULL, + `replace(_latin2'abcd',_latin2'b',_latin2'B')` varchar(4) CHARACTER SET latin2 DEFAULT NULL, + `encode('abcd','ab')` varbinary(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 (a char character set latin2); @@ -1062,11 +1064,11 @@ aaaaaaaaaaccccc bbbbbbbbbbddddd drop table t1, t2; create table t1 (c1 INT, c2 INT UNSIGNED); -insert into t1 values ('21474836461','21474836461'); +insert ignore into t1 values ('21474836461','21474836461'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 -insert into t1 values ('-21474836461','-21474836461'); +insert ignore into t1 values ('-21474836461','-21474836461'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -2855,7 +2857,7 @@ CREATE TABLE t1 AS SELECT format(123,2,'no_NO'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `format(123,2,'no_NO')` varchar(45) NOT NULL + `format(123,2,'no_NO')` varchar(45) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t1; format(123,2,'no_NO') @@ -2997,7 +2999,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',63)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(85) NOT NULL + `to_base64` varchar(85) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3019,7 +3021,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',62)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(85) NOT NULL + `to_base64` varchar(85) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3041,7 +3043,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',61)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(85) NOT NULL + `to_base64` varchar(85) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3063,7 +3065,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',60)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(81) NOT NULL + `to_base64` varchar(81) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3085,7 +3087,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',59)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(81) NOT NULL + `to_base64` varchar(81) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3107,7 +3109,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',58)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(81) NOT NULL + `to_base64` varchar(81) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3129,7 +3131,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',57)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(76) NOT NULL + `to_base64` varchar(76) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3150,7 +3152,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',56)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(76) NOT NULL + `to_base64` varchar(76) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3171,7 +3173,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',55)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(76) NOT NULL + `to_base64` varchar(76) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3192,7 +3194,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',54)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(72) NOT NULL + `to_base64` varchar(72) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3213,7 +3215,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',53)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(72) NOT NULL + `to_base64` varchar(72) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3234,7 +3236,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',52)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(72) NOT NULL + `to_base64` varchar(72) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3255,7 +3257,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',51)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(68) NOT NULL + `to_base64` varchar(68) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3276,7 +3278,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',50)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(68) NOT NULL + `to_base64` varchar(68) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3297,7 +3299,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',49)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(68) NOT NULL + `to_base64` varchar(68) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3318,7 +3320,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',48)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(64) NOT NULL + `to_base64` varchar(64) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3339,7 +3341,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',47)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(64) NOT NULL + `to_base64` varchar(64) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3360,7 +3362,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',46)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(64) NOT NULL + `to_base64` varchar(64) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3381,7 +3383,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',45)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(60) NOT NULL + `to_base64` varchar(60) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3402,7 +3404,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',44)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(60) NOT NULL + `to_base64` varchar(60) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3423,7 +3425,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',43)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(60) NOT NULL + `to_base64` varchar(60) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3444,7 +3446,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',42)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(56) NOT NULL + `to_base64` varchar(56) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3465,7 +3467,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',41)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(56) NOT NULL + `to_base64` varchar(56) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3486,7 +3488,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',40)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(56) NOT NULL + `to_base64` varchar(56) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3507,7 +3509,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',39)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(52) NOT NULL + `to_base64` varchar(52) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3528,7 +3530,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',38)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(52) NOT NULL + `to_base64` varchar(52) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3549,7 +3551,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',37)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(52) NOT NULL + `to_base64` varchar(52) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3570,7 +3572,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',36)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(48) NOT NULL + `to_base64` varchar(48) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3591,7 +3593,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',35)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(48) NOT NULL + `to_base64` varchar(48) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3612,7 +3614,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',34)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(48) NOT NULL + `to_base64` varchar(48) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3633,7 +3635,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',33)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(44) NOT NULL + `to_base64` varchar(44) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3654,7 +3656,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',32)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(44) NOT NULL + `to_base64` varchar(44) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3675,7 +3677,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',31)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(44) NOT NULL + `to_base64` varchar(44) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3696,7 +3698,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',30)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(40) NOT NULL + `to_base64` varchar(40) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3717,7 +3719,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',29)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(40) NOT NULL + `to_base64` varchar(40) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3738,7 +3740,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',28)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(40) NOT NULL + `to_base64` varchar(40) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3759,7 +3761,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',27)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(36) NOT NULL + `to_base64` varchar(36) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3780,7 +3782,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',26)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(36) NOT NULL + `to_base64` varchar(36) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3801,7 +3803,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',25)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(36) NOT NULL + `to_base64` varchar(36) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3822,7 +3824,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',24)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(32) NOT NULL + `to_base64` varchar(32) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3843,7 +3845,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',23)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(32) NOT NULL + `to_base64` varchar(32) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3864,7 +3866,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',22)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(32) NOT NULL + `to_base64` varchar(32) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3885,7 +3887,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',21)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(28) NOT NULL + `to_base64` varchar(28) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3906,7 +3908,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',20)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(28) NOT NULL + `to_base64` varchar(28) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3927,7 +3929,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',19)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(28) NOT NULL + `to_base64` varchar(28) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3948,7 +3950,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',18)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(24) NOT NULL + `to_base64` varchar(24) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3969,7 +3971,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',17)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(24) NOT NULL + `to_base64` varchar(24) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -3990,7 +3992,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',16)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(24) NOT NULL + `to_base64` varchar(24) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4011,7 +4013,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',15)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(20) NOT NULL + `to_base64` varchar(20) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4032,7 +4034,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',14)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(20) NOT NULL + `to_base64` varchar(20) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4053,7 +4055,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',13)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(20) NOT NULL + `to_base64` varchar(20) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4074,7 +4076,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',12)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(16) NOT NULL + `to_base64` varchar(16) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4095,7 +4097,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',11)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(16) NOT NULL + `to_base64` varchar(16) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4116,7 +4118,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',10)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(16) NOT NULL + `to_base64` varchar(16) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4137,7 +4139,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',9)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(12) NOT NULL + `to_base64` varchar(12) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4158,7 +4160,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',8)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(12) NOT NULL + `to_base64` varchar(12) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4179,7 +4181,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',7)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(12) NOT NULL + `to_base64` varchar(12) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4200,7 +4202,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',6)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(8) NOT NULL + `to_base64` varchar(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4221,7 +4223,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',5)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(8) NOT NULL + `to_base64` varchar(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4242,7 +4244,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',4)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(8) NOT NULL + `to_base64` varchar(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4263,7 +4265,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',3)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(4) NOT NULL + `to_base64` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4284,7 +4286,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',2)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(4) NOT NULL + `to_base64` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4305,7 +4307,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',1)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` varchar(4) NOT NULL + `to_base64` varchar(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) @@ -4326,7 +4328,7 @@ CREATE TABLE t1 AS SELECT TO_BASE64(REPEAT('a',0)) AS to_base64; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `to_base64` char(0) NOT NULL + `to_base64` char(0) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT to_base64, LENGTH(to_base64) FROM t1; to_base64 LENGTH(to_base64) diff --git a/mysql-test/r/func_system.result b/mysql-test/r/func_system.result index 2fc0a59f5d2..06fb7e44cf0 100644 --- a/mysql-test/r/func_system.result +++ b/mysql-test/r/func_system.result @@ -47,7 +47,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `database()` varchar(34) CHARACTER SET utf8 DEFAULT NULL, - `user()` varchar(141) CHARACTER SET utf8 NOT NULL, + `user()` varchar(141) CHARACTER SET utf8 DEFAULT NULL, `version` char(60) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; @@ -61,8 +61,8 @@ create table t1 select charset(_utf8'a'), collation(_utf8'a'); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `charset(_utf8'a')` varchar(64) CHARACTER SET utf8 NOT NULL, - `collation(_utf8'a')` varchar(64) CHARACTER SET utf8 NOT NULL + `charset(_utf8'a')` varchar(64) CHARACTER SET utf8 DEFAULT NULL, + `collation(_utf8'a')` varchar(64) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select TRUE,FALSE,NULL; diff --git a/mysql-test/r/func_test.result b/mysql-test/r/func_test.result index f999061e2e7..8f175a6805b 100644 --- a/mysql-test/r/func_test.result +++ b/mysql-test/r/func_test.result @@ -185,12 +185,18 @@ select 5 mod 3, 5 mod -3, -5 mod 3, -5 mod -3; select (12%0) <=> null as '1'; 1 1 +Warnings: +Warning 1365 Division by 0 select (12%0) is null as '1'; 1 1 +Warnings: +Warning 1365 Division by 0 select 12%0 as 'NULL'; NULL NULL +Warnings: +Warning 1365 Division by 0 select 12%2 as '0'; 0 0 @@ -215,12 +221,18 @@ NULL select (12 mod 0) <=> null as '1'; 1 1 +Warnings: +Warning 1365 Division by 0 select (12 mod 0) is null as '1'; 1 1 +Warnings: +Warning 1365 Division by 0 select 12 mod 0 as 'NULL'; NULL NULL +Warnings: +Warning 1365 Division by 0 select 12 mod 2 as '0'; 0 0 @@ -242,9 +254,13 @@ NULL select mod(12.0, 0) as 'NULL'; NULL NULL +Warnings: +Warning 1365 Division by 0 select mod(12, 0.0) as 'NULL'; NULL NULL +Warnings: +Warning 1365 Division by 0 select mod(12, NULL) as 'NULL'; NULL NULL diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result index 4d0a2a021f9..814cd2dc5aa 100644 --- a/mysql-test/r/func_time.result +++ b/mysql-test/r/func_time.result @@ -1031,7 +1031,7 @@ EXTRACT(HOUR FROM '10000:02:03') Warnings: Warning 1292 Truncated incorrect time value: '10000:02:03' CREATE TABLE t1(f1 TIME); -INSERT INTO t1 VALUES('916:00:00 a'); +INSERT IGNORE INTO t1 VALUES('916:00:00 a'); Warnings: Warning 1265 Data truncated for column 'f1' at row 1 Warning 1264 Out of range value for column 'f1' at row 1 @@ -2145,6 +2145,7 @@ f2 Warnings: Warning 1292 Truncated incorrect DECIMAL value: '2005-05-0410' Warning 1292 Truncated incorrect DECIMAL value: '2005-05-0410' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CONCAT(FROM_UNIXTIME(CONCAT(a,'10')) MOD FROM_UNIXTIME(CONCAT(a,'10'))) AS f2 FROM t1; Warnings: Warning 1292 Truncated incorrect DECIMAL value: '2005-05-0410' diff --git a/mysql-test/r/function_defaults.result b/mysql-test/r/function_defaults.result index 4b8694ec838..62422752e17 100644 --- a/mysql-test/r/function_defaults.result +++ b/mysql-test/r/function_defaults.result @@ -1040,7 +1040,7 @@ FROM dual; SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual; # Mon Aug 1 15:11:19 2011 UTC SET TIMESTAMP = 1312211479.918273; -LOAD DATA INFILE 't3.dat' INTO TABLE t1; +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -1060,7 +1060,7 @@ f NULL g NULL h NULL i NULL -LOAD DATA INFILE 't4.dat' INTO TABLE t2; +LOAD DATA INFILE 't4.dat' IGNORE INTO TABLE t2; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'e' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f' at row 1 @@ -1110,7 +1110,7 @@ DELETE FROM t2; # (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command # above. The code in this path is copy-pasted code from the path taken # under the syntax used in the previous LOAD command. -LOAD DATA INFILE 't3.dat' INTO TABLE t1 +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY ''; Warnings: Warning 1261 Row 1 doesn't contain data for all columns @@ -1234,7 +1234,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -1286,7 +1286,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -1353,7 +1353,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 @@ -1391,7 +1391,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 @@ -2586,7 +2586,7 @@ FROM dual; SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual; # Mon Aug 1 15:11:19 2011 UTC SET TIMESTAMP = 1312211479.918273; -LOAD DATA INFILE 't3.dat' INTO TABLE t1; +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -2606,7 +2606,7 @@ f NULL g NULL h NULL i NULL -LOAD DATA INFILE 't4.dat' INTO TABLE t2; +LOAD DATA INFILE 't4.dat' IGNORE INTO TABLE t2; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'e' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f' at row 1 @@ -2656,7 +2656,7 @@ DELETE FROM t2; # (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command # above. The code in this path is copy-pasted code from the path taken # under the syntax used in the previous LOAD command. -LOAD DATA INFILE 't3.dat' INTO TABLE t1 +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY ''; Warnings: Warning 1261 Row 1 doesn't contain data for all columns @@ -2780,7 +2780,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -2832,7 +2832,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -2899,7 +2899,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 @@ -2937,7 +2937,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 diff --git a/mysql-test/r/function_defaults_innodb.result b/mysql-test/r/function_defaults_innodb.result index fe97870ab88..dd769f8577a 100644 --- a/mysql-test/r/function_defaults_innodb.result +++ b/mysql-test/r/function_defaults_innodb.result @@ -1041,7 +1041,7 @@ FROM dual; SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual; # Mon Aug 1 15:11:19 2011 UTC SET TIMESTAMP = 1312211479.918273; -LOAD DATA INFILE 't3.dat' INTO TABLE t1; +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -1061,7 +1061,7 @@ f NULL g NULL h NULL i NULL -LOAD DATA INFILE 't4.dat' INTO TABLE t2; +LOAD DATA INFILE 't4.dat' IGNORE INTO TABLE t2; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'e' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f' at row 1 @@ -1111,7 +1111,7 @@ DELETE FROM t2; # (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command # above. The code in this path is copy-pasted code from the path taken # under the syntax used in the previous LOAD command. -LOAD DATA INFILE 't3.dat' INTO TABLE t1 +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY ''; Warnings: Warning 1261 Row 1 doesn't contain data for all columns @@ -1235,7 +1235,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -1287,7 +1287,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -1354,7 +1354,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 @@ -1392,7 +1392,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 @@ -2587,7 +2587,7 @@ FROM dual; SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual; # Mon Aug 1 15:11:19 2011 UTC SET TIMESTAMP = 1312211479.918273; -LOAD DATA INFILE 't3.dat' INTO TABLE t1; +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -2607,7 +2607,7 @@ f NULL g NULL h NULL i NULL -LOAD DATA INFILE 't4.dat' INTO TABLE t2; +LOAD DATA INFILE 't4.dat' IGNORE INTO TABLE t2; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'e' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f' at row 1 @@ -2657,7 +2657,7 @@ DELETE FROM t2; # (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command # above. The code in this path is copy-pasted code from the path taken # under the syntax used in the previous LOAD command. -LOAD DATA INFILE 't3.dat' INTO TABLE t1 +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY ''; Warnings: Warning 1261 Row 1 doesn't contain data for all columns @@ -2781,7 +2781,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -2833,7 +2833,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file1.dat" INTO table t1; +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns @@ -2900,7 +2900,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 @@ -2938,7 +2938,7 @@ t1 CREATE TABLE `t1` ( `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT 42 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -LOAD DATA INFILE "file2.dat" INTO table t1; +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 diff --git a/mysql-test/r/get_diagnostics.result b/mysql-test/r/get_diagnostics.result index 6ea2d150185..fbe3a02ee88 100644 --- a/mysql-test/r/get_diagnostics.result +++ b/mysql-test/r/get_diagnostics.result @@ -625,9 +625,10 @@ END| CREATE TABLE t1 (a INT); CALL p1(); v -T +NULL Warnings: Note 1050 Table 't1' already exists +Error 1406 Data too long for column 'v' at row 1 DROP TABLE t1; DROP PROCEDURE p1; diff --git a/mysql-test/r/gis-rtree.result b/mysql-test/r/gis-rtree.result index 43c51b838e2..b76d02ef1d7 100644 --- a/mysql-test/r/gis-rtree.result +++ b/mysql-test/r/gis-rtree.result @@ -800,7 +800,7 @@ drop table t1; CREATE TABLE t1 (st varchar(100)); INSERT INTO t1 VALUES ("Fake string"); CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)); -INSERT INTO t2 SELECT GeomFromText(st) FROM t1; +INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field drop table t1, t2; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) ENGINE=MyISAM DEFAULT CHARSET=latin1; @@ -1453,7 +1453,7 @@ drop table t1; CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ); INSERT INTO t1(foo) VALUES (NULL); ERROR 23000: Column 'foo' cannot be null -INSERT INTO t1() VALUES (); +INSERT IGNORE INTO t1() VALUES (); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field INSERT INTO t1(foo) VALUES (''); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result index ed0d8f540a0..005b4239e9c 100644 --- a/mysql-test/r/gis.result +++ b/mysql-test/r/gis.result @@ -807,7 +807,7 @@ drop procedure if exists fn3; create function fn3 () returns point deterministic return GeomFromText("point(1 1)"); show create function fn3; Function sql_mode Create Function character_set_client collation_connection Database Collation -fn3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point +fn3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point DETERMINISTIC return GeomFromText("point(1 1)") latin1 latin1_swedish_ci latin1_swedish_ci select astext(fn3()); @@ -1616,8 +1616,8 @@ insert into t1 values(geomfromtext("POINT(0 9.2233720368548e18)")); select equals(`a`,convert(`a` using utf8)) from `t1`; equals(`a`,convert(`a` using utf8)) 1 -0 -0 +NULL +NULL Warnings: Warning 1300 Invalid utf8 character string: '\xE0C' Warning 1300 Invalid utf8 character string: '\xE0C' diff --git a/mysql-test/r/having.result b/mysql-test/r/having.result index c008f6b4d13..18fb5e2de72 100644 --- a/mysql-test/r/having.result +++ b/mysql-test/r/having.result @@ -370,7 +370,7 @@ select * from t1 a, t1 b group by a.s1 having s1 is null; ERROR 23000: Column 's1' in having clause is ambiguous drop table t1; create table t1 (s1 char character set latin1 collate latin1_german1_ci); -insert into t1 values ('ü'),('y'); +insert ignore into t1 values ('ü'),('y'); Warnings: Warning 1265 Data truncated for column 's1' at row 1 select s1,count(s1) from t1 diff --git a/mysql-test/r/help.result b/mysql-test/r/help.result index aefe6f8381e..66850e75dc1 100644 --- a/mysql-test/r/help.result +++ b/mysql-test/r/help.result @@ -1,46 +1,46 @@ -insert into mysql.help_category(help_category_id,name)values(10001,'impossible_category_1'); +insert ignore into mysql.help_category(help_category_id,name)values(10001,'impossible_category_1'); Warnings: Warning 1364 Field 'url' doesn't have a default value select @category1_id:= 10001; @category1_id:= 10001 10001 -insert into mysql.help_category(help_category_id,name)values(10002,'impossible_category_2'); +insert ignore into mysql.help_category(help_category_id,name)values(10002,'impossible_category_2'); Warnings: Warning 1364 Field 'url' doesn't have a default value select @category2_id:= 10002; @category2_id:= 10002 10002 -insert into mysql.help_category(help_category_id,name,parent_category_id)values(10003,'impossible_category_3',@category2_id); +insert ignore into mysql.help_category(help_category_id,name,parent_category_id)values(10003,'impossible_category_3',@category2_id); Warnings: Warning 1364 Field 'url' doesn't have a default value select @category3_id:= 10003; @category3_id:= 10003 10003 -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10101,'impossible_function_1',@category1_id,'description of \n impossible_function1\n','example of \n impossible_function1'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10101,'impossible_function_1',@category1_id,'description of \n impossible_function1\n','example of \n impossible_function1'); Warnings: Warning 1364 Field 'url' doesn't have a default value select @topic1_id:= 10101; @topic1_id:= 10101 10101 -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10102,'impossible_function_2',@category1_id,'description of \n impossible_function2\n','example of \n impossible_function2'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10102,'impossible_function_2',@category1_id,'description of \n impossible_function2\n','example of \n impossible_function2'); Warnings: Warning 1364 Field 'url' doesn't have a default value select @topic2_id:= 10102; @topic2_id:= 10102 10102 -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10103,'impossible_function_3',@category2_id,'description of \n impossible_function3\n','example of \n impossible_function3'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10103,'impossible_function_3',@category2_id,'description of \n impossible_function3\n','example of \n impossible_function3'); Warnings: Warning 1364 Field 'url' doesn't have a default value select @topic3_id:= 10103; @topic3_id:= 10103 10103 -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10104,'impossible_function_4',@category2_id,'description of \n impossible_function4\n','example of \n impossible_function4'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10104,'impossible_function_4',@category2_id,'description of \n impossible_function4\n','example of \n impossible_function4'); Warnings: Warning 1364 Field 'url' doesn't have a default value select @topic4_id:= 10104; @topic4_id:= 10104 10104 -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10105,'impossible_function_7',@category3_id,'description of \n impossible_function5\n','example of \n impossible_function7'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10105,'impossible_function_7',@category3_id,'description of \n impossible_function5\n','example of \n impossible_function7'); Warnings: Warning 1364 Field 'url' doesn't have a default value select @topic5_id:= 10105; diff --git a/mysql-test/r/innodb_icp.result b/mysql-test/r/innodb_icp.result index abc41244c7d..207317c1add 100644 --- a/mysql-test/r/innodb_icp.result +++ b/mysql-test/r/innodb_icp.result @@ -474,7 +474,7 @@ CREATE TABLE t2 ( t2_int int PRIMARY KEY, t2_int2 INT ); -INSERT INTO t2 VALUES (); +INSERT IGNORE INTO t2 VALUES (); INSERT INTO t1 VALUES (); SELECT * FROM t1 AS t1a WHERE NOT EXISTS (SELECT * FROM t1 AS t1b @@ -568,7 +568,7 @@ COL1000 VARBINARY(179) NOT NULL, col1003 DATE DEFAULT NULL, KEY idx4267 (col1000, col1003) ); -INSERT INTO t1 VALUES (),(); +INSERT IGNORE INTO t1 VALUES (),(); Warnings: Warning 1364 Field 'col999' doesn't have a default value Warning 1364 Field 'COL1000' doesn't have a default value @@ -849,7 +849,7 @@ Handler_icp_attempts 2 Handler_icp_match 1 DROP TABLE t1; create table t1 (a int,b char(5),primary key (a), key (b(1))); -insert into t1 values ('a','b'); +insert ignore into t1 values ('a','b'); Warnings: Warning 1366 Incorrect integer value: 'a' for column 'a' at row 1 select 1 from t1 where a and b >= 'aa'; diff --git a/mysql-test/r/insert.result b/mysql-test/r/insert.result index 22d514f2df2..c9e3dc7b253 100644 --- a/mysql-test/r/insert.result +++ b/mysql-test/r/insert.result @@ -90,7 +90,7 @@ drop database mysqltest; use test; create table t1(number int auto_increment primary key, original_value varchar(50), f_double double, f_float float, f_double_7_2 double(7,2), f_float_4_3 float (4,3), f_double_u double unsigned, f_float_u float unsigned, f_double_15_1_u double(15,1) unsigned, f_float_3_1_u float (3,1) unsigned); set @value= "aa"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); Warnings: Warning 1366 Incorrect double value: 'aa' for column 'f_double' at row 1 Warning 1366 Incorrect double value: 'aa' for column 'f_float' at row 1 @@ -112,7 +112,7 @@ f_float_u 0 f_double_15_1_u 0.0 f_float_3_1_u 0.0 set @value= "1aa"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); Warnings: Warning 1265 Data truncated for column 'f_double' at row 1 Warning 1265 Data truncated for column 'f_float' at row 1 @@ -134,7 +134,7 @@ f_float_u 1 f_double_15_1_u 1.0 f_float_3_1_u 1.0 set @value= "aa1"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); Warnings: Warning 1366 Incorrect double value: 'aa1' for column 'f_double' at row 1 Warning 1366 Incorrect double value: 'aa1' for column 'f_float' at row 1 @@ -156,7 +156,7 @@ f_float_u 0 f_double_15_1_u 0.0 f_float_3_1_u 0.0 set @value= "1e+1111111111a"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); Warnings: Warning 1264 Out of range value for column 'f_double' at row 1 Warning 1264 Out of range value for column 'f_float' at row 1 @@ -184,7 +184,7 @@ f_float_u 3.40282e38 f_double_15_1_u 99999999999999.9 f_float_3_1_u 99.9 set @value= "-1e+1111111111a"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); Warnings: Warning 1264 Out of range value for column 'f_double' at row 1 Warning 1264 Out of range value for column 'f_float' at row 1 @@ -217,7 +217,7 @@ ERROR 22007: Illegal double '1e+1111111111' value found during parsing set @value= -1e+1111111111; ERROR 22007: Illegal double '1e+1111111111' value found during parsing set @value= 1e+111; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); Warnings: Warning 1264 Out of range value for column 'f_float' at row 1 Warning 1264 Out of range value for column 'f_double_7_2' at row 1 @@ -237,7 +237,7 @@ f_float_u 3.40282e38 f_double_15_1_u 99999999999999.9 f_float_3_1_u 99.9 set @value= -1e+111; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); Warnings: Warning 1264 Out of range value for column 'f_float' at row 1 Warning 1264 Out of range value for column 'f_double_7_2' at row 1 @@ -271,7 +271,7 @@ f_float_u 1 f_double_15_1_u 1.0 f_float_3_1_u 1.0 set @value= -1; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); Warnings: Warning 1264 Out of range value for column 'f_double_u' at row 1 Warning 1264 Out of range value for column 'f_float_u' at row 1 @@ -515,7 +515,7 @@ b char(7) DEFAULT NULL, c char(4) DEFAULT NULL ); INSERT INTO t1(a,b,c) VALUES (9.999999e+0, 9.999999e+0, 9.999e+0); -INSERT INTO t1(a,b,c) VALUES (1.225e-05, 1.225e-05, 1.225e-05); +INSERT IGNORE INTO t1(a,b,c) VALUES (1.225e-05, 1.225e-05, 1.225e-05); Warnings: Warning 1265 Data truncated for column 'c' at row 1 INSERT INTO t1(a,b) VALUES (1.225e-04, 1.225e-04); @@ -534,7 +534,7 @@ INSERT INTO t1(a,b) VALUES (1.25e-175, 1.25e-175); INSERT INTO t1(a,c) VALUES (1.225e+0, 1.225e+0); INSERT INTO t1(a,c) VALUES (1.37e+0, 1.37e+0); INSERT INTO t1(a,c) VALUES (-1.37e+0, -1.37e+0); -INSERT INTO t1(a,c) VALUES (1.87e-3, 1.87e-3); +INSERT IGNORE INTO t1(a,c) VALUES (1.87e-3, 1.87e-3); Warnings: Warning 1265 Data truncated for column 'c' at row 1 INSERT INTO t1(a,c) VALUES (-1.87e-2, -1.87e-2); diff --git a/mysql-test/r/insert_select.result b/mysql-test/r/insert_select.result index 3f4a26a728e..1a3a38b1f35 100644 --- a/mysql-test/r/insert_select.result +++ b/mysql-test/r/insert_select.result @@ -608,7 +608,7 @@ NULL Field Count NULL 1 100 NULL 2 100 create table t2(No int not null, Field int not null, Count int not null); -insert into t2 Select null, Field, Count From t1 Where Month=20030901 and Type=2; +insert ignore into t2 Select null, Field, Count From t1 Where Month=20030901 and Type=2; Warnings: Warning 1048 Column 'No' cannot be null Warning 1048 Column 'No' cannot be null @@ -772,11 +772,13 @@ f1 f2 101 1 2 2 DROP TABLE t1, t2; +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( a INT KEY, b INT ); INSERT INTO t1 VALUES ( 0, 1 ); INSERT INTO t1 ( b ) SELECT MAX( b ) FROM t1 WHERE b = 2; ERROR 23000: Duplicate entry '0' for key 'PRIMARY' DROP TABLE t1; +SET sql_mode = DEFAULT; SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 (c VARCHAR(30), INDEX ix_c (c(10))); CREATE TABLE t2 (d VARCHAR(10)); diff --git a/mysql-test/r/join.result b/mysql-test/r/join.result index 61a78e65610..17e48ae329c 100644 --- a/mysql-test/r/join.result +++ b/mysql-test/r/join.result @@ -168,6 +168,8 @@ SELECT * FROM t1 WHERE 1/0 IS NULL; d 2001-08-01 0000-00-00 +Warnings: +Warning 1365 Division by 0 DROP TABLE t1,t2; CREATE TABLE t1 ( Document_ID varchar(50) NOT NULL default '', diff --git a/mysql-test/r/join_outer_innodb.result b/mysql-test/r/join_outer_innodb.result index 339cc59ed69..6f3fb09329d 100644 --- a/mysql-test/r/join_outer_innodb.result +++ b/mysql-test/r/join_outer_innodb.result @@ -196,7 +196,7 @@ a8 smallint(6) DEFAULT NULL, a9 smallint(6) DEFAULT NULL, a10 tinyint NOT NULL, PRIMARY KEY (a1), KEY a2 (a2), KEY a3 (a3), KEY a4 (a4), KEY a6 (a6), KEY a5 (a5), KEY a7 (a7), KEY a8 (a8), KEY a9 (a9) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO t1 VALUES +INSERT IGNORE INTO t1 VALUES (3360,5684,2219,1,316832,1,0,NULL,NULL,NULL), (3362,2754,597,2,316844,1,0,NULL,NULL,NULL), (3363,369,NULL,1,317295,1,0,NULL,NULL,NULL); diff --git a/mysql-test/r/key.result b/mysql-test/r/key.result index 913e39ee140..ba1124aaa14 100644 --- a/mysql-test/r/key.result +++ b/mysql-test/r/key.result @@ -32,7 +32,7 @@ KEY price (price,area,type,transityes,shopsyes,schoolsyes,petsyes) ); INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N'); INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N'); -INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','','','',''); +INSERT IGNORE INTO t1 VALUES (900,'Vancouver','Shared/Roomate','','','',''); Warnings: Warning 1265 Data truncated for column 'transityes' at row 1 Warning 1265 Data truncated for column 'shopsyes' at row 1 @@ -157,7 +157,7 @@ t1 1 c 1 c A NULL NULL NULL YES BTREE drop table t1; CREATE TABLE t1 (c CHAR(10) NOT NULL,i INT NOT NULL AUTO_INCREMENT, UNIQUE (c,i)); -INSERT INTO t1 (c) VALUES (NULL),(NULL); +INSERT IGNORE INTO t1 (c) VALUES (NULL),(NULL); Warnings: Warning 1048 Column 'c' cannot be null Warning 1048 Column 'c' cannot be null @@ -189,10 +189,10 @@ a 1 a 2 drop table t1; create table t1 (i int, a char(200), b text, unique (a), unique (b(300))) charset utf8; -insert t1 values (1, repeat('a',210), repeat('b', 310)); +insert ignore t1 values (1, repeat('a',210), repeat('b', 310)); Warnings: Warning 1265 Data truncated for column 'a' at row 1 -insert t1 values (2, repeat(0xD0B1,215), repeat(0xD0B1, 310)); +insert ignore t1 values (2, repeat(0xD0B1,215), repeat(0xD0B1, 310)); Warnings: Warning 1265 Data truncated for column 'a' at row 1 select i, length(a), length(b), char_length(a), char_length(b) from t1; diff --git a/mysql-test/r/limit_rows_examined.result b/mysql-test/r/limit_rows_examined.result index fa979c4ec43..532448a8da8 100644 --- a/mysql-test/r/limit_rows_examined.result +++ b/mysql-test/r/limit_rows_examined.result @@ -628,7 +628,7 @@ INSERT/DELETE/UPDATE INSERT ... SELECT CREATE TABLE t4 (a int); INSERT INTO t4 values (1), (2); -INSERT INTO t4 SELECT a + 2 FROM t4 LIMIT ROWS EXAMINED 0; +INSERT IGNORE INTO t4 SELECT a + 2 FROM t4 LIMIT ROWS EXAMINED 0; Warnings: Warning 1931 Query execution was interrupted. The query examined at least 1 rows, which exceeds LIMIT ROWS EXAMINED (0). The query result may be incomplete select * from t4; diff --git a/mysql-test/r/loaddata.result b/mysql-test/r/loaddata.result index d21402a336a..5a61f044148 100644 --- a/mysql-test/r/loaddata.result +++ b/mysql-test/r/loaddata.result @@ -1,6 +1,6 @@ drop table if exists t1, t2; create table t1 (a date, b date, c date not null, d date); -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ','; +load data infile '../../std_data/loaddata1.dat' ignore into table t1 fields terminated by ','; Warnings: Warning 1265 Data truncated for column 'a' at row 1 Warning 1265 Data truncated for column 'c' at row 1 @@ -16,7 +16,7 @@ a b c d 2003-03-03 2003-03-03 2003-03-03 NULL 2003-03-03 2003-03-03 2003-03-03 NULL truncate table t1; -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); +load data infile '../../std_data/loaddata1.dat' ignore into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); Warnings: Warning 1265 Data truncated for column 'c' at row 1 Warning 1265 Data truncated for column 'd' at row 1 @@ -178,7 +178,7 @@ select @a, @b; @a @b NULL 15 truncate table t1; -load data infile '../../std_data/rpl_loaddata.dat' into table t1 set c=b; +load data infile '../../std_data/rpl_loaddata.dat' ignore into table t1 set c=b; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 2 doesn't contain data for all columns @@ -581,7 +581,7 @@ C38322525420406E696F757A656368756E3A20E98198E2889AF58081AEE7B99DE4B88AE383A3E7B9 CREATE DATABASE d2 CHARSET utf8; USE d2; CREATE TABLE t1 (val TEXT); -LOAD DATA INFILE '../../std_data/bug20683959loaddata.txt' INTO TABLE t1; +LOAD DATA INFILE '../../std_data/bug20683959loaddata.txt' IGNORE INTO TABLE t1; Warnings: Warning 1366 Incorrect string value: '\xF5\x80\x81\xAE\xE7\xB9...' for column 'val' at row 1 SELECT COUNT(*) FROM t1; diff --git a/mysql-test/r/loaddata_autocom_innodb.result b/mysql-test/r/loaddata_autocom_innodb.result index c1e6b7f2fba..9f5a0809f2a 100644 --- a/mysql-test/r/loaddata_autocom_innodb.result +++ b/mysql-test/r/loaddata_autocom_innodb.result @@ -2,7 +2,7 @@ SET SESSION STORAGE_ENGINE = InnoDB; drop table if exists t1; create table t1 (id int unsigned not null auto_increment primary key, a text, b text); start transaction; -load data infile 'LOAD_FILE' into table t1 fields terminated by ',' enclosed by '''' (a, b); +load data infile 'LOAD_FILE' ignore into table t1 fields terminated by ',' enclosed by '''' (a, b); Warnings: Warning 1261 Row 3 doesn't contain data for all columns commit; @@ -11,7 +11,7 @@ count(*) 4 truncate table t1; start transaction; -load data infile 'LOAD_FILE' into table t1 fields terminated by ',' enclosed by '''' (a, b); +load data infile 'LOAD_FILE' ignore into table t1 fields terminated by ',' enclosed by '''' (a, b); Warnings: Warning 1261 Row 3 doesn't contain data for all columns rollback; diff --git a/mysql-test/r/merge.result b/mysql-test/r/merge.result index eadc56ec267..da194c7e11c 100644 --- a/mysql-test/r/merge.result +++ b/mysql-test/r/merge.result @@ -2290,7 +2290,7 @@ CREATE TABLE t3(a int) ENGINE = MERGE UNION(t1, t2); CREATE TRIGGER tr1 AFTER INSERT ON t3 FOR EACH ROW CALL foo(); SHOW CREATE TRIGGER tr1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -tr1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1 AFTER INSERT ON t3 FOR EACH ROW CALL foo() latin1 latin1_swedish_ci latin1_swedish_ci # +tr1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1 AFTER INSERT ON t3 FOR EACH ROW CALL foo() latin1 latin1_swedish_ci latin1_swedish_ci # DROP TRIGGER tr1; DROP TABLE t1, t2, t3; # diff --git a/mysql-test/r/mix2_myisam.result b/mysql-test/r/mix2_myisam.result index 1ffebcd50be..b282be15a56 100644 --- a/mysql-test/r/mix2_myisam.result +++ b/mysql-test/r/mix2_myisam.result @@ -1988,6 +1988,7 @@ create table t1 (v varchar(65530), key(v)); Warnings: Warning 1071 Specified key was too long; max key length is 1000 bytes drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (v varchar(65536)); Warnings: Note 1246 Converting column 'v' from VARCHAR to TEXT @@ -1997,6 +1998,7 @@ t1 CREATE TABLE `t1` ( `v` mediumtext DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (v varchar(65530) character set utf8); Warnings: Note 1246 Converting column 'v' from VARCHAR to TEXT diff --git a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result index 66f3b740079..634b3897ba0 100644 --- a/mysql-test/r/multi_update.result +++ b/mysql-test/r/multi_update.result @@ -662,11 +662,11 @@ SET SESSION sql_safe_updates = DEFAULT; CREATE FUNCTION f1 () RETURNS BLOB RETURN 1; CREATE TABLE t1 (f1 DATE); INSERT INTO t1 VALUES('2001-01-01'); -UPDATE (SELECT 1 FROM t1 WHERE f1 = (SELECT f1() FROM t1)) x, t1 SET f1 = 1; +UPDATE IGNORE (SELECT 1 FROM t1 WHERE f1 = (SELECT f1() FROM t1)) x, t1 SET f1 = 1; Warnings: Warning 1292 Incorrect datetime value: '1' CREATE view v1 as SELECT f1() FROM t1; -UPDATE (SELECT 1 FROM t1 WHERE f1 = (select * from v1)) x, t1 SET f1 = 1; +UPDATE IGNORE (SELECT 1 FROM t1 WHERE f1 = (select * from v1)) x, t1 SET f1 = 1; Warnings: Warning 1292 Incorrect datetime value: '1' DROP VIEW v1; diff --git a/mysql-test/r/myisam-blob.result b/mysql-test/r/myisam-blob.result index 6b41a244621..46be1bdbd49 100644 --- a/mysql-test/r/myisam-blob.result +++ b/mysql-test/r/myisam-blob.result @@ -28,6 +28,7 @@ INSERT INTO t1 set data=repeat('a',18*1024*1024); select length(data) from t1; length(data) 18874368 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify data blob; Warnings: Warning 1265 Data truncated for column 'data' at row 1 @@ -37,7 +38,7 @@ length(data) drop table t1; CREATE TABLE t1 (data BLOB) ENGINE=myisam; INSERT INTO t1 (data) VALUES (NULL); -UPDATE t1 set data=repeat('a',18*1024*1024); +UPDATE IGNORE t1 set data=repeat('a',18*1024*1024); Warnings: Warning 1265 Data truncated for column 'data' at row 1 select length(data) from t1; diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 54bb06b919a..d2132c5e954 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -299,6 +299,7 @@ check table t1; Table Op Msg_type Msg_text test.t1 check status OK drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE `t1` ( `post_id` mediumint(8) unsigned NOT NULL auto_increment, `topic_id` mediumint(8) unsigned NOT NULL default '0', @@ -316,7 +317,7 @@ KEY `poster_login` (`poster_login`), KEY `topic_id` (`topic_id`), FULLTEXT KEY `post_text` (`post_text`) ) ENGINE=MyISAM; -INSERT INTO t1 (post_text) VALUES ('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'); +INSERT IGNORE INTO t1 (post_text) VALUES ('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'); REPAIR TABLE t1; Table Op Msg_type Msg_text test.t1 repair status OK @@ -1693,6 +1694,7 @@ create table t1 (v varchar(65530), key(v)); Warnings: Warning 1071 Specified key was too long; max key length is 1000 bytes drop table if exists t1; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for create table t1 (v varchar(65536)); Warnings: Note 1246 Converting column 'v' from VARCHAR to TEXT @@ -1702,6 +1704,7 @@ t1 CREATE TABLE `t1` ( `v` mediumtext DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for create table t1 (v varchar(65530) character set utf8); Warnings: Note 1246 Converting column 'v' from VARCHAR to TEXT diff --git a/mysql-test/r/myisam_icp.result b/mysql-test/r/myisam_icp.result index 374d4e45139..458d0195a19 100644 --- a/mysql-test/r/myisam_icp.result +++ b/mysql-test/r/myisam_icp.result @@ -472,7 +472,7 @@ CREATE TABLE t2 ( t2_int int PRIMARY KEY, t2_int2 INT ); -INSERT INTO t2 VALUES (); +INSERT IGNORE INTO t2 VALUES (); INSERT INTO t1 VALUES (); SELECT * FROM t1 AS t1a WHERE NOT EXISTS (SELECT * FROM t1 AS t1b @@ -566,7 +566,7 @@ COL1000 VARBINARY(179) NOT NULL, col1003 DATE DEFAULT NULL, KEY idx4267 (col1000, col1003) ); -INSERT INTO t1 VALUES (),(); +INSERT IGNORE INTO t1 VALUES (),(); Warnings: Warning 1364 Field 'col999' doesn't have a default value Warning 1364 Field 'COL1000' doesn't have a default value @@ -847,7 +847,7 @@ Handler_icp_attempts 2 Handler_icp_match 1 DROP TABLE t1; create table t1 (a int,b char(5),primary key (a), key (b(1))); -insert into t1 values ('a','b'); +insert ignore into t1 values ('a','b'); Warnings: Warning 1366 Incorrect integer value: 'a' for column 'a' at row 1 select 1 from t1 where a and b >= 'aa'; diff --git a/mysql-test/r/mysqlbinlog-innodb.result b/mysql-test/r/mysqlbinlog-innodb.result index 9508f725ec4..2971a69fb4d 100644 --- a/mysql-test/r/mysqlbinlog-innodb.result +++ b/mysql-test/r/mysqlbinlog-innodb.result @@ -30,7 +30,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -61,7 +61,7 @@ use `foo`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/r/mysqlbinlog.result b/mysql-test/r/mysqlbinlog.result index 108e03e5a47..5ee31bbe227 100644 --- a/mysql-test/r/mysqlbinlog.result +++ b/mysql-test/r/mysqlbinlog.result @@ -23,7 +23,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -103,7 +103,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -139,7 +139,7 @@ BEGIN SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -190,7 +190,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -217,7 +217,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -297,7 +297,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -333,7 +333,7 @@ BEGIN SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -384,7 +384,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -493,7 +493,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -545,7 +545,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/r/mysqlbinlog_row_compressed.result b/mysql-test/r/mysqlbinlog_row_compressed.result index e30557e08fa..0583ee354df 100644 --- a/mysql-test/r/mysqlbinlog_row_compressed.result +++ b/mysql-test/r/mysqlbinlog_row_compressed.result @@ -34,7 +34,7 @@ use `test`/*!*/; SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=4/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/r/mysqlbinlog_row_minimal.result b/mysql-test/r/mysqlbinlog_row_minimal.result index bb23acc6484..6d36ec0e82f 100644 --- a/mysql-test/r/mysqlbinlog_row_minimal.result +++ b/mysql-test/r/mysqlbinlog_row_minimal.result @@ -32,7 +32,7 @@ use `test`/*!*/; SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=4/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/r/mysqlbinlog_stmt_compressed.result b/mysql-test/r/mysqlbinlog_stmt_compressed.result index 99f9c7e9914..cb268cac0d4 100644 --- a/mysql-test/r/mysqlbinlog_stmt_compressed.result +++ b/mysql-test/r/mysqlbinlog_stmt_compressed.result @@ -34,7 +34,7 @@ use `test`/*!*/; SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=4/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/r/mysqld--help.result b/mysql-test/r/mysqld--help.result index d45a6e61c2f..1b9d664dbda 100644 --- a/mysql-test/r/mysqld--help.result +++ b/mysql-test/r/mysqld--help.result @@ -1472,13 +1472,13 @@ slave-type-conversions slow-launch-time 2 slow-query-log FALSE sort-buffer-size 2097152 -sql-mode NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +sql-mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION stack-trace TRUE standard-compliant-cte TRUE stored-program-cache 256 strict-password-validation TRUE symbolic-links FALSE -sync-binlog 1 +sync-binlog 0 sync-frm FALSE sync-master-info 10000 sync-relay-log 10000 diff --git a/mysql-test/r/mysqldump-nl.result b/mysql-test/r/mysqldump-nl.result index 829bf980103..db327736551 100644 --- a/mysql-test/r/mysqldump-nl.result +++ b/mysql-test/r/mysqldump-nl.result @@ -71,7 +71,7 @@ SET character_set_client = @saved_cs_client; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `sp`() select * from `v1 diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index dae6aaf776f..277c7ab64dc 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -47,7 +47,7 @@ DROP TABLE t1; # Bug#2055 mysqldump should replace "-inf" numeric field values with "NULL" # CREATE TABLE t1 (a double); -INSERT INTO t1 VALUES ('-9e999999'); +INSERT IGNORE INTO t1 VALUES ('-9e999999'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -2468,10 +2468,10 @@ if new.a > 10 then set new.a := 10; set new.a := 11; end if; -end BEFORE 0000-00-00 00:00:00 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +end BEFORE 0000-00-00 00:00:00 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci trg2 UPDATE t1 begin if old.a % 2 = 0 then set new.b := 12; end if; -end BEFORE 0000-00-00 00:00:00 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +end BEFORE 0000-00-00 00:00:00 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci trg3 UPDATE t1 begin if new.a = -1 then set @fired:= "Yes"; @@ -2515,7 +2515,7 @@ UNLOCK TABLES; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg1 before insert on t1 for each row begin @@ -2536,7 +2536,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 trigger trg2 before update on t1 for each row begin if old.a % 2 = 0 then set new.b := 12; end if; @@ -2671,10 +2671,10 @@ if new.a > 10 then set new.a := 10; set new.a := 11; end if; -end BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +end BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci trg2 UPDATE t1 begin if old.a % 2 = 0 then set new.b := 12; end if; -end BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +end BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci trg3 UPDATE t1 begin if new.a = -1 then set @fired:= "Yes"; @@ -2717,7 +2717,7 @@ a2 SHOW TRIGGERS; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation testref INSERT test1 BEGIN -INSERT INTO test2 SET a2 = NEW.a1; END BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +INSERT INTO test2 SET a2 = NEW.a1; END BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci SELECT * FROM `test1`; a1 1 @@ -2789,7 +2789,7 @@ UNLOCK TABLES; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11) RETURN a+b ;; @@ -2806,7 +2806,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` FUNCTION `bug9056_func2`(f1 char binary) RETURNS char(1) CHARSET latin1 begin @@ -2843,7 +2843,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT) BEGIN SELECT a+b INTO c; end ;; @@ -2860,7 +2860,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `bug9056_proc2`(OUT a INT) BEGIN @@ -3861,7 +3861,7 @@ create procedure mysqldump_test_db.sp1() select 'hello'; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`user1`@`%` PROCEDURE `sp1`() select 'hello' ;; diff --git a/mysql-test/r/mysqlhotcopy_myisam.result b/mysql-test/r/mysqlhotcopy_myisam.result index 52aeffce5cf..6080697a7a1 100644 --- a/mysql-test/r/mysqlhotcopy_myisam.result +++ b/mysql-test/r/mysqlhotcopy_myisam.result @@ -6,13 +6,13 @@ CREATE TABLE t2 (c1 int, c2 varchar(20)) ENGINE=MyISAM; CREATE TABLE t3 (c1 int, c2 varchar(20)) ENGINE=MyISAM; INSERT INTO t1 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); Warnings: -Warning 1265 Data truncated for column 'c2' at row 2 +Warning 1406 Data too long for column 'c2' at row 2 INSERT INTO t2 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); Warnings: -Warning 1265 Data truncated for column 'c2' at row 2 +Warning 1406 Data too long for column 'c2' at row 2 INSERT INTO t3 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); Warnings: -Warning 1265 Data truncated for column 'c2' at row 2 +Warning 1406 Data too long for column 'c2' at row 2 db.opt t1.MYD t1.MYI diff --git a/mysql-test/r/null.result b/mysql-test/r/null.result index 1c88a607541..0ff5c3243d8 100644 --- a/mysql-test/r/null.result +++ b/mysql-test/r/null.result @@ -2,6 +2,10 @@ drop table if exists t1, t2; select null,\N,isnull(null),isnull(1/0),isnull(1/0 = null),ifnull(null,1),ifnull(null,"TRUE"),ifnull("TRUE","ERROR"),1/0 is null,1 is not null; NULL NULL isnull(null) isnull(1/0) isnull(1/0 = null) ifnull(null,1) ifnull(null,"TRUE") ifnull("TRUE","ERROR") 1/0 is null 1 is not null NULL NULL 1 1 1 1 TRUE TRUE 1 1 +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 explain extended select null,\N,isnull(null),isnull(1/0),isnull(1/0 = null),ifnull(null,1),ifnull(null,"TRUE"),ifnull("TRUE","ERROR"),1/0 is null,1 is not null; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used @@ -92,20 +96,20 @@ NULL this is null NULL this is null drop table t1; CREATE TABLE t1 (a varchar(16) NOT NULL default '', b smallint(6) NOT NULL default 0, c datetime NOT NULL default '0000-00-00 00:00:00', d smallint(6) NOT NULL default 0); -INSERT INTO t1 SET a = "", d= "2003-01-14 03:54:55"; +INSERT IGNORE INTO t1 SET a = "", d= "2003-01-14 03:54:55"; Warnings: Warning 1265 Data truncated for column 'd' at row 1 -UPDATE t1 SET d=1/NULL; +UPDATE IGNORE t1 SET d=1/NULL; Warnings: Warning 1048 Column 'd' cannot be null -UPDATE t1 SET d=NULL; +UPDATE IGNORE t1 SET d=NULL; Warnings: Warning 1048 Column 'd' cannot be null INSERT INTO t1 (a) values (null); ERROR 23000: Column 'a' cannot be null INSERT INTO t1 (a) values (1/null); ERROR 23000: Column 'a' cannot be null -INSERT INTO t1 (a) values (null),(null); +INSERT IGNORE INTO t1 (a) values (null),(null); Warnings: Warning 1048 Column 'a' cannot be null Warning 1048 Column 'a' cannot be null @@ -113,7 +117,7 @@ INSERT INTO t1 (b) values (null); ERROR 23000: Column 'b' cannot be null INSERT INTO t1 (b) values (1/null); ERROR 23000: Column 'b' cannot be null -INSERT INTO t1 (b) values (null),(null); +INSERT IGNORE INTO t1 (b) values (null),(null); Warnings: Warning 1048 Column 'b' cannot be null Warning 1048 Column 'b' cannot be null @@ -121,7 +125,7 @@ INSERT INTO t1 (c) values (null); ERROR 23000: Column 'c' cannot be null INSERT INTO t1 (c) values (1/null); ERROR 23000: Column 'c' cannot be null -INSERT INTO t1 (c) values (null),(null); +INSERT IGNORE INTO t1 (c) values (null),(null); Warnings: Warning 1048 Column 'c' cannot be null Warning 1048 Column 'c' cannot be null @@ -129,7 +133,7 @@ INSERT INTO t1 (d) values (null); ERROR 23000: Column 'd' cannot be null INSERT INTO t1 (d) values (1/null); ERROR 23000: Column 'd' cannot be null -INSERT INTO t1 (d) values (null),(null); +INSERT IGNORE INTO t1 (d) values (null),(null); Warnings: Warning 1048 Column 'd' cannot be null Warning 1048 Column 'd' cannot be null @@ -177,6 +181,7 @@ id select_type table type possible_keys key key_len ref rows Extra select count(*) from t1 where i=2 or i is null; count(*) 10 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change i i int not null; Warnings: Warning 1265 Data truncated for column 'i' at row 513 @@ -354,7 +359,7 @@ INSERT INTO t1 VALUES (NOW()),(NOW()); EXPLAIN SELECT * FROM t1 WHERE concat( dt, '2012-12-21 12:12:12' ) IS NULL; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where SELECT * FROM t1 WHERE concat( dt, '2012-12-21 12:12:12' ) IS NULL; dt DROP TABLE t1; @@ -363,7 +368,7 @@ INSERT INTO t1 VALUES (1),(2); EXPLAIN SELECT * FROM t1 WHERE concat( dt, '1' ) IS NULL; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where SELECT * FROM t1 WHERE concat( dt, '1' ) IS NULL; dt DROP TABLE t1; @@ -372,7 +377,7 @@ INSERT INTO t1 VALUES (1),(2); EXPLAIN SELECT * FROM t1 WHERE NOT (concat( dt, '1' ) IS NOT NULL); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where SELECT * FROM t1 WHERE NOT (concat( dt, '1' ) IS NOT NULL); dt DROP TABLE t1; @@ -429,6 +434,7 @@ t2 CREATE TABLE `t2` ( DROP TABLE t1,t2; SELECT NULLIF(_latin1'a' COLLATE latin1_general_ci, _latin1'a' COLLATE latin1_bin); ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'nullif' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(1,1), NULLIF(1,1.0), @@ -447,6 +453,7 @@ t1 CREATE TABLE `t1` ( `NULLIF(1,TIME'00:00:00')` int(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(1.0,1), NULLIF(1.0,1.0), @@ -465,6 +472,7 @@ t1 CREATE TABLE `t1` ( `NULLIF(1.0,TIME'00:00:00')` decimal(2,1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(1e0,1), NULLIF(1e0,1.0), @@ -499,6 +507,7 @@ t1 CREATE TABLE `t1` ( `NULLIF('1',TIME'00:00:00')` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(TIMESTAMP'2001-01-01 00:00:00',1), NULLIF(TIMESTAMP'2001-01-01 00:00:00',1.0), @@ -519,6 +528,7 @@ t1 CREATE TABLE `t1` ( `NULLIF(TIMESTAMP'2001-01-01 00:00:00',TIME'00:00:00')` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(DATE'2001-01-01',1), NULLIF(DATE'2001-01-01',1.0), @@ -1383,6 +1393,7 @@ Warnings: Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 2010 DROP TABLE t1; # Two warnings expected +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(TIMESTAMP'2001-01-01 00:00:00',1) AS a, CASE WHEN TIMESTAMP'2001-01-01 00:00:00'=1 THEN NULL diff --git a/mysql-test/r/null_key.result b/mysql-test/r/null_key.result index 81bfa1ac994..4b4a4b80dee 100644 --- a/mysql-test/r/null_key.result +++ b/mysql-test/r/null_key.result @@ -342,7 +342,7 @@ id2 integer not null, index (id), index (id2) ); -insert into t1 values(null,null),(1,1); +insert ignore into t1 values(null,null),(1,1); Warnings: Warning 1048 Column 'id2' cannot be null select * from t1; diff --git a/mysql-test/r/old-mode.result b/mysql-test/r/old-mode.result index c2ee3324ede..c61e30ef85c 100644 --- a/mysql-test/r/old-mode.result +++ b/mysql-test/r/old-mode.result @@ -35,7 +35,7 @@ SELECT CAST(TIME'830:20:30' AS DATETIME); CAST(TIME'830:20:30' AS DATETIME) 0000-01-03 14:20:30 CREATE TABLE t1 (a DATETIME); -INSERT INTO t1 VALUES (TIME'-10:20:30'); +INSERT IGNORE INTO t1 VALUES (TIME'-10:20:30'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (TIME'10:20:30'); @@ -47,13 +47,13 @@ a 0000-01-03 14:20:30 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP); -INSERT INTO t1 VALUES (TIME'-10:20:30'); +INSERT IGNORE INTO t1 VALUES (TIME'-10:20:30'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 -INSERT INTO t1 VALUES (TIME'10:20:30'); +INSERT IGNORE INTO t1 VALUES (TIME'10:20:30'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 -INSERT INTO t1 VALUES (TIME'830:20:30'); +INSERT IGNORE INTO t1 VALUES (TIME'830:20:30'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; diff --git a/mysql-test/r/order_by.result b/mysql-test/r/order_by.result index fd5c9596b6c..1c1eb359fba 100644 --- a/mysql-test/r/order_by.result +++ b/mysql-test/r/order_by.result @@ -370,6 +370,7 @@ a b c 1 1 NULL 1 NULL b 1 NULL NULL +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify b int not null, modify c varchar(10) not null; Warnings: Warning 1265 Data truncated for column 'b' at row 1 diff --git a/mysql-test/r/order_by_zerolength-4285.result b/mysql-test/r/order_by_zerolength-4285.result index f60ce7d90c7..52204d14191 100644 --- a/mysql-test/r/order_by_zerolength-4285.result +++ b/mysql-test/r/order_by_zerolength-4285.result @@ -3,14 +3,14 @@ insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); select * from t1 order by now(), cast(pk as char(0)); pk 1 -2 -3 -4 -5 -6 -7 -8 9 +8 +7 +6 +5 +4 +3 +2 10 Warnings: Warning 1292 Truncated incorrect CHAR(0) value: '1' diff --git a/mysql-test/r/partition_datatype.result b/mysql-test/r/partition_datatype.result index 31d265d95ee..5f7590b5a3a 100644 --- a/mysql-test/r/partition_datatype.result +++ b/mysql-test/r/partition_datatype.result @@ -363,16 +363,16 @@ PARTITION `pMax` VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (NULL, 'UTC'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00', 'UTC'); # Test invalid values -INSERT INTO t1 VALUES ('1901-01-01 00:00:00', 'UTCI'); +INSERT IGNORE INTO t1 VALUES ('1901-01-01 00:00:00', 'UTCI'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -INSERT INTO t1 VALUES ('1969-12-31 23:59:59', 'UTCI'); +INSERT IGNORE INTO t1 VALUES ('1969-12-31 23:59:59', 'UTCI'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -INSERT INTO t1 VALUES ('2038-01-19 03:14:08', 'UTCI'); +INSERT IGNORE INTO t1 VALUES ('2038-01-19 03:14:08', 'UTCI'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -INSERT INTO t1 VALUES ('1970-01-01 00:00:00', 'UTCI'); +INSERT IGNORE INTO t1 VALUES ('1970-01-01 00:00:00', 'UTCI'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 # Test start range @@ -399,32 +399,32 @@ SET @@session.time_zone = 'Europe/Moscow'; INSERT INTO t1 VALUES (NULL, 'Moscow'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00', 'Moscow'); # Test invalid values -INSERT INTO t1 VALUES ('0000-00-00 03:00:00', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('0000-00-00 03:00:00', 'MoscowI'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 -INSERT INTO t1 VALUES ('1901-01-01 00:00:00', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('1901-01-01 00:00:00', 'MoscowI'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -INSERT INTO t1 VALUES ('1969-12-31 23:59:59', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('1969-12-31 23:59:59', 'MoscowI'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -INSERT INTO t1 VALUES ('1970-01-01 02:29:29', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('1970-01-01 02:29:29', 'MoscowI'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -INSERT INTO t1 VALUES ('2038-01-19 06:14:08', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('2038-01-19 06:14:08', 'MoscowI'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -INSERT INTO t1 VALUES ('1970-01-01 03:00:00', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('1970-01-01 03:00:00', 'MoscowI'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 # values truncated to 03:00:00 due to daylight saving shift -INSERT INTO t1 VALUES ('2011-03-27 02:00:00', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('2011-03-27 02:00:00', 'MoscowI'); Warnings: Warning 1299 Invalid TIMESTAMP value in column 'a' at row 1 -INSERT INTO t1 VALUES ('2011-03-27 02:00:01', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('2011-03-27 02:00:01', 'MoscowI'); Warnings: Warning 1299 Invalid TIMESTAMP value in column 'a' at row 1 -INSERT INTO t1 VALUES ('2011-03-27 02:59:59', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('2011-03-27 02:59:59', 'MoscowI'); Warnings: Warning 1299 Invalid TIMESTAMP value in column 'a' at row 1 # Test start range @@ -678,7 +678,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra 1 SIMPLE t2 p-2012-MSK-1,p-2012-MSK-2 ALL NULL NULL NULL NULL 7 Using where; Using filesort # Test end range changes DELETE FROM t2 WHERE a = 0; -INSERT INTO t2 VALUES ('1970-01-01 00:00:00', 'UTC'); +INSERT IGNORE INTO t2 VALUES ('1970-01-01 00:00:00', 'UTC'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT COUNT(*) FROM t2; @@ -697,7 +697,7 @@ a tz 2038-01-19 03:14:07 Moscow 2038-01-19 03:14:07 UTC 2038-01-19 03:14:06 Moscow -UPDATE t2 SET a = TIMESTAMPADD(SECOND, 1, a); +UPDATE IGNORE t2 SET a = TIMESTAMPADD(SECOND, 1, a); Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' Warning 1264 Out of range value for column 'a' at row 34 @@ -761,7 +761,7 @@ NULL UTC 2038-01-19 03:14:07 Moscow 2038-01-19 03:14:07 UTC # Test start range changes -INSERT INTO t2 VALUES ('1970-01-01 00:00:00', 'UTC'); +INSERT IGNORE INTO t2 VALUES ('1970-01-01 00:00:00', 'UTC'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT COUNT(*) FROM t2; @@ -780,7 +780,7 @@ a tz 2038-01-19 03:14:07 Moscow 2038-01-19 03:14:07 UTC 2011-10-30 00:00:02 Moscow -UPDATE t2 SET a = TIMESTAMPADD(SECOND, -1, a); +UPDATE IGNORE t2 SET a = TIMESTAMPADD(SECOND, -1, a); Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' @@ -1158,7 +1158,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra 1 SIMPLE t2 p-2011-MSD-1,p-2011-MSD-2,p-2012-MSK-1,p-2012-MSK-2 ALL NULL NULL NULL NULL 22 Using where; Using filesort # Test end range changes DELETE FROM t2 WHERE a = 0; -INSERT INTO t2 VALUES ('1970-01-01 00:00:00', 'Moscow'); +INSERT IGNORE INTO t2 VALUES ('1970-01-01 00:00:00', 'Moscow'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT COUNT(*) FROM t2; @@ -1177,7 +1177,7 @@ a tz 2038-01-19 06:14:07 Moscow 2038-01-19 06:14:07 UTC 2038-01-19 06:14:06 Moscow -UPDATE t2 SET a = TIMESTAMPADD(SECOND, 1, a); +UPDATE IGNORE t2 SET a = TIMESTAMPADD(SECOND, 1, a); Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' Warning 1299 Invalid TIMESTAMP value in column 'a' at row 8 @@ -1243,7 +1243,7 @@ NULL UTC 2038-01-19 06:14:07 Moscow 2038-01-19 06:14:07 UTC # Test start range changes -INSERT INTO t2 VALUES ('1970-01-01 00:00:00', 'Moscow'); +INSERT IGNORE INTO t2 VALUES ('1970-01-01 00:00:00', 'Moscow'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT COUNT(*) FROM t2; @@ -1262,7 +1262,7 @@ a tz 2038-01-19 06:14:07 Moscow 2038-01-19 06:14:07 UTC 2011-10-30 03:00:02 Moscow -UPDATE t2 SET a = TIMESTAMPADD(SECOND, -1, a); +UPDATE IGNORE t2 SET a = TIMESTAMPADD(SECOND, -1, a); Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' diff --git a/mysql-test/r/partition_error.result b/mysql-test/r/partition_error.result index eeea5215218..e52c1ef7df5 100644 --- a/mysql-test/r/partition_error.result +++ b/mysql-test/r/partition_error.result @@ -71,7 +71,7 @@ ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitio CREATE TABLE t1 (a DATE) PARTITION BY RANGE (DAYOFWEEK(a)) (PARTITION a1 VALUES LESS THAN (60)); -INSERT INTO t1 VALUES ('test'),('a'),('5'); +INSERT IGNORE INTO t1 VALUES ('test'),('a'),('5'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 Warning 1265 Data truncated for column 'a' at row 2 @@ -85,7 +85,7 @@ DROP TABLE t1; CREATE TABLE t1 (a DATETIME) PARTITION BY RANGE (DAYOFWEEK(a)) (PARTITION a1 VALUES LESS THAN (60)); -INSERT INTO t1 VALUES ('test'),('a'),('5'); +INSERT IGNORE INTO t1 VALUES ('test'),('a'),('5'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 Warning 1265 Data truncated for column 'a' at row 2 @@ -1829,6 +1829,7 @@ p1 p1spSecond p2 p2spFirst Comment in p2 p2 p2spSecond SubPartition comment in p2spSecond DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (a INT , KEY inx_a (a) ) diff --git a/mysql-test/r/plugin_auth.result b/mysql-test/r/plugin_auth.result index 8bb360e96ae..e470cc010c0 100644 --- a/mysql-test/r/plugin_auth.result +++ b/mysql-test/r/plugin_auth.result @@ -365,7 +365,7 @@ DROP USER uplain@localhost; # # Bug #59038 : mysql.user.authentication_string column # causes configuration wizard to fail -INSERT INTO mysql.user( +INSERT IGNORE INTO mysql.user( Host, User, Password, diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index 6c0750e513a..eb21f8ed7ea 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -768,13 +768,13 @@ deallocate prepare stmt; drop table t1; prepare stmt from 'create table t1 (a varchar(10) character set utf8)'; execute stmt; -insert into t1 (a) values (repeat('a', 20)); +insert ignore into t1 (a) values (repeat('a', 20)); select length(a) from t1; length(a) 10 drop table t1; execute stmt; -insert into t1 (a) values (repeat('a', 20)); +insert ignore into t1 (a) values (repeat('a', 20)); select length(a) from t1; length(a) 10 @@ -2395,15 +2395,15 @@ create procedure a() select 42; create procedure proc_1(a char(2)) show create procedure a; call proc_1("bb"); Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() select 42 latin1 latin1_swedish_ci latin1_swedish_ci call proc_1("bb"); Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() select 42 latin1 latin1_swedish_ci latin1_swedish_ci call proc_1("bb"); Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() select 42 latin1 latin1_swedish_ci latin1_swedish_ci drop procedure proc_1; create function func_1() returns int begin show create procedure a; return 1; end| @@ -2415,15 +2415,15 @@ ERROR 42000: FUNCTION test.func_1 does not exist prepare abc from "show create procedure a"; execute abc; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() select 42 latin1 latin1_swedish_ci latin1_swedish_ci execute abc; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() select 42 latin1 latin1_swedish_ci latin1_swedish_ci execute abc; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `a`() select 42 latin1 latin1_swedish_ci latin1_swedish_ci deallocate prepare abc; drop procedure a; @@ -2432,15 +2432,15 @@ create function a() returns int return 42+13; create procedure proc_1(a char(2)) show create function a; call proc_1("bb"); Function sql_mode Create Function character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci call proc_1("bb"); Function sql_mode Create Function character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci call proc_1("bb"); Function sql_mode Create Function character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci drop procedure proc_1; create function func_1() returns int begin show create function a; return 1; end| @@ -2452,15 +2452,15 @@ ERROR 42000: FUNCTION test.func_1 does not exist prepare abc from "show create function a"; execute abc; Function sql_mode Create Function character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci execute abc; Function sql_mode Create Function character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci execute abc; Function sql_mode Create Function character_set_client collation_connection Database Collation -a NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) +a STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `a`() RETURNS int(11) return 42+13 latin1 latin1_swedish_ci latin1_swedish_ci deallocate prepare abc; drop function a; diff --git a/mysql-test/r/ps_1general.result b/mysql-test/r/ps_1general.result index e34855eee62..fef15b89f26 100644 --- a/mysql-test/r/ps_1general.result +++ b/mysql-test/r/ps_1general.result @@ -309,7 +309,7 @@ Threads_running # prepare stmt4 from ' show variables like ''sql_mode'' '; execute stmt4; Variable_name Value -sql_mode NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +sql_mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION prepare stmt4 from ' show engine myisam logs '; execute stmt4; Type Name Status diff --git a/mysql-test/r/ps_2myisam.result b/mysql-test/r/ps_2myisam.result index 5ed5fa727fb..127fb4c7124 100644 --- a/mysql-test/r/ps_2myisam.result +++ b/mysql-test/r/ps_2myisam.result @@ -1303,9 +1303,11 @@ a b 2 two set @arg00=NULL; set @arg01=2; +set sql_mode = ''; execute stmt1 using @arg00, @arg01; Warnings: Warning 1048 Column 'a' cannot be null +set sql_mode = default; select a,b from t1 order by a; a b 0 two @@ -1784,7 +1786,7 @@ t5 CREATE TABLE `t5` ( `param03` double DEFAULT NULL, `const04` varchar(3) NOT NULL, `param04` longtext DEFAULT NULL, - `const05` varbinary(3) NOT NULL, + `const05` varbinary(3) DEFAULT NULL, `param05` longblob DEFAULT NULL, `const06` varchar(10) NOT NULL, `param06` longtext DEFAULT NULL, @@ -1814,7 +1816,7 @@ def test t5 t5 const03 const03 5 17 1 N 36865 31 63 def test t5 t5 param03 param03 5 23 1 Y 32768 31 63 def test t5 t5 const04 const04 253 3 3 N 4097 0 8 def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8 -def test t5 t5 const05 const05 253 3 3 N 4225 0 63 +def test t5 t5 const05 const05 253 3 3 Y 128 0 63 def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63 def test t5 t5 const06 const06 253 10 10 N 4097 0 8 def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8 @@ -2570,6 +2572,7 @@ prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 from t9 where c21 = 'O' "; prepare my_delete from "delete from t9 where c21 = 'O' "; set @arg00= 9223372036854775807 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2593,6 +2596,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= '9223372036854775807' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2616,6 +2620,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= -9223372036854775808 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2639,6 +2644,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= '-9223372036854775808' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2662,6 +2668,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= 1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2687,6 +2694,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= '1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2712,6 +2720,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= -1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2737,6 +2746,7 @@ c10 -1.111111111111111e50 c12 -9999.9999 execute my_delete ; set @arg00= '-1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2763,6 +2773,7 @@ c12 -9999.9999 execute my_delete ; test_sequence -- insert into string columns -- +set sql_mode = ''; insert into t9 ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) values @@ -2921,6 +2932,7 @@ execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: Warning 1265 Data truncated for column 'c20' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 @@ -3127,6 +3139,7 @@ true delete from t9 ; test_sequence -- insert into date/time columns -- +set sql_mode = ''; set @arg00= '1991-01-01 01:01:01' ; insert into t9 ( c1, c13, c14, c15, c16, c17 ) @@ -3285,6 +3298,7 @@ Warnings: Warning 1265 Data truncated for column 'c15' at row 1 Note 1265 Data truncated for column 'c16' at row 1 Warning 1264 Out of range value for column 'c17' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 diff --git a/mysql-test/r/ps_3innodb.result b/mysql-test/r/ps_3innodb.result index eac8e5d4efd..d341323b0b2 100644 --- a/mysql-test/r/ps_3innodb.result +++ b/mysql-test/r/ps_3innodb.result @@ -1286,9 +1286,11 @@ a b 2 two set @arg00=NULL; set @arg01=2; +set sql_mode = ''; execute stmt1 using @arg00, @arg01; Warnings: Warning 1048 Column 'a' cannot be null +set sql_mode = default; select a,b from t1 order by a; a b 0 two @@ -1767,7 +1769,7 @@ t5 CREATE TABLE `t5` ( `param03` double DEFAULT NULL, `const04` varchar(3) NOT NULL, `param04` longtext DEFAULT NULL, - `const05` varbinary(3) NOT NULL, + `const05` varbinary(3) DEFAULT NULL, `param05` longblob DEFAULT NULL, `const06` varchar(10) NOT NULL, `param06` longtext DEFAULT NULL, @@ -1797,7 +1799,7 @@ def test t5 t5 const03 const03 5 17 1 N 36865 31 63 def test t5 t5 param03 param03 5 23 1 Y 32768 31 63 def test t5 t5 const04 const04 253 3 3 N 4097 0 8 def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8 -def test t5 t5 const05 const05 253 3 3 N 4225 0 63 +def test t5 t5 const05 const05 253 3 3 Y 128 0 63 def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63 def test t5 t5 const06 const06 253 10 10 N 4097 0 8 def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8 @@ -2553,6 +2555,7 @@ prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 from t9 where c21 = 'O' "; prepare my_delete from "delete from t9 where c21 = 'O' "; set @arg00= 9223372036854775807 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2576,6 +2579,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= '9223372036854775807' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2599,6 +2603,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= -9223372036854775808 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2622,6 +2627,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= '-9223372036854775808' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2645,6 +2651,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= 1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2670,6 +2677,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= '1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2695,6 +2703,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= -1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2720,6 +2729,7 @@ c10 -1.111111111111111e50 c12 -9999.9999 execute my_delete ; set @arg00= '-1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2746,6 +2756,7 @@ c12 -9999.9999 execute my_delete ; test_sequence -- insert into string columns -- +set sql_mode = ''; insert into t9 ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) values @@ -2904,6 +2915,7 @@ execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: Warning 1265 Data truncated for column 'c20' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 @@ -3110,6 +3122,7 @@ true delete from t9 ; test_sequence -- insert into date/time columns -- +set sql_mode = ''; set @arg00= '1991-01-01 01:01:01' ; insert into t9 ( c1, c13, c14, c15, c16, c17 ) @@ -3268,6 +3281,7 @@ Warnings: Warning 1265 Data truncated for column 'c15' at row 1 Note 1265 Data truncated for column 'c16' at row 1 Warning 1264 Out of range value for column 'c17' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 diff --git a/mysql-test/r/ps_4heap.result b/mysql-test/r/ps_4heap.result index d1ee954bbba..ea3cf21e804 100644 --- a/mysql-test/r/ps_4heap.result +++ b/mysql-test/r/ps_4heap.result @@ -1287,9 +1287,11 @@ a b 2 two set @arg00=NULL; set @arg01=2; +set sql_mode = ''; execute stmt1 using @arg00, @arg01; Warnings: Warning 1048 Column 'a' cannot be null +set sql_mode = default; select a,b from t1 order by a; a b 0 two @@ -1768,7 +1770,7 @@ t5 CREATE TABLE `t5` ( `param03` double DEFAULT NULL, `const04` varchar(3) NOT NULL, `param04` longtext DEFAULT NULL, - `const05` varbinary(3) NOT NULL, + `const05` varbinary(3) DEFAULT NULL, `param05` longblob DEFAULT NULL, `const06` varchar(10) NOT NULL, `param06` longtext DEFAULT NULL, @@ -1798,7 +1800,7 @@ def test t5 t5 const03 const03 5 17 1 N 36865 31 63 def test t5 t5 param03 param03 5 23 1 Y 32768 31 63 def test t5 t5 const04 const04 253 3 3 N 4097 0 8 def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8 -def test t5 t5 const05 const05 253 3 3 N 4225 0 63 +def test t5 t5 const05 const05 253 3 3 Y 128 0 63 def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63 def test t5 t5 const06 const06 253 10 10 N 4097 0 8 def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8 @@ -2554,6 +2556,7 @@ prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 from t9 where c21 = 'O' "; prepare my_delete from "delete from t9 where c21 = 'O' "; set @arg00= 9223372036854775807 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2577,6 +2580,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= '9223372036854775807' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2600,6 +2604,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= -9223372036854775808 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2623,6 +2628,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= '-9223372036854775808' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2646,6 +2652,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= 1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2671,6 +2678,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= '1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2696,6 +2704,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= -1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2721,6 +2730,7 @@ c10 -1.111111111111111e50 c12 -9999.9999 execute my_delete ; set @arg00= '-1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2747,6 +2757,7 @@ c12 -9999.9999 execute my_delete ; test_sequence -- insert into string columns -- +set sql_mode = ''; insert into t9 ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) values @@ -2905,6 +2916,7 @@ execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: Warning 1265 Data truncated for column 'c20' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 @@ -3111,6 +3123,7 @@ true delete from t9 ; test_sequence -- insert into date/time columns -- +set sql_mode = ''; set @arg00= '1991-01-01 01:01:01' ; insert into t9 ( c1, c13, c14, c15, c16, c17 ) @@ -3269,6 +3282,7 @@ Warnings: Warning 1265 Data truncated for column 'c15' at row 1 Note 1265 Data truncated for column 'c16' at row 1 Warning 1264 Out of range value for column 'c17' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 diff --git a/mysql-test/r/ps_5merge.result b/mysql-test/r/ps_5merge.result index a0baa842e4a..4c4aaa325aa 100644 --- a/mysql-test/r/ps_5merge.result +++ b/mysql-test/r/ps_5merge.result @@ -1330,9 +1330,11 @@ a b 2 two set @arg00=NULL; set @arg01=2; +set sql_mode = ''; execute stmt1 using @arg00, @arg01; Warnings: Warning 1048 Column 'a' cannot be null +set sql_mode = default; select a,b from t1 order by a; a b 0 two @@ -1705,7 +1707,7 @@ t5 CREATE TABLE `t5` ( `param03` double DEFAULT NULL, `const04` varchar(3) NOT NULL, `param04` longtext DEFAULT NULL, - `const05` varbinary(3) NOT NULL, + `const05` varbinary(3) DEFAULT NULL, `param05` longblob DEFAULT NULL, `const06` varchar(10) NOT NULL, `param06` longtext DEFAULT NULL, @@ -1735,7 +1737,7 @@ def test t5 t5 const03 const03 5 17 1 N 36865 31 63 def test t5 t5 param03 param03 5 23 1 Y 32768 31 63 def test t5 t5 const04 const04 253 3 3 N 4097 0 8 def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8 -def test t5 t5 const05 const05 253 3 3 N 4225 0 63 +def test t5 t5 const05 const05 253 3 3 Y 128 0 63 def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63 def test t5 t5 const06 const06 253 10 10 N 4097 0 8 def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8 @@ -2491,6 +2493,7 @@ prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 from t9 where c21 = 'O' "; prepare my_delete from "delete from t9 where c21 = 'O' "; set @arg00= 9223372036854775807 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2514,6 +2517,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= '9223372036854775807' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2537,6 +2541,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= -9223372036854775808 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2560,6 +2565,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= '-9223372036854775808' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2583,6 +2589,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= 1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2608,6 +2615,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= '1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2633,6 +2641,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= -1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2658,6 +2667,7 @@ c10 -1.111111111111111e50 c12 -9999.9999 execute my_delete ; set @arg00= '-1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2684,6 +2694,7 @@ c12 -9999.9999 execute my_delete ; test_sequence -- insert into string columns -- +set sql_mode = ''; insert into t9 ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) values @@ -2842,6 +2853,7 @@ execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: Warning 1265 Data truncated for column 'c20' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 @@ -3048,6 +3060,7 @@ true delete from t9 ; test_sequence -- insert into date/time columns -- +set sql_mode = ''; set @arg00= '1991-01-01 01:01:01' ; insert into t9 ( c1, c13, c14, c15, c16, c17 ) @@ -3206,6 +3219,7 @@ Warnings: Warning 1265 Data truncated for column 'c15' at row 1 Note 1265 Data truncated for column 'c16' at row 1 Warning 1264 Out of range value for column 'c17' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 @@ -4684,9 +4698,11 @@ a b 2 two set @arg00=NULL; set @arg01=2; +set sql_mode = ''; execute stmt1 using @arg00, @arg01; Warnings: Warning 1048 Column 'a' cannot be null +set sql_mode = default; select a,b from t1 order by a; a b 0 two @@ -5059,7 +5075,7 @@ t5 CREATE TABLE `t5` ( `param03` double DEFAULT NULL, `const04` varchar(3) NOT NULL, `param04` longtext DEFAULT NULL, - `const05` varbinary(3) NOT NULL, + `const05` varbinary(3) DEFAULT NULL, `param05` longblob DEFAULT NULL, `const06` varchar(10) NOT NULL, `param06` longtext DEFAULT NULL, @@ -5089,7 +5105,7 @@ def test t5 t5 const03 const03 5 17 1 N 36865 31 63 def test t5 t5 param03 param03 5 23 1 Y 32768 31 63 def test t5 t5 const04 const04 253 3 3 N 4097 0 8 def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8 -def test t5 t5 const05 const05 253 3 3 N 4225 0 63 +def test t5 t5 const05 const05 253 3 3 Y 128 0 63 def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63 def test t5 t5 const06 const06 253 10 10 N 4097 0 8 def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8 @@ -5845,6 +5861,7 @@ prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 from t9 where c21 = 'O' "; prepare my_delete from "delete from t9 where c21 = 'O' "; set @arg00= 9223372036854775807 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -5868,6 +5885,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= '9223372036854775807' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -5891,6 +5909,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= -9223372036854775808 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -5914,6 +5933,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= '-9223372036854775808' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -5937,6 +5957,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= 1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -5962,6 +5983,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= '1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -5987,6 +6009,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= -1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -6012,6 +6035,7 @@ c10 -1.111111111111111e50 c12 -9999.9999 execute my_delete ; set @arg00= '-1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -6038,6 +6062,7 @@ c12 -9999.9999 execute my_delete ; test_sequence -- insert into string columns -- +set sql_mode = ''; insert into t9 ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) values @@ -6196,6 +6221,7 @@ execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: Warning 1265 Data truncated for column 'c20' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 @@ -6402,6 +6428,7 @@ true delete from t9 ; test_sequence -- insert into date/time columns -- +set sql_mode = ''; set @arg00= '1991-01-01 01:01:01' ; insert into t9 ( c1, c13, c14, c15, c16, c17 ) @@ -6560,6 +6587,7 @@ Warnings: Warning 1265 Data truncated for column 'c15' at row 1 Note 1265 Data truncated for column 'c16' at row 1 Warning 1264 Out of range value for column 'c17' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 diff --git a/mysql-test/r/round.result b/mysql-test/r/round.result index 49a00885f34..a3e9f18843d 100644 --- a/mysql-test/r/round.result +++ b/mysql-test/r/round.result @@ -3,7 +3,7 @@ CREATE TABLE t1 (sint8 tinyint not null); INSERT INTO t1 VALUES ('0.1'); INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('127.4'); -INSERT INTO t1 VALUES ('127.5'); +INSERT IGNORE INTO t1 VALUES ('127.5'); Warnings: Warning 1264 Out of range value for column 'sint8' at row 1 INSERT INTO t1 VALUES ('-0.1'); @@ -11,7 +11,7 @@ INSERT INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('-127.4'); INSERT INTO t1 VALUES ('-127.5'); INSERT INTO t1 VALUES ('-128.4'); -INSERT INTO t1 VALUES ('-128.5'); +INSERT IGNORE INTO t1 VALUES ('-128.5'); Warnings: Warning 1264 Out of range value for column 'sint8' at row 1 SELECT * FROM t1; @@ -33,11 +33,11 @@ INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('127.4'); INSERT INTO t1 VALUES ('127.5'); INSERT INTO t1 VALUES ('-0.1'); -INSERT INTO t1 VALUES ('-0.5'); +INSERT IGNORE INTO t1 VALUES ('-0.5'); Warnings: Warning 1264 Out of range value for column 'uint8' at row 1 INSERT INTO t1 VALUES ('255.4'); -INSERT INTO t1 VALUES ('255.5'); +INSERT IGNORE INTO t1 VALUES ('255.5'); Warnings: Warning 1264 Out of range value for column 'uint8' at row 1 SELECT * FROM t1; @@ -55,7 +55,7 @@ CREATE TABLE t1 (sint16 smallint not null); INSERT INTO t1 VALUES ('0.1'); INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('32767.4'); -INSERT INTO t1 VALUES ('32767.5'); +INSERT IGNORE INTO t1 VALUES ('32767.5'); Warnings: Warning 1264 Out of range value for column 'sint16' at row 1 INSERT INTO t1 VALUES ('-0.1'); @@ -63,7 +63,7 @@ INSERT INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('-32767.4'); INSERT INTO t1 VALUES ('-32767.5'); INSERT INTO t1 VALUES ('-32768.4'); -INSERT INTO t1 VALUES ('-32768.5'); +INSERT IGNORE INTO t1 VALUES ('-32768.5'); Warnings: Warning 1264 Out of range value for column 'sint16' at row 1 SELECT * FROM t1; @@ -85,11 +85,11 @@ INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('32767.4'); INSERT INTO t1 VALUES ('32767.5'); INSERT INTO t1 VALUES ('-0.1'); -INSERT INTO t1 VALUES ('-0.5'); +INSERT IGNORE INTO t1 VALUES ('-0.5'); Warnings: Warning 1264 Out of range value for column 'uint16' at row 1 INSERT INTO t1 VALUES ('65535.4'); -INSERT INTO t1 VALUES ('65535.5'); +INSERT IGNORE INTO t1 VALUES ('65535.5'); Warnings: Warning 1264 Out of range value for column 'uint16' at row 1 SELECT * FROM t1; @@ -107,7 +107,7 @@ CREATE TABLE t1 (sint24 mediumint not null); INSERT INTO t1 VALUES ('0.1'); INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('8388607.4'); -INSERT INTO t1 VALUES ('8388607.5'); +INSERT IGNORE INTO t1 VALUES ('8388607.5'); Warnings: Warning 1264 Out of range value for column 'sint24' at row 1 INSERT INTO t1 VALUES ('-0.1'); @@ -115,7 +115,7 @@ INSERT INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('-8388607.4'); INSERT INTO t1 VALUES ('-8388607.5'); INSERT INTO t1 VALUES ('-8388608.4'); -INSERT INTO t1 VALUES ('-8388608.5'); +INSERT IGNORE INTO t1 VALUES ('-8388608.5'); Warnings: Warning 1264 Out of range value for column 'sint24' at row 1 SELECT * FROM t1; @@ -137,11 +137,11 @@ INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('8388607.4'); INSERT INTO t1 VALUES ('8388607.5'); INSERT INTO t1 VALUES ('-0.1'); -INSERT INTO t1 VALUES ('-0.5'); +INSERT IGNORE INTO t1 VALUES ('-0.5'); Warnings: Warning 1264 Out of range value for column 'uint24' at row 1 INSERT INTO t1 VALUES ('16777215.4'); -INSERT INTO t1 VALUES ('16777215.5'); +INSERT IGNORE INTO t1 VALUES ('16777215.5'); Warnings: Warning 1264 Out of range value for column 'uint24' at row 1 SELECT * FROM t1; @@ -159,7 +159,7 @@ CREATE TABLE t1 (sint64 bigint not null); INSERT INTO t1 VALUES ('0.1'); INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('9223372036854775807.4'); -INSERT INTO t1 VALUES ('9223372036854775807.5'); +INSERT IGNORE INTO t1 VALUES ('9223372036854775807.5'); Warnings: Warning 1264 Out of range value for column 'sint64' at row 1 INSERT INTO t1 VALUES ('-0.1'); @@ -167,7 +167,7 @@ INSERT INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('-9223372036854775807.4'); INSERT INTO t1 VALUES ('-9223372036854775807.5'); INSERT INTO t1 VALUES ('-9223372036854775808.4'); -INSERT INTO t1 VALUES ('-9223372036854775808.5'); +INSERT IGNORE INTO t1 VALUES ('-9223372036854775808.5'); Warnings: Warning 1264 Out of range value for column 'sint64' at row 1 SELECT * FROM t1; @@ -189,11 +189,11 @@ INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('9223372036854775807.4'); INSERT INTO t1 VALUES ('9223372036854775807.5'); INSERT INTO t1 VALUES ('-0.1'); -INSERT INTO t1 VALUES ('-0.5'); +INSERT IGNORE INTO t1 VALUES ('-0.5'); Warnings: Warning 1264 Out of range value for column 'uint64' at row 1 INSERT INTO t1 VALUES ('18446744073709551615.4'); -INSERT INTO t1 VALUES ('18446744073709551615.5'); +INSERT IGNORE INTO t1 VALUES ('18446744073709551615.5'); Warnings: Warning 1264 Out of range value for column 'uint64' at row 1 INSERT INTO t1 VALUES ('1844674407370955161.0'); diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index a7c4c76dc8c..a39ca3379c6 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -2817,7 +2817,7 @@ i='1e+01' i=1e+01 i in (1e+01,1e+01) i in ('1e+01','1e+01') 1 1 1 1 DROP TABLE t1; create table t1(a bigint unsigned, b bigint); -insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff), +insert ignore into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff), (0x10000000000000000, 0x10000000000000000), (0x8fffffffffffffff, 0x8fffffffffffffff); Warnings: @@ -4448,7 +4448,7 @@ DROP TABLE t1; # memory # CREATE TABLE t1(a INT NOT NULL, b YEAR); -INSERT INTO t1 VALUES (); +INSERT IGNORE INTO t1 VALUES (); Warnings: Warning 1364 Field 'a' doesn't have a default value CREATE TABLE t2(c INT); @@ -4549,7 +4549,7 @@ DROP TABLE t1; SET @old_sort_buffer_size= @@session.sort_buffer_size; SET @@sort_buffer_size= 40000; CREATE TABLE t1(a CHAR(0) NOT NULL); -INSERT INTO t1 VALUES (0), (0), (0); +INSERT IGNORE INTO t1 VALUES (0), (0), (0); INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; @@ -4559,7 +4559,7 @@ id select_type table type possible_keys key key_len ref rows Extra SELECT a FROM t1 ORDER BY a; DROP TABLE t1; CREATE TABLE t1(a CHAR(0) NOT NULL, b CHAR(0) NOT NULL, c int); -INSERT INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1); +INSERT IGNORE INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1); INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; @@ -4870,7 +4870,7 @@ CREATE TABLE t1(a ENUM('') NOT NULL); INSERT INTO t1 VALUES (), (), (); EXPLAIN SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci; 1 1 diff --git a/mysql-test/r/select_jcl6.result b/mysql-test/r/select_jcl6.result index 19d1733c52e..482fca0d530 100644 --- a/mysql-test/r/select_jcl6.result +++ b/mysql-test/r/select_jcl6.result @@ -2828,7 +2828,7 @@ i='1e+01' i=1e+01 i in (1e+01,1e+01) i in ('1e+01','1e+01') 1 1 1 1 DROP TABLE t1; create table t1(a bigint unsigned, b bigint); -insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff), +insert ignore into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff), (0x10000000000000000, 0x10000000000000000), (0x8fffffffffffffff, 0x8fffffffffffffff); Warnings: @@ -4459,7 +4459,7 @@ DROP TABLE t1; # memory # CREATE TABLE t1(a INT NOT NULL, b YEAR); -INSERT INTO t1 VALUES (); +INSERT IGNORE INTO t1 VALUES (); Warnings: Warning 1364 Field 'a' doesn't have a default value CREATE TABLE t2(c INT); @@ -4560,7 +4560,7 @@ DROP TABLE t1; SET @old_sort_buffer_size= @@session.sort_buffer_size; SET @@sort_buffer_size= 40000; CREATE TABLE t1(a CHAR(0) NOT NULL); -INSERT INTO t1 VALUES (0), (0), (0); +INSERT IGNORE INTO t1 VALUES (0), (0), (0); INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; @@ -4570,7 +4570,7 @@ id select_type table type possible_keys key key_len ref rows Extra SELECT a FROM t1 ORDER BY a; DROP TABLE t1; CREATE TABLE t1(a CHAR(0) NOT NULL, b CHAR(0) NOT NULL, c int); -INSERT INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1); +INSERT IGNORE INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1); INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; @@ -4881,7 +4881,7 @@ CREATE TABLE t1(a ENUM('') NOT NULL); INSERT INTO t1 VALUES (), (), (); EXPLAIN SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci; 1 1 diff --git a/mysql-test/r/select_pkeycache.result b/mysql-test/r/select_pkeycache.result index a7c4c76dc8c..a39ca3379c6 100644 --- a/mysql-test/r/select_pkeycache.result +++ b/mysql-test/r/select_pkeycache.result @@ -2817,7 +2817,7 @@ i='1e+01' i=1e+01 i in (1e+01,1e+01) i in ('1e+01','1e+01') 1 1 1 1 DROP TABLE t1; create table t1(a bigint unsigned, b bigint); -insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff), +insert ignore into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff), (0x10000000000000000, 0x10000000000000000), (0x8fffffffffffffff, 0x8fffffffffffffff); Warnings: @@ -4448,7 +4448,7 @@ DROP TABLE t1; # memory # CREATE TABLE t1(a INT NOT NULL, b YEAR); -INSERT INTO t1 VALUES (); +INSERT IGNORE INTO t1 VALUES (); Warnings: Warning 1364 Field 'a' doesn't have a default value CREATE TABLE t2(c INT); @@ -4549,7 +4549,7 @@ DROP TABLE t1; SET @old_sort_buffer_size= @@session.sort_buffer_size; SET @@sort_buffer_size= 40000; CREATE TABLE t1(a CHAR(0) NOT NULL); -INSERT INTO t1 VALUES (0), (0), (0); +INSERT IGNORE INTO t1 VALUES (0), (0), (0); INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; @@ -4559,7 +4559,7 @@ id select_type table type possible_keys key key_len ref rows Extra SELECT a FROM t1 ORDER BY a; DROP TABLE t1; CREATE TABLE t1(a CHAR(0) NOT NULL, b CHAR(0) NOT NULL, c int); -INSERT INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1); +INSERT IGNORE INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1); INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; @@ -4870,7 +4870,7 @@ CREATE TABLE t1(a ENUM('') NOT NULL); INSERT INTO t1 VALUES (), (), (); EXPLAIN SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort SELECT 1 FROM t1 ORDER BY a COLLATE latin1_german2_ci; 1 1 diff --git a/mysql-test/r/set_statement.result b/mysql-test/r/set_statement.result index 91b8aa6fe59..406ca99a5ea 100644 --- a/mysql-test/r/set_statement.result +++ b/mysql-test/r/set_statement.result @@ -642,7 +642,7 @@ SELECT @@myisam_sort_buffer_size, '# Pre-STATEMENT variable value SELECT @@sql_mode; @@sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION '' '' SET STATEMENT sql_mode='ansi' FOR PREPARE stmt FROM 'SELECT "t1".* FROM t1'; @@ -661,7 +661,7 @@ deallocate prepare stmt; '# Post-STATEMENT SELECT @@sql_mode; @@sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION check the same behaviour in normal set SET sql_mode='ansi'; PREPARE stmt FROM 'SELECT "t1".* FROM t1'; @@ -679,7 +679,7 @@ ALTER TABLE t1 drop COLUMN v3; deallocate prepare stmt; SELECT @@sql_mode; @@sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SET sql_mode='ansi'; SELECT @@sql_mode; @@sql_mode @@ -708,7 +708,7 @@ ALTER TABLE t1 drop COLUMN v3; drop procedure p6; SELECT @@sql_mode; @@sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # SET and the statement parsed as one unit before the SET takes effect SET STATEMENT sql_mode='ansi' FOR CREATE PROCEDURE p6() BEGIN @@ -719,7 +719,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp END' at line 4 SELECT @@sql_mode; @@sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SET sql_mode='ansi'; SELECT @@sql_mode; @@sql_mode @@ -736,7 +736,7 @@ v1 v2 SET sql_mode=default; SELECT @@sql_mode; @@sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # SET and the statement parsed as one unit before the SET takes effect SET STATEMENT sql_mode='ansi' FOR BEGIN NOT ATOMIC diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result index 7ef480a6019..bf4627f6f68 100644 --- a/mysql-test/r/show_check.result +++ b/mysql-test/r/show_check.result @@ -1010,13 +1010,13 @@ def information_schema TRIGGERS TRIGGERS EVENT_OBJECT_TABLE Table 253 192 2 N 1 def information_schema TRIGGERS TRIGGERS ACTION_STATEMENT Statement 252 589815 10 N 17 0 33 def information_schema TRIGGERS TRIGGERS ACTION_TIMING Timing 253 18 6 N 1 0 33 def information_schema TRIGGERS TRIGGERS CREATED Created 12 22 22 Y 128 2 63 -def information_schema TRIGGERS TRIGGERS SQL_MODE sql_mode 253 24576 42 N 1 0 33 +def information_schema TRIGGERS TRIGGERS SQL_MODE sql_mode 253 24576 89 N 1 0 33 def information_schema TRIGGERS TRIGGERS DEFINER Definer 253 567 14 N 1 0 33 def information_schema TRIGGERS TRIGGERS CHARACTER_SET_CLIENT character_set_client 253 96 6 N 1 0 33 def information_schema TRIGGERS TRIGGERS COLLATION_CONNECTION collation_connection 253 96 6 N 1 0 33 def information_schema TRIGGERS TRIGGERS DATABASE_COLLATION Database Collation 253 96 17 N 1 0 33 Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -t1_bi INSERT t1 SET @a = 1 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost binary binary latin1_swedish_ci +t1_bi INSERT t1 SET @a = 1 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost binary binary latin1_swedish_ci ---------------------------------------------------------------- SELECT TRIGGER_CATALOG, @@ -1054,10 +1054,10 @@ def information_schema TRIGGERS TRIGGERS ACTION_REFERENCE_OLD_TABLE ACTION_REFER def information_schema TRIGGERS TRIGGERS ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_NEW_TABLE 253 192 0 Y 0 0 33 def information_schema TRIGGERS TRIGGERS ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_OLD_ROW 253 9 3 N 1 0 33 def information_schema TRIGGERS TRIGGERS ACTION_REFERENCE_NEW_ROW ACTION_REFERENCE_NEW_ROW 253 9 3 N 1 0 33 -def information_schema TRIGGERS TRIGGERS SQL_MODE SQL_MODE 253 24576 42 N 1 0 33 +def information_schema TRIGGERS TRIGGERS SQL_MODE SQL_MODE 253 24576 89 N 1 0 33 def information_schema TRIGGERS TRIGGERS DEFINER DEFINER 253 567 14 N 1 0 33 TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW SQL_MODE DEFINER -def test t1_bi INSERT def test t1 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost +def test t1_bi INSERT def test t1 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost SELECT CREATED FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name='t1_bi'; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def information_schema TRIGGERS TRIGGERS CREATED CREATED 12 22 22 Y 128 2 63 @@ -1094,13 +1094,13 @@ def test v1 select 1 AS `1` NONE NO root@localhost DEFINER binary binary UNDEFIN SHOW CREATE PROCEDURE p1; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def Procedure 253 192 2 N 1 39 33 -def sql_mode 253 126 42 N 1 39 33 +def sql_mode 253 267 89 N 1 39 33 def Create Procedure 253 3072 59 Y 0 39 33 def character_set_client 253 96 6 N 1 39 33 def collation_connection 253 96 6 N 1 39 33 def Database Collation 253 96 17 N 1 39 33 Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() SELECT 1 binary binary latin1_swedish_ci ---------------------------------------------------------------- SELECT @@ -1140,22 +1140,22 @@ def information_schema ROUTINES ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 def information_schema ROUTINES ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33 def information_schema ROUTINES ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33 def information_schema ROUTINES ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33 -def information_schema ROUTINES ROUTINES SQL_MODE SQL_MODE 253 24576 42 N 1 0 33 +def information_schema ROUTINES ROUTINES SQL_MODE SQL_MODE 253 24576 89 N 1 0 33 def information_schema ROUTINES ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 252 589815 0 N 17 0 33 def information_schema ROUTINES ROUTINES DEFINER DEFINER 253 567 14 N 1 0 33 SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER -p1 def test p1 PROCEDURE NULL SQL SELECT 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost +p1 def test p1 PROCEDURE NULL SQL SELECT 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost ---------------------------------------------------------------- SHOW CREATE FUNCTION f1; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def Function 253 192 2 N 1 39 33 -def sql_mode 253 126 42 N 1 39 33 +def sql_mode 253 267 89 N 1 39 33 def Create Function 253 3072 74 Y 0 39 33 def character_set_client 253 96 6 N 1 39 33 def collation_connection 253 96 6 N 1 39 33 def Database Collation 253 96 17 N 1 39 33 Function sql_mode Create Function character_set_client collation_connection Database Collation -f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11) +f1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11) RETURN 1 binary binary latin1_swedish_ci ---------------------------------------------------------------- SELECT @@ -1195,11 +1195,11 @@ def information_schema ROUTINES ROUTINES IS_DETERMINISTIC IS_DETERMINISTIC 253 9 def information_schema ROUTINES ROUTINES SQL_DATA_ACCESS SQL_DATA_ACCESS 253 192 12 N 1 0 33 def information_schema ROUTINES ROUTINES SQL_PATH SQL_PATH 253 192 0 Y 0 0 33 def information_schema ROUTINES ROUTINES SECURITY_TYPE SECURITY_TYPE 253 21 7 N 1 0 33 -def information_schema ROUTINES ROUTINES SQL_MODE SQL_MODE 253 24576 42 N 1 0 33 +def information_schema ROUTINES ROUTINES SQL_MODE SQL_MODE 253 24576 89 N 1 0 33 def information_schema ROUTINES ROUTINES ROUTINE_COMMENT ROUTINE_COMMENT 252 589815 0 N 17 0 33 def information_schema ROUTINES ROUTINES DEFINER DEFINER 253 567 14 N 1 0 33 SPECIFIC_NAME ROUTINE_CATALOG ROUTINE_SCHEMA ROUTINE_NAME ROUTINE_TYPE DTD_IDENTIFIER ROUTINE_BODY ROUTINE_DEFINITION EXTERNAL_NAME EXTERNAL_LANGUAGE PARAMETER_STYLE IS_DETERMINISTIC SQL_DATA_ACCESS SQL_PATH SECURITY_TYPE SQL_MODE ROUTINE_COMMENT DEFINER -f1 def test f1 FUNCTION int(11) SQL RETURN 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost +f1 def test f1 FUNCTION int(11) SQL RETURN 1 NULL NULL SQL NO CONTAINS SQL NULL DEFINER STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost ---------------------------------------------------------------- DROP DATABASE mysqltest1; DROP TABLE t1; @@ -1369,69 +1369,69 @@ CREATE TABLE t1(c1 INT); CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1; SHOW CREATE TRIGGER t1_bi; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CREATE PROCEDURE p1() SHOW CREATE TRIGGER t1_bi; CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # CALL p1(); Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # PREPARE stmt1 FROM 'SHOW CREATE TRIGGER t1_bi'; EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # EXECUTE stmt1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1 latin1 latin1_swedish_ci latin1_swedish_ci # DROP TABLE t1; DROP PROCEDURE p1; DEALLOCATE PREPARE stmt1; @@ -1455,20 +1455,20 @@ View Create View character_set_client collation_connection v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 'теÑÑ‚' AS `test` koi8r koi8r_general_ci SHOW CREATE PROCEDURE p1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() SELECT 'теÑÑ‚' AS test koi8r koi8r_general_ci latin1_swedish_ci SHOW CREATE FUNCTION f1; Function sql_mode Create Function character_set_client collation_connection Database Collation -f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS char(10) CHARSET latin1 +f1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS char(10) CHARSET latin1 RETURN 'теÑÑ‚' koi8r koi8r_general_ci latin1_swedish_ci SHOW CREATE TRIGGER t1_bi; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET NEW.c1 = 'теÑÑ‚' koi8r koi8r_general_ci latin1_swedish_ci # SHOW CREATE EVENT ev1; Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -ev1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 'теÑÑ‚' AS test koi8r koi8r_general_ci latin1_swedish_ci +ev1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `ev1` ON SCHEDULE AT '2030-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO SELECT 'теÑÑ‚' AS test koi8r koi8r_general_ci latin1_swedish_ci DROP VIEW v1; DROP PROCEDURE p1; DROP FUNCTION f1; @@ -1538,7 +1538,7 @@ LOCK TABLE t1 WRITE; connection default; SHOW CREATE TRIGGER t1_bi; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1 utf8 utf8_general_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1 utf8 utf8_general_ci latin1_swedish_ci # connection con1; UNLOCK TABLES; # Test 2: ALTER TABLE with SHOW CREATE TRIGGER in transaction @@ -1546,7 +1546,7 @@ connection default; START TRANSACTION; SHOW CREATE TRIGGER t1_bi; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -t1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1 utf8 utf8_general_ci latin1_swedish_ci # +t1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1 utf8 utf8_general_ci latin1_swedish_ci # connection con1; ALTER TABLE t1 CHARACTER SET = utf8; disconnect con1; diff --git a/mysql-test/r/signal.result b/mysql-test/r/signal.result index a5eb24442b4..f05e357104d 100644 --- a/mysql-test/r/signal.result +++ b/mysql-test/r/signal.result @@ -1118,6 +1118,7 @@ end $$ call test_signal() $$ ERROR 42000: Variable 'MYSQL_ERRNO' can't be set to the value of '999999999999999999999999999999999999999999999999999' drop procedure test_signal $$ +SET sql_mode= '' $$ create procedure test_signal() begin DECLARE aaax VARCHAR(65); @@ -1177,6 +1178,7 @@ Warning 1647 Data truncated for condition item 'CURSOR_NAME' Warning 1647 Data truncated for condition item 'MESSAGE_TEXT' Warning 10000 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222288888888 drop procedure test_signal $$ +set sql_mode = DEFAULT $$ create procedure test_signal() begin DECLARE warn CONDITION FOR SQLSTATE "01234"; @@ -1501,7 +1503,7 @@ select "before RESIGNAL"; RESIGNAL; select "after RESIGNAL"; end; -insert into t_warn set a= 9999999999999999; +insert ignore into t_warn set a= 9999999999999999; end $$ call test_resignal() $$ before RESIGNAL @@ -1618,7 +1620,7 @@ MESSAGE_TEXT = "RESIGNAL of a warning", MYSQL_ERRNO = 5555 ; select "after RESIGNAL"; end; -insert into t_warn set a= 9999999999999999; +insert ignore into t_warn set a= 9999999999999999; end $$ call test_resignal() $$ before RESIGNAL @@ -1892,7 +1894,7 @@ MESSAGE_TEXT = "RESIGNAL to a warning", MYSQL_ERRNO = 5555 ; select "after RESIGNAL"; end; -insert into t_warn set a= 9999999999999999; +insert ignore into t_warn set a= 9999999999999999; end $$ call test_resignal() $$ before RESIGNAL @@ -1913,7 +1915,7 @@ MESSAGE_TEXT = "RESIGNAL to a not found", MYSQL_ERRNO = 5555 ; select "after RESIGNAL"; end; -insert into t_warn set a= 9999999999999999; +insert ignore into t_warn set a= 9999999999999999; end $$ call test_resignal() $$ before RESIGNAL @@ -1934,7 +1936,7 @@ MESSAGE_TEXT = "RESIGNAL to an error", MYSQL_ERRNO = 5555 ; select "after RESIGNAL"; end; -insert into t_warn set a= 9999999999999999; +insert ignore into t_warn set a= 9999999999999999; end $$ call test_resignal() $$ before RESIGNAL diff --git a/mysql-test/r/skip_grants.result b/mysql-test/r/skip_grants.result index b167a197e50..1c055ef7385 100644 --- a/mysql-test/r/skip_grants.result +++ b/mysql-test/r/skip_grants.result @@ -39,11 +39,11 @@ View Create View character_set_client collation_connection v3 CREATE ALGORITHM=UNDEFINED DEFINER=`a`@`%` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`c` AS `c` from `t1` latin1 latin1_swedish_ci SHOW CREATE PROCEDURE p3; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`a`@`%` PROCEDURE `p3`() +p3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`a`@`%` PROCEDURE `p3`() SELECT 3 latin1 latin1_swedish_ci latin1_swedish_ci SHOW CREATE FUNCTION f3; Function sql_mode Create Function character_set_client collation_connection Database Collation -f3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`a`@`%` FUNCTION `f3`() RETURNS int(11) +f3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`a`@`%` FUNCTION `f3`() RETURNS int(11) RETURN 3 latin1 latin1_swedish_ci latin1_swedish_ci DROP TRIGGER t1_bi; DROP TRIGGER ti_ai; diff --git a/mysql-test/r/sp-dynamic.result b/mysql-test/r/sp-dynamic.result index 7309ba4c765..9fa3bea1108 100644 --- a/mysql-test/r/sp-dynamic.result +++ b/mysql-test/r/sp-dynamic.result @@ -220,6 +220,7 @@ id name call p1()| ERROR HY000: Unknown prepared statement handler (stmt) given to EXECUTE drop procedure p1| +set sql_mode= ''| create procedure p1() begin declare a char(10); @@ -232,6 +233,7 @@ call p1()| ERROR 42S22: Unknown column 'a' in 'field list' call p1()| ERROR 42S22: Unknown column 'a' in 'field list' +set sql_mode= DEFAULT| drop procedure p1| create procedure p1() begin diff --git a/mysql-test/r/sp-error.result b/mysql-test/r/sp-error.result index 9b7d84dfdc4..6fbe2d62fd7 100644 --- a/mysql-test/r/sp-error.result +++ b/mysql-test/r/sp-error.result @@ -1879,6 +1879,7 @@ DROP PROCEDURE p1; # # Bug#5889: Exit handler for a warning doesn't hide the warning in trigger # +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1(a INT, b INT); INSERT INTO t1 VALUES (1, 2); CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW @@ -1895,6 +1896,7 @@ a b 10 20 DROP TRIGGER t1_bu; DROP TABLE t1; +SET sql_mode = DEFAULT; # # Bug#9857: Stored procedures: handler for sqlwarning ignored # @@ -1940,11 +1942,11 @@ CREATE TABLE t1(x SMALLINT, y SMALLINT, z SMALLINT); CREATE TABLE t2(a SMALLINT, b SMALLINT, c SMALLINT, d SMALLINT, e SMALLINT, f SMALLINT); CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW -INSERT INTO t2(a, b, c) VALUES(99999, 99999, 99999); +INSERT IGNORE INTO t2(a, b, c) VALUES(99999, 99999, 99999); CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW -INSERT INTO t2(d, e, f) VALUES(99999, 99999, 99999); +INSERT IGNORE INTO t2(d, e, f) VALUES(99999, 99999, 99999); CREATE PROCEDURE p1() -INSERT INTO t1 VALUES(99999, 99999, 99999); +INSERT IGNORE INTO t1 VALUES(99999, 99999, 99999); CALL p1(); Warnings: @@ -1962,6 +1964,7 @@ DROP TABLE t1; DROP TABLE t2; DROP PROCEDURE p1; # ---------------------------------------------------------------------- +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1(x SMALLINT, y SMALLINT, z SMALLINT); CREATE TABLE t2(a SMALLINT, b SMALLINT, c SMALLINT NOT NULL); CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW @@ -1991,6 +1994,7 @@ Error 1048 Column 'c' cannot be null DROP TABLE t1; DROP TABLE t2; DROP PROCEDURE p1; +SET sql_mode = DEFAULT; ################################################################### # Tests for the following bugs: @@ -2614,7 +2618,7 @@ SELECT 'Warning caught' AS msg; # The INSERT below raises 3 SQL-conditions (warnings). The EXIT HANDLER # above must be invoked once (for one condition), but all three conditions # must be cleared from the Diagnostics Area. -INSERT INTO t1 VALUES('qqqq', 'ww', 'eee'); +INSERT IGNORE INTO t1 VALUES('qqqq', 'ww', 'eee'); # The following INSERT will not be executed, because of the EXIT HANDLER. INSERT INTO t1 VALUES('zzz', 'xx', 'yyyy'); END| @@ -2638,7 +2642,7 @@ SELECT 'Warning 1292 caught' AS msg; # and 3 SQL-warnings with code 1264. The CONTINUE HANDLER above must be # invoked once, and all nine SQL-warnings must be cleared from # the Diagnostics Area. -INSERT INTO t2 +INSERT IGNORE INTO t2 SELECT CAST(CONCAT(CAST('1 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), CAST(CONCAT(CAST('2 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), @@ -2708,7 +2712,7 @@ SIGNAL SQLSTATE '01000' SET MYSQL_ERRNO = 1234; SHOW WARNINGS; SELECT 'Handler for 1292 (2)' AS Msg; END; -INSERT INTO t2 +INSERT IGNORE INTO t2 SELECT CAST(999999 AS SIGNED INTEGER), CAST(CONCAT(CAST('2 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), @@ -2735,7 +2739,7 @@ BEGIN SHOW WARNINGS; SELECT 'Handler for 1292' Msg; END; -INSERT INTO t2 +INSERT IGNORE INTO t2 SELECT CAST(CONCAT(CAST('1 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), CAST(CONCAT(CAST('2 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), @@ -2771,6 +2775,7 @@ DROP TABLE t2; DROP PROCEDURE IF EXISTS p1; DROP PROCEDURE IF EXISTS p2; +SET sql_mode = ''; CREATE PROCEDURE p1() BEGIN DECLARE var1 INTEGER DEFAULT 'string'; @@ -2781,6 +2786,7 @@ CALL p1()| Warnings: Warning 1366 Incorrect integer value: 'string' for column 'var1' at row 1 +SET sql_mode = DEFAULT; CREATE PROCEDURE p2() BEGIN DECLARE EXIT HANDLER FOR SQLWARNING SELECT 'H2'; diff --git a/mysql-test/r/sp-lock.result b/mysql-test/r/sp-lock.result index 25982522163..acf951f6676 100644 --- a/mysql-test/r/sp-lock.result +++ b/mysql-test/r/sp-lock.result @@ -735,7 +735,7 @@ connection con2; get_lock("test", 10) 1 Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN SELECT get_lock("test", 10); SHOW CREATE PROCEDURE p1; diff --git a/mysql-test/r/sp-security.result b/mysql-test/r/sp-security.result index 22172bf18fc..cd5e6a16967 100644 --- a/mysql-test/r/sp-security.result +++ b/mysql-test/r/sp-security.result @@ -442,19 +442,19 @@ connection con1root; USE mysqltest; SHOW CREATE PROCEDURE wl2897_p1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -wl2897_p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`mysqltest_2`@`localhost` PROCEDURE `wl2897_p1`() +wl2897_p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`mysqltest_2`@`localhost` PROCEDURE `wl2897_p1`() SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci SHOW CREATE PROCEDURE wl2897_p3; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -wl2897_p3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`a @ b @ c`@`localhost` PROCEDURE `wl2897_p3`() +wl2897_p3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`a @ b @ c`@`localhost` PROCEDURE `wl2897_p3`() SELECT 3 latin1 latin1_swedish_ci latin1_swedish_ci SHOW CREATE FUNCTION wl2897_f1; Function sql_mode Create Function character_set_client collation_connection Database Collation -wl2897_f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`mysqltest_2`@`localhost` FUNCTION `wl2897_f1`() RETURNS int(11) +wl2897_f1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`mysqltest_2`@`localhost` FUNCTION `wl2897_f1`() RETURNS int(11) RETURN 1 latin1 latin1_swedish_ci latin1_swedish_ci SHOW CREATE FUNCTION wl2897_f3; Function sql_mode Create Function character_set_client collation_connection Database Collation -wl2897_f3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`a @ b @ c`@`localhost` FUNCTION `wl2897_f3`() RETURNS int(11) +wl2897_f3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`a @ b @ c`@`localhost` FUNCTION `wl2897_f3`() RETURNS int(11) RETURN 3 latin1 latin1_swedish_ci latin1_swedish_ci DROP USER mysqltest_1@localhost; DROP USER mysqltest_2@localhost; @@ -520,7 +520,7 @@ SELECT a; END // SHOW CREATE PROCEDURE test.sp19857; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -sp19857 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user19857`@`localhost` PROCEDURE `sp19857`() +sp19857 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user19857`@`localhost` PROCEDURE `sp19857`() DETERMINISTIC BEGIN DECLARE a INT; @@ -704,7 +704,7 @@ connection con2; # This should work SHOW CREATE PROCEDURE db1.p1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci connection default; disconnect con2; diff --git a/mysql-test/r/sp-ucs2.result b/mysql-test/r/sp-ucs2.result index 3c444ad97de..b8cc5dfd73d 100644 --- a/mysql-test/r/sp-ucs2.result +++ b/mysql-test/r/sp-ucs2.result @@ -40,7 +40,7 @@ BEGIN RETURN ''; END| Function sql_mode Create Function character_set_client collation_connection Database Collation -f NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET ucs2 COLLATE ucs2_bin +f STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET ucs2 COLLATE ucs2_bin BEGIN RETURN ''; END latin1 latin1_swedish_ci latin1_swedish_ci @@ -55,7 +55,7 @@ BEGIN RETURN ''; END| Function sql_mode Create Function character_set_client collation_connection Database Collation -f NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET ucs2 COLLATE ucs2_bin +f STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET ucs2 COLLATE ucs2_bin BEGIN RETURN ''; END latin1 latin1_swedish_ci latin1_swedish_ci @@ -67,7 +67,7 @@ BEGIN RETURN ''; END| Function sql_mode Create Function character_set_client collation_connection Database Collation -f NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET latin1 COLLATE latin1_bin +f STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET latin1 COLLATE latin1_bin BEGIN RETURN ''; END latin1 latin1_swedish_ci latin1_swedish_ci @@ -83,7 +83,7 @@ SET f2= f1; SET f2= concat(collation(f1), ' ', collation(f2)); END| Function sql_mode Create Function character_set_client collation_connection Database Collation -f NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET latin1 COLLATE latin1_bin +f STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET latin1 COLLATE latin1_bin BEGIN RETURN ''; END latin1 latin1_swedish_ci latin1_swedish_ci @@ -127,7 +127,7 @@ RETURNS ENUM( 'w' ) CHARACTER SET ucs2 RETURN 0; SHOW CREATE FUNCTION bug48766; Function sql_mode Create Function character_set_client collation_connection Database Collation -bug48766 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `bug48766`() RETURNS enum('w') CHARSET ucs2 +bug48766 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `bug48766`() RETURNS enum('w') CHARSET ucs2 RETURN 0 utf8 utf8_general_ci latin1_swedish_ci SELECT DTD_IDENTIFIER FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME='bug48766'; @@ -139,7 +139,7 @@ RETURNS ENUM('а','б','в','г') CHARACTER SET ucs2 RETURN 0; SHOW CREATE FUNCTION bug48766; Function sql_mode Create Function character_set_client collation_connection Database Collation -bug48766 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `bug48766`() RETURNS enum('а','б','в','г') CHARSET ucs2 +bug48766 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `bug48766`() RETURNS enum('а','б','в','г') CHARSET ucs2 RETURN 0 utf8 utf8_general_ci latin1_swedish_ci SELECT DTD_IDENTIFIER FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME='bug48766'; diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result index 02cca6b7284..a843b9a5f95 100644 --- a/mysql-test/r/sp.result +++ b/mysql-test/r/sp.result @@ -791,7 +791,7 @@ comment 'Characteristics procedure test' insert into t1 values ("chistics", 1)| show create procedure chistics| Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -chistics NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `chistics`() +chistics STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `chistics`() MODIFIES SQL DATA COMMENT 'Characteristics procedure test' insert into t1 values ("chistics", 1) latin1 latin1_swedish_ci latin1_swedish_ci @@ -803,7 +803,7 @@ delete from t1| alter procedure chistics sql security invoker| show create procedure chistics| Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -chistics NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `chistics`() +chistics STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `chistics`() MODIFIES SQL DATA SQL SECURITY INVOKER COMMENT 'Characteristics procedure test' @@ -818,7 +818,7 @@ comment 'Characteristics procedure test' return 42| show create function chistics| Function sql_mode Create Function character_set_client collation_connection Database Collation -chistics NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `chistics`() RETURNS int(11) +chistics STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `chistics`() RETURNS int(11) DETERMINISTIC SQL SECURITY INVOKER COMMENT 'Characteristics procedure test' @@ -831,7 +831,7 @@ no sql comment 'Characteristics function test'| show create function chistics| Function sql_mode Create Function character_set_client collation_connection Database Collation -chistics NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `chistics`() RETURNS int(11) +chistics STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `chistics`() RETURNS int(11) NO SQL DETERMINISTIC SQL SECURITY INVOKER diff --git a/mysql-test/r/sp_notembedded.result b/mysql-test/r/sp_notembedded.result index 73cc4f154c7..190f8f78d23 100644 --- a/mysql-test/r/sp_notembedded.result +++ b/mysql-test/r/sp_notembedded.result @@ -56,6 +56,7 @@ return prm * bug10100f(prm - 1); end if; return 1; end| +set statement sql_mode = '' for create procedure bug10100p(prm int, inout res int) begin set res = res * prm; @@ -63,6 +64,7 @@ if prm > 1 then call bug10100p(prm - 1, res); end if; end| +set statement sql_mode = '' for create procedure bug10100t(prm int) begin declare res int; @@ -210,7 +212,7 @@ disconnect rl_contender; drop procedure p1; drop table t1; set session low_priority_updates=default; -INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, +INSERT IGNORE INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, diff --git a/mysql-test/r/strict.result b/mysql-test/r/strict.result index 49a7c45de6e..025782a365d 100644 --- a/mysql-test/r/strict.result +++ b/mysql-test/r/strict.result @@ -1374,6 +1374,7 @@ i int comment 123456789*123456789*123456789*123456789*'); ERROR HY000: Comment for field 'i' is too long (max = 1024) set @@sql_mode= @org_mode; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (i int comment '123456789*123456789*123456789*123456789* diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index 5ed2f5c9622..1f7edd79029 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -1203,11 +1203,11 @@ CREATE TABLE `t3` ( PRIMARY KEY (`numeropost`), UNIQUE KEY `maxnumrep` (`maxnumrep`) ) ENGINE=MyISAM CHARSET=latin1; -INSERT INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 -INSERT INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 @@ -4464,7 +4464,7 @@ insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1(f11 int, f12 int); create table t2(f21 int unsigned not null, f22 int, f23 varchar(10)); insert into t1 values(1,1),(2,2), (3, 3); -insert into t2 +insert ignore into t2 select -1 , (@a:=(A.a + 10 * (B.a + 10 * (C.a+10*D.a))))/5000 + 1, @a from t0 A, t0 B, t0 C, t0 D; set session sort_buffer_size= 33*1024; diff --git a/mysql-test/r/subselect2.result b/mysql-test/r/subselect2.result index e87f4b9b451..93204f99808 100644 --- a/mysql-test/r/subselect2.result +++ b/mysql-test/r/subselect2.result @@ -16,7 +16,7 @@ DOCID VARCHAR(32)BINARY NOT NULL , PRIMARY KEY ( DOCID ) ) ENGINE=InnoDB ; -INSERT INTO t1 (DOCID) VALUES ("1"), ("2"); +INSERT IGNORE INTO t1 (DOCID) VALUES ("1"), ("2"); Warnings: Warning 1364 Field 'UUID' doesn't have a default value CREATE TABLE t2 diff --git a/mysql-test/r/subselect_mat.result b/mysql-test/r/subselect_mat.result index 0d40ca3d01f..59f9d3c1876 100644 --- a/mysql-test/r/subselect_mat.result +++ b/mysql-test/r/subselect_mat.result @@ -1665,7 +1665,7 @@ DROP TABLE t1,t2,t3,t4,t5; # BUG#836532: Crash in Item_equal_fields_iterator::get_curr_field with semijoin+materialization # CREATE TABLE t2 (a int); -INSERT INTO t2 VALUES ('a'),('a'); +INSERT IGNORE INTO t2 VALUES ('a'),('a'); Warnings: Warning 1366 Incorrect integer value: 'a' for column 'a' at row 1 Warning 1366 Incorrect integer value: 'a' for column 'a' at row 2 diff --git a/mysql-test/r/subselect_no_exists_to_in.result b/mysql-test/r/subselect_no_exists_to_in.result index 113a2333b80..af023ea12f1 100644 --- a/mysql-test/r/subselect_no_exists_to_in.result +++ b/mysql-test/r/subselect_no_exists_to_in.result @@ -1207,11 +1207,11 @@ CREATE TABLE `t3` ( PRIMARY KEY (`numeropost`), UNIQUE KEY `maxnumrep` (`maxnumrep`) ) ENGINE=MyISAM CHARSET=latin1; -INSERT INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 -INSERT INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 @@ -4466,7 +4466,7 @@ insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1(f11 int, f12 int); create table t2(f21 int unsigned not null, f22 int, f23 varchar(10)); insert into t1 values(1,1),(2,2), (3, 3); -insert into t2 +insert ignore into t2 select -1 , (@a:=(A.a + 10 * (B.a + 10 * (C.a+10*D.a))))/5000 + 1, @a from t0 A, t0 B, t0 C, t0 D; set session sort_buffer_size= 33*1024; diff --git a/mysql-test/r/subselect_no_mat.result b/mysql-test/r/subselect_no_mat.result index 7ee8821cd00..de116f46079 100644 --- a/mysql-test/r/subselect_no_mat.result +++ b/mysql-test/r/subselect_no_mat.result @@ -1210,11 +1210,11 @@ CREATE TABLE `t3` ( PRIMARY KEY (`numeropost`), UNIQUE KEY `maxnumrep` (`maxnumrep`) ) ENGINE=MyISAM CHARSET=latin1; -INSERT INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 -INSERT INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 @@ -4466,7 +4466,7 @@ insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1(f11 int, f12 int); create table t2(f21 int unsigned not null, f22 int, f23 varchar(10)); insert into t1 values(1,1),(2,2), (3, 3); -insert into t2 +insert ignore into t2 select -1 , (@a:=(A.a + 10 * (B.a + 10 * (C.a+10*D.a))))/5000 + 1, @a from t0 A, t0 B, t0 C, t0 D; set session sort_buffer_size= 33*1024; diff --git a/mysql-test/r/subselect_no_opts.result b/mysql-test/r/subselect_no_opts.result index 59074b859ea..dd3fb658f7a 100644 --- a/mysql-test/r/subselect_no_opts.result +++ b/mysql-test/r/subselect_no_opts.result @@ -1206,11 +1206,11 @@ CREATE TABLE `t3` ( PRIMARY KEY (`numeropost`), UNIQUE KEY `maxnumrep` (`maxnumrep`) ) ENGINE=MyISAM CHARSET=latin1; -INSERT INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 -INSERT INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 @@ -4462,7 +4462,7 @@ insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1(f11 int, f12 int); create table t2(f21 int unsigned not null, f22 int, f23 varchar(10)); insert into t1 values(1,1),(2,2), (3, 3); -insert into t2 +insert ignore into t2 select -1 , (@a:=(A.a + 10 * (B.a + 10 * (C.a+10*D.a))))/5000 + 1, @a from t0 A, t0 B, t0 C, t0 D; set session sort_buffer_size= 33*1024; diff --git a/mysql-test/r/subselect_no_scache.result b/mysql-test/r/subselect_no_scache.result index 6acd441f465..abe032f7311 100644 --- a/mysql-test/r/subselect_no_scache.result +++ b/mysql-test/r/subselect_no_scache.result @@ -1209,11 +1209,11 @@ CREATE TABLE `t3` ( PRIMARY KEY (`numeropost`), UNIQUE KEY `maxnumrep` (`maxnumrep`) ) ENGINE=MyISAM CHARSET=latin1; -INSERT INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 -INSERT INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 @@ -4470,7 +4470,7 @@ insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1(f11 int, f12 int); create table t2(f21 int unsigned not null, f22 int, f23 varchar(10)); insert into t1 values(1,1),(2,2), (3, 3); -insert into t2 +insert ignore into t2 select -1 , (@a:=(A.a + 10 * (B.a + 10 * (C.a+10*D.a))))/5000 + 1, @a from t0 A, t0 B, t0 C, t0 D; set session sort_buffer_size= 33*1024; diff --git a/mysql-test/r/subselect_no_semijoin.result b/mysql-test/r/subselect_no_semijoin.result index 0c5f9885218..8d2c823a38a 100644 --- a/mysql-test/r/subselect_no_semijoin.result +++ b/mysql-test/r/subselect_no_semijoin.result @@ -1206,11 +1206,11 @@ CREATE TABLE `t3` ( PRIMARY KEY (`numeropost`), UNIQUE KEY `maxnumrep` (`maxnumrep`) ) ENGINE=MyISAM CHARSET=latin1; -INSERT INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 -INSERT INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); Warnings: Warning 1265 Data truncated for column 'date' at row 1 Warning 1265 Data truncated for column 'date' at row 2 @@ -4462,7 +4462,7 @@ insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1(f11 int, f12 int); create table t2(f21 int unsigned not null, f22 int, f23 varchar(10)); insert into t1 values(1,1),(2,2), (3, 3); -insert into t2 +insert ignore into t2 select -1 , (@a:=(A.a + 10 * (B.a + 10 * (C.a+10*D.a))))/5000 + 1, @a from t0 A, t0 B, t0 C, t0 D; set session sort_buffer_size= 33*1024; diff --git a/mysql-test/r/subselect_sj_mat.result b/mysql-test/r/subselect_sj_mat.result index fa74cc36612..a3f3cc4213c 100644 --- a/mysql-test/r/subselect_sj_mat.result +++ b/mysql-test/r/subselect_sj_mat.result @@ -1702,7 +1702,7 @@ DROP TABLE t1,t2,t3,t4,t5; # BUG#836532: Crash in Item_equal_fields_iterator::get_curr_field with semijoin+materialization # CREATE TABLE t2 (a int); -INSERT INTO t2 VALUES ('a'),('a'); +INSERT IGNORE INTO t2 VALUES ('a'),('a'); Warnings: Warning 1366 Incorrect integer value: 'a' for column 'a' at row 1 Warning 1366 Incorrect integer value: 'a' for column 'a' at row 2 diff --git a/mysql-test/r/system_mysql_db_refs.result b/mysql-test/r/system_mysql_db_refs.result index ac072505bc9..96ecd2f27c0 100644 --- a/mysql-test/r/system_mysql_db_refs.result +++ b/mysql-test/r/system_mysql_db_refs.result @@ -1,22 +1,22 @@ set @name="This is a very long string, that mustn't find room in a system field like Table_name. Thus it should be cut by the actual size of the field. So we can use this string to find out the actual length of the field and to use it in any compare queries"; create table test_db select * from mysql.db; delete from test_db; -insert into test_db (Host,Db,User) values (@name,@name,@name); +insert ignore into test_db (Host,Db,User) values (@name,@name,@name); create table test_host select * from mysql.host; delete from test_host; -insert into test_host (Host,Db) values (@name,@name); +insert ignore into test_host (Host,Db) values (@name,@name); create table test_user select * from mysql.user; delete from test_user; -insert into test_user (Host,User) values (@name,@name); +insert ignore into test_user (Host,User) values (@name,@name); create table test_func select * from mysql.func; delete from test_func; -insert into test_func (name) values (@name); +insert ignore into test_func (name) values (@name); create table test_tables_priv select * from mysql.tables_priv; delete from test_tables_priv; -insert into test_tables_priv (Host,Db,User,Table_name) values (@name,@name,@name,@name); +insert ignore into test_tables_priv (Host,Db,User,Table_name) values (@name,@name,@name,@name); create table test_columns_priv select * from mysql.columns_priv; delete from test_columns_priv; -insert into test_columns_priv (Host,Db,User,Table_name,Column_name) values (@name,@name,@name,@name,@name); +insert ignore into test_columns_priv (Host,Db,User,Table_name,Column_name) values (@name,@name,@name,@name,@name); select if(isnull(test_db.Host),'WRONG!!!','ok') as test_db_Host, if(isnull(test_host.Host),'WRONG!!!','ok') as test_host_Host, diff --git a/mysql-test/r/trigger-compat.result b/mysql-test/r/trigger-compat.result index 6e22c46443f..387d4fb1489 100644 --- a/mysql-test/r/trigger-compat.result +++ b/mysql-test/r/trigger-compat.result @@ -29,8 +29,8 @@ wl2818_trg2 mysqltest_dfn@localhost SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name; TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION -def mysqltest_db1 wl2818_trg1 INSERT def mysqltest_db1 t1 1 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW BEFORE NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION latin1 latin1_swedish_ci latin1_swedish_ci -def mysqltest_db1 wl2818_trg2 INSERT def mysqltest_db1 t1 1 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW AFTER NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION mysqltest_dfn@localhost latin1 latin1_swedish_ci latin1_swedish_ci +def mysqltest_db1 wl2818_trg1 INSERT def mysqltest_db1 t1 1 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW BEFORE NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION latin1 latin1_swedish_ci latin1_swedish_ci +def mysqltest_db1 wl2818_trg2 INSERT def mysqltest_db1 t1 1 NULL INSERT INTO t2 VALUES(CURRENT_USER()) ROW AFTER NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION mysqltest_dfn@localhost latin1 latin1_swedish_ci latin1_swedish_ci DROP TRIGGER wl2818_trg1; Warnings: Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'wl2818_trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger diff --git a/mysql-test/r/trigger.result b/mysql-test/r/trigger.result index 7c8cb5c46a6..e6c8f6a5e2f 100644 --- a/mysql-test/r/trigger.result +++ b/mysql-test/r/trigger.result @@ -2095,7 +2095,7 @@ DROP TABLE t1, t2; CREATE TABLE t1 (id INT NOT NULL); CREATE TABLE t2 (id INT NOT NULL); INSERT t1 VALUES (1),(2),(3); -UPDATE t1 SET id=NULL; +UPDATE IGNORE t1 SET id=NULL; Warnings: Warning 1048 Column 'id' cannot be null Warning 1048 Column 'id' cannot be null @@ -2123,7 +2123,7 @@ CREATE TRIGGER trg1 BEFORE INSERT ON t2 FOR EACH ROW INSERT/*!INTO*/t1 VALUES (1 # Used to crash SHOW TRIGGERS IN db1; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -trg1 INSERT t2 CREATE DEFINER=`root`@`localhost` TRIGGER trg1 BEFORE INSERT ON t2 FOR EACH ROW INSERTINTOt1 VALUES (1) BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION latin1 latin1_swedish_ci latin1_swedish_ci +trg1 INSERT t2 CREATE DEFINER=`root`@`localhost` TRIGGER trg1 BEFORE INSERT ON t2 FOR EACH ROW INSERTINTOt1 VALUES (1) BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION latin1 latin1_swedish_ci latin1_swedish_ci INSERT INTO t2 VALUES (1); ERROR 42000: Trigger 'trg1' has an error in its body: 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VALUES (1)' at line 1' SELECT * FROM t1; @@ -2178,6 +2178,7 @@ s1 DELETE FROM t1; DROP TABLE t1; DROP TEMPORARY TABLE t2; +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; DROP TRIGGER IF EXISTS trg1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a INT); @@ -2205,6 +2206,7 @@ BEGIN DECLARE trg2 CHAR; SELECT 'ab' INTO trg2; END| +SET sql_mode = DEFAULT; INSERT INTO t1 VALUES (0); SELECT * FROM t1; a diff --git a/mysql-test/r/trigger_notembedded.result b/mysql-test/r/trigger_notembedded.result index 36352623998..3ee84c3c308 100644 --- a/mysql-test/r/trigger_notembedded.result +++ b/mysql-test/r/trigger_notembedded.result @@ -133,8 +133,8 @@ INSERT INTO t1 VALUES(6); ERROR HY000: The user specified as a definer ('mysqltest_nonexs'@'localhost') does not exist SHOW TRIGGERS; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -trg1 INSERT t1 SET @new_sum = 0 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION mysqltest_inv@localhost latin1 latin1_swedish_ci latin1_swedish_ci -trg2 INSERT t1 SET @new_sum = 0 AFTER # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION mysqltest_nonexs@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg1 INSERT t1 SET @new_sum = 0 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION mysqltest_inv@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg2 INSERT t1 SET @new_sum = 0 AFTER # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION mysqltest_nonexs@localhost latin1 latin1_swedish_ci latin1_swedish_ci DROP TRIGGER trg1; DROP TRIGGER trg2; CREATE TRIGGER trg1 BEFORE INSERT ON t1 @@ -163,11 +163,11 @@ trg5 @abcdef@@@hostname SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name; TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION -def mysqltest_db1 trg1 INSERT def mysqltest_db1 t1 1 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION latin1 latin1_swedish_ci latin1_swedish_ci -def mysqltest_db1 trg2 INSERT def mysqltest_db1 t1 1 NULL SET @a = 2 ROW AFTER NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION @ latin1 latin1_swedish_ci latin1_swedish_ci -def mysqltest_db1 trg3 UPDATE def mysqltest_db1 t1 1 NULL SET @a = 3 ROW BEFORE NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION @abc@def@@% latin1 latin1_swedish_ci latin1_swedish_ci -def mysqltest_db1 trg4 UPDATE def mysqltest_db1 t1 1 NULL SET @a = 4 ROW AFTER NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION @hostname latin1 latin1_swedish_ci latin1_swedish_ci -def mysqltest_db1 trg5 DELETE def mysqltest_db1 t1 1 NULL SET @a = 5 ROW BEFORE NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION @abcdef@@@hostname latin1 latin1_swedish_ci latin1_swedish_ci +def mysqltest_db1 trg1 INSERT def mysqltest_db1 t1 1 NULL SET @a = 1 ROW BEFORE NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION latin1 latin1_swedish_ci latin1_swedish_ci +def mysqltest_db1 trg2 INSERT def mysqltest_db1 t1 1 NULL SET @a = 2 ROW AFTER NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION @ latin1 latin1_swedish_ci latin1_swedish_ci +def mysqltest_db1 trg3 UPDATE def mysqltest_db1 t1 1 NULL SET @a = 3 ROW BEFORE NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION @abc@def@@% latin1 latin1_swedish_ci latin1_swedish_ci +def mysqltest_db1 trg4 UPDATE def mysqltest_db1 t1 1 NULL SET @a = 4 ROW AFTER NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION @hostname latin1 latin1_swedish_ci latin1_swedish_ci +def mysqltest_db1 trg5 DELETE def mysqltest_db1 t1 1 NULL SET @a = 5 ROW BEFORE NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION @abcdef@@@hostname latin1 latin1_swedish_ci latin1_swedish_ci connection default; DROP USER mysqltest_dfn@localhost; DROP USER mysqltest_inv@localhost; diff --git a/mysql-test/r/trigger_wl3253.result b/mysql-test/r/trigger_wl3253.result index c39591fdc17..bd2d250cb2f 100644 --- a/mysql-test/r/trigger_wl3253.result +++ b/mysql-test/r/trigger_wl3253.result @@ -93,13 +93,13 @@ CREATE TABLE t1 (a INT); CREATE TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1; SHOW TRIGGERS; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -tr1_bi INSERT t1 SET @a:=1 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr1_bi INSERT t1 SET @a:=1 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_schema = 'test'; TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION -def test tr1_bi INSERT def test t1 1 NULL SET @a:=1 ROW BEFORE NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +def test tr1_bi INSERT def test t1 1 NULL SET @a:=1 ROW BEFORE NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci SHOW CREATE TRIGGER tr1_bi; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -tr1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 latin1 latin1_swedish_ci latin1_swedish_ci # +tr1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 latin1 latin1_swedish_ci latin1_swedish_ci # DROP TABLE t1; # # Test 6. @@ -142,7 +142,7 @@ SET TIMESTAMP=UNIX_TIMESTAMP('2013-01-31 09:00:01'); CREATE TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1; SHOW CREATE TRIGGER tr1_bi; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -tr1_bi NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 latin1 latin1_swedish_ci latin1_swedish_ci 2013-01-31 09:00:01.00 +tr1_bi STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 latin1 latin1_swedish_ci latin1_swedish_ci 2013-01-31 09:00:01.00 DROP TABLE t1; SET TIMESTAMP=DEFAULT; # @@ -155,10 +155,10 @@ SET TIMESTAMP=UNIX_TIMESTAMP('2013-01-31 09:00:01'); CREATE TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1; SHOW TRIGGERS; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -tr1_bi INSERT t1 SET @a:=1 BEFORE 2013-01-31 09:00:01.00 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr1_bi INSERT t1 SET @a:=1 BEFORE 2013-01-31 09:00:01.00 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_schema = 'test'; TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION -def test tr1_bi INSERT def test t1 1 NULL SET @a:=1 ROW BEFORE NULL NULL OLD NEW 2013-01-31 09:00:01.00 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +def test tr1_bi INSERT def test t1 1 NULL SET @a:=1 ROW BEFORE NULL NULL OLD NEW 2013-01-31 09:00:01.00 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci DROP TABLE t1; SET TIMESTAMP=DEFAULT; # @@ -296,12 +296,12 @@ CREATE TRIGGER tr1_ai AFTER INSERT ON t1 FOR EACH ROW FOLLOWS tr1_bi SET @a:=3; ERROR HY000: Referenced trigger 'tr1_bi' for the given action time and event type does not exist SHOW TRIGGERS; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -tr1_bi INSERT t1 SET @a:=1 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci -tr1_bu UPDATE t1 SET @a:=3 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr1_bi INSERT t1 SET @a:=1 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr1_bu UPDATE t1 SET @a:=3 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_schema = 'test'; TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION -def test tr1_bi INSERT def test t1 1 NULL SET @a:=1 ROW BEFORE NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci -def test tr1_bu UPDATE def test t1 1 NULL SET @a:=3 ROW BEFORE NULL NULL OLD NEW # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +def test tr1_bi INSERT def test t1 1 NULL SET @a:=1 ROW BEFORE NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +def test tr1_bu UPDATE def test t1 1 NULL SET @a:=3 ROW BEFORE NULL NULL OLD NEW # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci DROP TABLE t1; # # Test 17. Check that table's triggers are dumped correctly. @@ -323,7 +323,7 @@ CREATE TABLE `t1` ( /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 */;; DELIMITER ; @@ -338,7 +338,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER tr2_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=2 */;; DELIMITER ; @@ -353,7 +353,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER tr1_bu BEFORE UPDATE ON t1 FOR EACH ROW SET @a:=3 */;; DELIMITER ; @@ -385,7 +385,7 @@ CREATE TABLE `t1` ( /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER tr0_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=0 */;; DELIMITER ; @@ -400,7 +400,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 */;; DELIMITER ; @@ -415,7 +415,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER tr1_1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=0 */;; DELIMITER ; @@ -430,7 +430,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER tr2_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a:=2 */;; DELIMITER ; @@ -454,17 +454,17 @@ SET TIMESTAMP=DEFAULT; - + - + - + diff --git a/mysql-test/r/truncate.result b/mysql-test/r/truncate.result index 9b4cb4a36d9..48839f0eadb 100644 --- a/mysql-test/r/truncate.result +++ b/mysql-test/r/truncate.result @@ -142,7 +142,7 @@ TRUNCATE p1; ERROR 42S02: Table 'test.p1' doesn't exist SHOW CREATE PROCEDURE p1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() SET @a = 5 latin1 latin1_swedish_ci latin1_swedish_ci DROP PROCEDURE p1; # diff --git a/mysql-test/r/type_binary.result b/mysql-test/r/type_binary.result index 9d44d718a02..7dfe44ab045 100644 --- a/mysql-test/r/type_binary.result +++ b/mysql-test/r/type_binary.result @@ -116,7 +116,7 @@ hex(cast(0x10 as binary(2))) 1000 create table t1 (b binary(2), vb varbinary(2)); insert into t1 values(0x4120, 0x4120); -insert into t1 values(0x412020, 0x412020); +insert ignore into t1 values(0x412020, 0x412020); Warnings: Warning 1265 Data truncated for column 'b' at row 1 Warning 1265 Data truncated for column 'vb' at row 1 @@ -137,7 +137,7 @@ ERROR 22001: Data too long for column 'vb' at row 1 drop table t1; set @@sql_mode= @old_sql_mode; create table t1(f1 int, f2 binary(2) not null, f3 char(2) not null); -insert into t1 set f1=1; +insert ignore into t1 set f1=1; Warnings: Warning 1364 Field 'f2' doesn't have a default value Warning 1364 Field 'f3' doesn't have a default value diff --git a/mysql-test/r/type_bit.result b/mysql-test/r/type_bit.result index 639a97be27b..b2067907391 100644 --- a/mysql-test/r/type_bit.result +++ b/mysql-test/r/type_bit.result @@ -461,7 +461,7 @@ h a drop table t1; create table t1 (a bit(8)) engine=heap; -insert into t1 values ('1111100000'); +insert ignore into t1 values ('1111100000'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select a+0 from t1; @@ -605,7 +605,7 @@ NULL NULL 11111111 11111111 drop table bug15583; create table t1(a bit(1), b smallint unsigned); -insert into t1 (b, a) values ('2', '1'); +insert ignore into t1 (b, a) values ('2', '1'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select hex(a), b from t1; @@ -675,7 +675,7 @@ COUNT(DISTINCT b,c) 2 DROP TABLE t2; CREATE TABLE t1(a BIT(13), KEY(a)); -INSERT INTO t1(a) VALUES +INSERT IGNORE INTO t1(a) VALUES (65535),(65525),(65535),(65535),(65535),(65535),(65535),(65535),(65535),(65535); EXPLAIN SELECT 1 FROM t1 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra diff --git a/mysql-test/r/type_bit_innodb.result b/mysql-test/r/type_bit_innodb.result index acb3c311cf5..9b186207f3f 100644 --- a/mysql-test/r/type_bit_innodb.result +++ b/mysql-test/r/type_bit_innodb.result @@ -60,7 +60,7 @@ AAAAAAAAAAAAAAAA 5555555555555555 drop table t1; create table t1 (a bit) engine=innodb; -insert into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001'); +insert ignore into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001'); Warnings: Warning 1264 Out of range value for column 'a' at row 4 select hex(a) from t1; @@ -74,7 +74,7 @@ alter table t1 add unique (a); ERROR 23000: Duplicate entry '' for key 'a' drop table t1; create table t1 (a bit(2)) engine=innodb; -insert into t1 values (b'00'), (b'01'), (b'10'), (b'100'); +insert ignore into t1 values (b'00'), (b'01'), (b'10'), (b'100'); Warnings: Warning 1264 Out of range value for column 'a' at row 4 select a+0 from t1; diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result index dae9094f463..b2fe974acdb 100644 --- a/mysql-test/r/type_blob.result +++ b/mysql-test/r/type_blob.result @@ -7,10 +7,12 @@ b text YES NULL c tinyblob YES NULL d mediumtext YES NULL e longtext YES NULL +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 (a char(255), b varbinary(70000), c varchar(70000000)); Warnings: Note 1246 Converting column 'b' from VARBINARY to BLOB Note 1246 Converting column 'c' from VARCHAR to TEXT +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t4 (c varchar(65530) character set utf8 not null); Warnings: Note 1246 Converting column 'c' from VARCHAR to TEXT @@ -36,6 +38,7 @@ CREATE TABLE t1 (a char(257) default "hello"); ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT instead CREATE TABLE t2 (a char(256)); ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT instead +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (a varchar(70000) default "hello"); Warnings: Note 1246 Converting column 'a' from VARCHAR to TEXT diff --git a/mysql-test/r/type_date.result b/mysql-test/r/type_date.result index b28cf54f53a..4b0e4a61c64 100644 --- a/mysql-test/r/type_date.result +++ b/mysql-test/r/type_date.result @@ -106,7 +106,7 @@ f2 19781126 DROP TABLE t1, t2, t3; CREATE TABLE t1 (y YEAR); -INSERT INTO t1 VALUES ('abc'); +INSERT IGNORE INTO t1 VALUES ('abc'); Warnings: Warning 1366 Incorrect integer value: 'abc' for column 'y' at row 1 SELECT * FROM t1; @@ -143,7 +143,7 @@ Warning 1292 Incorrect datetime value: '1311' Warning 1292 Incorrect datetime value: '1311' Warning 1292 Incorrect datetime value: '1311' create table t1 (d date , dt datetime , ts timestamp); -insert into t1 values (9912101,9912101,9912101); +insert ignore into t1 values (9912101,9912101,9912101); Warnings: Warning 1265 Data truncated for column 'd' at row 1 Warning 1265 Data truncated for column 'dt' at row 1 @@ -300,7 +300,7 @@ b = CONVERT((SELECT CONVERT(a, DATE) FROM t1 GROUP BY a), DATE) DROP TABLE t1; End of 5.1 tests create table t1 (f1 date, key (f1)); -insert t1 values ('2010-10-10 15:foobar'); +insert ignore t1 values ('2010-10-10 15:foobar'); Warnings: Warning 1265 Data truncated for column 'f1' at row 1 drop table t1; diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result index 8588ad185ed..c9b3358cca4 100644 --- a/mysql-test/r/type_datetime.result +++ b/mysql-test/r/type_datetime.result @@ -50,7 +50,7 @@ t 2001-01-01 01:01:01 2001-01-01 01:01:01 truncate table t1; -insert into t1 values("2003-0303 12:13:14"); +insert ignore into t1 values("2003-0303 12:13:14"); Warnings: Warning 1265 Data truncated for column 't' at row 1 select * from t1; @@ -112,7 +112,7 @@ select * from t1 where a is null or b is null; a b drop table t1; create table t1 (t datetime); -insert into t1 values (20030102030460),(20030102036301),(20030102240401), +insert ignore into t1 values (20030102030460),(20030102036301),(20030102240401), (20030132030401),(20031302030401),(100001202030401); Warnings: Warning 1265 Data truncated for column 't' at row 1 @@ -130,7 +130,7 @@ t 0000-00-00 00:00:00 0000-00-00 00:00:00 delete from t1; -insert into t1 values +insert ignore into t1 values ("2003-01-02 03:04:60"),("2003-01-02 03:63:01"),("2003-01-02 24:04:01"), ("2003-01-32 03:04:01"),("2003-13-02 03:04:01"), ("10000-12-02 03:04:00"); Warnings: @@ -149,7 +149,7 @@ t 0000-00-00 00:00:00 0000-00-00 00:00:00 delete from t1; -insert into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer"); +insert ignore into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer"); Warnings: Warning 1265 Data truncated for column 't' at row 1 Warning 1265 Data truncated for column 't' at row 2 diff --git a/mysql-test/r/type_datetime_hires.result b/mysql-test/r/type_datetime_hires.result index 5f10cdb3f39..e2c2f83a96c 100644 --- a/mysql-test/r/type_datetime_hires.result +++ b/mysql-test/r/type_datetime_hires.result @@ -7,7 +7,7 @@ insert t1 values ('2010-12-11 00:20:03.1234'); insert t1 values ('2010-12-11 15:47:11.1234'); insert t1 values (20101211010203.45678); insert t1 values (20101211030405.789e0); -insert t1 values (99991231235959e1); +insert ignore t1 values (99991231235959e1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; @@ -95,7 +95,7 @@ a select a, a + interval 2 year from t1; a a + interval 2 year 2010-12-11 01:02:13.3332 2012-12-11 01:02:13.3332 -insert t1 select a + interval 2 year from t1; +insert ignore t1 select a + interval 2 year from t1; select * from t1; a 2010-12-11 01:02:13.3332 diff --git a/mysql-test/r/type_decimal.result b/mysql-test/r/type_decimal.result index 0f72a244fd2..0ead4ec9aa2 100644 --- a/mysql-test/r/type_decimal.result +++ b/mysql-test/r/type_decimal.result @@ -155,31 +155,31 @@ create table t1 (a decimal(10,2)); insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0"); insert into t1 values ("-.1"),("+.1"),(".1"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); -insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); +insert ignore into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 -insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); +insert ignore into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); +insert ignore into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Note 1265 Data truncated for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("1e+4294967296"),("1e-4294967296"); +insert ignore into t1 values ("1e+4294967296"),("1e-4294967296"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Note 1265 Data truncated for column 'a' at row 2 -insert into t1 values ("1e+18446744073709551615"),("1e+18446744073709551616"),("1e-9223372036854775807"),("1e-9223372036854775809"); +insert ignore into t1 values ("1e+18446744073709551615"),("1e+18446744073709551616"),("1e-9223372036854775807"),("1e-9223372036854775809"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1366 Incorrect decimal value: '1e+18446744073709551616' for column 'a' at row 2 Note 1265 Data truncated for column 'a' at row 3 Warning 1366 Incorrect decimal value: '1e-9223372036854775809' for column 'a' at row 4 -insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); +insert ignore into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); Warnings: Warning 1265 Data truncated for column 'a' at row 1 Note 1265 Data truncated for column 'a' at row 3 @@ -222,28 +222,28 @@ create table t1 (a decimal(10,2) unsigned); insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0"); Warnings: Warning 1264 Out of range value for column 'a' at row 6 -insert into t1 values ("-.1"),("+.1"),(".1"); +insert ignore into t1 values ("-.1"),("+.1"),(".1"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); Warnings: Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); +insert ignore into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); +insert ignore into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); +insert ignore into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Note 1265 Data truncated for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); +insert ignore into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); Warnings: Warning 1265 Data truncated for column 'a' at row 1 Note 1265 Data truncated for column 'a' at row 3 @@ -280,28 +280,28 @@ create table t1 (a decimal(10,2) zerofill); insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0"); Warnings: Warning 1264 Out of range value for column 'a' at row 6 -insert into t1 values ("-.1"),("+.1"),(".1"); +insert ignore into t1 values ("-.1"),("+.1"),(".1"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); Warnings: Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); +insert ignore into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); +insert ignore into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); +insert ignore into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Note 1265 Data truncated for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); +insert ignore into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); Warnings: Warning 1265 Data truncated for column 'a' at row 1 Note 1265 Data truncated for column 'a' at row 3 @@ -338,16 +338,16 @@ create table t1 (a decimal(10,2)); insert into t1 values (0.0),("-0.0"),(+0.0),(01.0),(+01.0),(-01.0); insert into t1 values (-.1),(+.1),(.1); insert into t1 values (00000000000001),(+0000000000001),(-0000000000001); -insert into t1 values (+111111111.11),(111111111.11),(-11111111.11); +insert ignore into t1 values (+111111111.11),(111111111.11),(-11111111.11); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 -insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11); +insert ignore into t1 values (-111111111.11),(+1111111111.11),(1111111111.11); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 -insert into t1 values (1e+100),(1e-100),(-1e+100); +insert ignore into t1 values (1e+100),(1e-100),(-1e+100); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Note 1265 Data truncated for column 'a' at row 2 @@ -392,7 +392,7 @@ a 98760.00 drop table t1; create table t1 (a decimal); -insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999); +insert ignore into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 6 @@ -408,7 +408,7 @@ a 9999999999 drop table t1; create table t1 (a decimal unsigned); -insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); +insert ignore into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 @@ -424,7 +424,7 @@ a 9999999999 drop table t1; create table t1 (a decimal zerofill); -insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); +insert ignore into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 @@ -440,7 +440,7 @@ a 9999999999 drop table t1; create table t1 (a decimal unsigned zerofill); -insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); +insert ignore into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 @@ -456,14 +456,14 @@ a 9999999999 drop table t1; create table t1(a decimal(10,0)); -insert into t1 values ("1e4294967295"); +insert ignore into t1 values ("1e4294967295"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; a 9999999999 delete from t1; -insert into t1 values("1e4294967297"); +insert ignore into t1 values("1e4294967297"); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; diff --git a/mysql-test/r/type_enum.result b/mysql-test/r/type_enum.result index db03e61fcdd..6ad75339847 100644 --- a/mysql-test/r/type_enum.result +++ b/mysql-test/r/type_enum.result @@ -1637,13 +1637,13 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 (a enum ('0','1')); -insert into t1 set a='foobar'; +insert ignore into t1 set a='foobar'; Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a -update t1 set a = replace(a,'x','y'); +update ignore t1 set a = replace(a,'x','y'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; @@ -1782,7 +1782,7 @@ CREATE TABLE t1 ( id INT AUTO_INCREMENT PRIMARY KEY, c1 ENUM('a', '', 'b') ); -INSERT INTO t1 (c1) VALUES (0), ('a'), (''), ('b'); +INSERT IGNORE INTO t1 (c1) VALUES (0), ('a'), (''), ('b'); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 SELECT id, c1 + 0, c1 FROM t1; @@ -1791,6 +1791,7 @@ id c1 + 0 c1 2 1 a 3 2 4 3 b +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CHANGE c1 c1 ENUM('a', '') NOT NULL; Warnings: Warning 1265 Data truncated for column 'c1' at row 4 @@ -1812,7 +1813,7 @@ drop table t1; CREATE TABLE t1 (c1 ENUM('a', '', 'b')); INSERT INTO t1 (c1) VALUES ('b'); INSERT INTO t1 (c1) VALUES (''); -INSERT INTO t1 (c1) VALUES (0); +INSERT IGNORE INTO t1 (c1) VALUES (0); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 INSERT INTO t1 (c1) VALUES (''); @@ -2140,7 +2141,7 @@ DROP TABLE t1; CREATE TABLE t1 (a ENUM('9e200','9e100')); CREATE TABLE t2 (a DOUBLE); INSERT INTO t2 VALUES ('9e100'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; @@ -2149,6 +2150,7 @@ a DROP TABLE t1,t2; CREATE TABLE t1 (a DOUBLE); INSERT INTO t1 VALUES (9e100); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a ENUM('9e200','9e100'); Warnings: Warning 1916 Got overflow when converting '9e100' to INT. Value truncated @@ -2160,7 +2162,7 @@ DROP TABLE t1; CREATE TABLE t1 (a ENUM('200','100')); CREATE TABLE t2 (a DOUBLE); INSERT INTO t2 VALUES ('100'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; @@ -2170,7 +2172,7 @@ DROP TABLE t1,t2; CREATE TABLE t1 (a ENUM('200','100')); CREATE TABLE t2 (a INT); INSERT INTO t2 VALUES ('100'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; @@ -2179,6 +2181,7 @@ a DROP TABLE t1,t2; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES ('200'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a ENUM('200','100'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 @@ -2189,7 +2192,7 @@ DROP TABLE t1; CREATE TABLE t1 (a ENUM('200','100')); CREATE TABLE t2 (a INT); INSERT INTO t2 VALUES ('100'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; @@ -2199,7 +2202,7 @@ DROP TABLE t1,t2; CREATE TABLE t1 (a ENUM('2001','2002')); CREATE TABLE t2 (a YEAR); INSERT INTO t2 VALUES ('2001'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; @@ -2208,6 +2211,7 @@ a DROP TABLE t1,t2; CREATE TABLE t1 (a YEAR); INSERT INTO t1 VALUES ('2001'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a ENUM('2001','2002'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 diff --git a/mysql-test/r/type_float.result b/mysql-test/r/type_float.result index 58dba89745d..43aed60749e 100644 --- a/mysql-test/r/type_float.result +++ b/mysql-test/r/type_float.result @@ -135,10 +135,10 @@ drop table t1; create table t1 (a float(200,100), b double(200,100)); ERROR 42000: Too big scale 100 specified for 'a'. Maximum is 30 create table t1 (c20 char); -insert into t1 values (5000.0); +insert ignore into t1 values (5000.0); Warnings: Warning 1265 Data truncated for column 'c20' at row 1 -insert into t1 values (0.5e4); +insert ignore into t1 values (0.5e4); Warnings: Warning 1265 Data truncated for column 'c20' at row 1 drop table t1; @@ -147,7 +147,7 @@ ERROR 42000: Incorrect column specifier for column 'f' drop table if exists t1; create table t1 (d1 double, d2 double unsigned); insert into t1 set d1 = -1.0; -update t1 set d2 = d1; +update ignore t1 set d2 = d1; Warnings: Warning 1264 Out of range value for column 'd2' at row 1 select * from t1; @@ -155,7 +155,7 @@ d1 d2 -1 0 drop table t1; create table t1 (f float(4,3)); -insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +insert ignore into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); Warnings: Warning 1264 Out of range value for column 'f' at row 1 Warning 1264 Out of range value for column 'f' at row 2 @@ -173,7 +173,7 @@ f 9.999 drop table if exists t1; create table t1 (f double(4,3)); -insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +insert ignore into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); Warnings: Warning 1264 Out of range value for column 'f' at row 1 Warning 1264 Out of range value for column 'f' at row 2 @@ -363,7 +363,7 @@ DROP TABLE t1; create table t1 (f1 double(200, 0)); insert into t1 values (1e199), (-1e199); insert into t1 values (1e200), (-1e200); -insert into t1 values (2e200), (-2e200); +insert ignore into t1 values (2e200), (-2e200); Warnings: Warning 1264 Out of range value for column 'f1' at row 1 Warning 1264 Out of range value for column 'f1' at row 2 @@ -379,7 +379,7 @@ drop table t1; create table t1 (f1 float(30, 0)); insert into t1 values (1e29), (-1e29); insert into t1 values (1e30), (-1e30); -insert into t1 values (2e30), (-2e30); +insert ignore into t1 values (2e30), (-2e30); Warnings: Warning 1264 Out of range value for column 'f1' at row 1 Warning 1264 Out of range value for column 'f1' at row 2 @@ -453,10 +453,10 @@ foo # CREATE TABLE t1 (f FLOAT); INSERT INTO t1 VALUES ('1.'); -INSERT INTO t1 VALUES ('2.0.'); +INSERT IGNORE INTO t1 VALUES ('2.0.'); Warnings: Warning 1265 Data truncated for column 'f' at row 1 -INSERT INTO t1 VALUES ('.'); +INSERT IGNORE INTO t1 VALUES ('.'); Warnings: Warning 1366 Incorrect double value: '.' for column 'f' at row 1 SELECT * FROM t1 ORDER BY f; @@ -645,10 +645,10 @@ DROP TABLE t1; # MDEV-4102 Limitation on DOUBLE or REAL length is ignored with INSERT .. SELECT # CREATE TABLE t1 (d1 DOUBLE(5,2), d2 DOUBLE(10,2)); -INSERT INTO t1 VALUES (10000000.55, 10000000.55); +INSERT IGNORE INTO t1 VALUES (10000000.55, 10000000.55); Warnings: Warning 1264 Out of range value for column 'd1' at row 1 -INSERT INTO t1 SELECT d2, d2 FROM t1; +INSERT IGNORE INTO t1 SELECT d2, d2 FROM t1; Warnings: Warning 1264 Out of range value for column 'd1' at row 1 SELECT * FROM t1; @@ -664,7 +664,7 @@ f FLOAT, d10_10 DOUBLE PRECISION (10,10), d53_10 DOUBLE(53,10) ); -INSERT INTO t1 (f,d10_10,d53_10) VALUES ( +INSERT IGNORE INTO t1 (f,d10_10,d53_10) VALUES ( -9999999999999999999999999999999999999999999.9999999999, -9999999999999999999999999999999999999999999.9999999999, -9999999999999999999999999999999999999999999.9999999999 @@ -676,7 +676,7 @@ SELECT * FROM t1; f -3.40282e38 d10_10 -0.9999999999 d53_10 -10000000000000000000000000000000000000000000.0000000000 -INSERT INTO t1 (f,d10_10,d53_10) SELECT d53_10, d53_10, d53_10 FROM t1; +INSERT IGNORE INTO t1 (f,d10_10,d53_10) SELECT d53_10, d53_10, d53_10 FROM t1; Warnings: Level Warning Code 1264 @@ -705,7 +705,7 @@ DROP TABLE t1; CREATE TABLE t1 (d10_10 DOUBLE (10,10)); CREATE TABLE t2 (d53_10 DOUBLE (53,10)); INSERT INTO t2 VALUES (-9999999999999999999999999999999999999999999.9999999999); -INSERT INTO t1 (d10_10) SELECT d53_10 FROM t2; +INSERT IGNORE INTO t1 (d10_10) SELECT d53_10 FROM t2; Warnings: Warning 1264 Out of range value for column 'd10_10' at row 1 SELECT * FROM t1; @@ -715,7 +715,7 @@ DROP TABLE t1,t2; CREATE TABLE t1 (d2_2 FLOAT (2,2)); CREATE TABLE t2 (d4_2 FLOAT (4,2)); INSERT INTO t2 VALUES (99.99); -INSERT INTO t1 (d2_2) SELECT d4_2 FROM t2; +INSERT IGNORE INTO t1 (d2_2) SELECT d4_2 FROM t2; Warnings: Warning 1264 Out of range value for column 'd2_2' at row 1 SELECT * FROM t1; diff --git a/mysql-test/r/type_newdecimal.result b/mysql-test/r/type_newdecimal.result index bc45d6d2789..313894b4b77 100644 --- a/mysql-test/r/type_newdecimal.result +++ b/mysql-test/r/type_newdecimal.result @@ -77,13 +77,13 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 (a decimal(4,2)); -insert into t1 value (10000), (1.1e10), ("11111"), (100000.1); +insert ignore into t1 value (10000), (1.1e10), ("11111"), (100000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 Warning 1264 Out of range value for column 'a' at row 4 -insert into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1); +insert ignore into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 @@ -101,13 +101,13 @@ a -99.99 drop table t1; create table t1 (a decimal(4,2) unsigned); -insert into t1 value (10000), (1.1e10), ("11111"), (100000.1); +insert ignore into t1 value (10000), (1.1e10), ("11111"), (100000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 Warning 1264 Out of range value for column 'a' at row 3 Warning 1264 Out of range value for column 'a' at row 4 -insert into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1); +insert ignore into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 2 @@ -125,13 +125,13 @@ a 0.00 drop table t1; create table t1 (a bigint); -insert into t1 values (18446744073709551615.0); +insert ignore into t1 values (18446744073709551615.0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -insert into t1 values (9223372036854775808.0); +insert ignore into t1 values (9223372036854775808.0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -insert into t1 values (-18446744073709551615.0); +insert ignore into t1 values (-18446744073709551615.0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -143,10 +143,10 @@ drop table t1; create table t1 (a bigint unsigned); insert into t1 values (18446744073709551615.0); insert into t1 values (9223372036854775808.0); -insert into t1 values (9999999999999999999999999.000); +insert ignore into t1 values (9999999999999999999999999.000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 -insert into t1 values (-1.0); +insert ignore into t1 values (-1.0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -157,11 +157,11 @@ a 0 drop table t1; create table t1 (a tinyint); -insert into t1 values (18446744073709551615.0); +insert ignore into t1 values (18446744073709551615.0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 1 -insert into t1 values (9223372036854775808.0); +insert ignore into t1 values (9223372036854775808.0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'a' at row 1 diff --git a/mysql-test/r/type_num.result b/mysql-test/r/type_num.result index 9ee67ac8f33..9573852ce72 100644 --- a/mysql-test/r/type_num.result +++ b/mysql-test/r/type_num.result @@ -423,7 +423,7 @@ Note 1265 Data truncated for column 'i2' at row 1 Note 1265 Data truncated for column 'i4' at row 1 Note 1265 Data truncated for column 'i8' at row 1 Note 1265 Data truncated for column 'd' at row 1 -INSERT INTO t1 VALUES ('','','','','','',''); +INSERT IGNORE INTO t1 VALUES ('','','','','','',''); Warnings: Warning 1366 Incorrect double value: '' for column 'f4' at row 1 Warning 1366 Incorrect double value: '' for column 'f8' at row 1 @@ -432,7 +432,7 @@ Warning 1366 Incorrect integer value: '' for column 'i2' at row 1 Warning 1366 Incorrect integer value: '' for column 'i4' at row 1 Warning 1366 Incorrect integer value: '' for column 'i8' at row 1 Warning 1366 Incorrect decimal value: '' for column 'd' at row 1 -INSERT INTO t1 VALUES ('x','x','x','x','x','x','x'); +INSERT IGNORE INTO t1 VALUES ('x','x','x','x','x','x','x'); Warnings: Warning 1366 Incorrect double value: 'x' for column 'f4' at row 1 Warning 1366 Incorrect double value: 'x' for column 'f8' at row 1 @@ -441,7 +441,7 @@ Warning 1366 Incorrect integer value: 'x' for column 'i2' at row 1 Warning 1366 Incorrect integer value: 'x' for column 'i4' at row 1 Warning 1366 Incorrect integer value: 'x' for column 'i8' at row 1 Warning 1366 Incorrect decimal value: 'x' for column 'd' at row 1 -INSERT INTO t1 VALUES (' x',' x',' x',' x',' x',' x',' x'); +INSERT IGNORE INTO t1 VALUES (' x',' x',' x',' x',' x',' x',' x'); Warnings: Warning 1366 Incorrect double value: ' x' for column 'f4' at row 1 Warning 1366 Incorrect double value: ' x' for column 'f8' at row 1 @@ -450,7 +450,7 @@ Warning 1366 Incorrect integer value: ' x' for column 'i2' at row 1 Warning 1366 Incorrect integer value: ' x' for column 'i4' at row 1 Warning 1366 Incorrect integer value: ' x' for column 'i8' at row 1 Warning 1366 Incorrect decimal value: ' x' for column 'd' at row 1 -INSERT INTO t1 VALUES ('.','.','.','.','.','.','.'); +INSERT IGNORE INTO t1 VALUES ('.','.','.','.','.','.','.'); Warnings: Warning 1366 Incorrect double value: '.' for column 'f4' at row 1 Warning 1366 Incorrect double value: '.' for column 'f8' at row 1 @@ -459,7 +459,7 @@ Warning 1366 Incorrect integer value: '.' for column 'i2' at row 1 Warning 1366 Incorrect integer value: '.' for column 'i4' at row 1 Warning 1366 Incorrect integer value: '.' for column 'i8' at row 1 Warning 1366 Incorrect decimal value: '.' for column 'd' at row 1 -INSERT INTO t1 VALUES ('-','-','-','-','-','-','-'); +INSERT IGNORE INTO t1 VALUES ('-','-','-','-','-','-','-'); Warnings: Warning 1366 Incorrect double value: '-' for column 'f4' at row 1 Warning 1366 Incorrect double value: '-' for column 'f8' at row 1 @@ -468,7 +468,7 @@ Warning 1366 Incorrect integer value: '-' for column 'i2' at row 1 Warning 1366 Incorrect integer value: '-' for column 'i4' at row 1 Warning 1366 Incorrect integer value: '-' for column 'i8' at row 1 Warning 1366 Incorrect decimal value: '-' for column 'd' at row 1 -INSERT INTO t1 VALUES ('+','+','+','+','+','+','+'); +INSERT IGNORE INTO t1 VALUES ('+','+','+','+','+','+','+'); Warnings: Warning 1366 Incorrect double value: '+' for column 'f4' at row 1 Warning 1366 Incorrect double value: '+' for column 'f8' at row 1 @@ -477,7 +477,7 @@ Warning 1366 Incorrect integer value: '+' for column 'i2' at row 1 Warning 1366 Incorrect integer value: '+' for column 'i4' at row 1 Warning 1366 Incorrect integer value: '+' for column 'i8' at row 1 Warning 1366 Incorrect decimal value: '+' for column 'd' at row 1 -INSERT INTO t1 VALUES ('1x','1x','1x','1x','1x','1x','1x'); +INSERT IGNORE INTO t1 VALUES ('1x','1x','1x','1x','1x','1x','1x'); Warnings: Warning 1265 Data truncated for column 'f4' at row 1 Warning 1265 Data truncated for column 'f8' at row 1 @@ -486,7 +486,7 @@ Warning 1265 Data truncated for column 'i2' at row 1 Warning 1265 Data truncated for column 'i4' at row 1 Warning 1265 Data truncated for column 'i8' at row 1 Warning 1265 Data truncated for column 'd' at row 1 -INSERT INTO t1 VALUES ('1e','1e','1e','1e','1e','1e','1e'); +INSERT IGNORE INTO t1 VALUES ('1e','1e','1e','1e','1e','1e','1e'); Warnings: Warning 1265 Data truncated for column 'f4' at row 1 Warning 1265 Data truncated for column 'f8' at row 1 @@ -495,7 +495,7 @@ Warning 1265 Data truncated for column 'i2' at row 1 Warning 1265 Data truncated for column 'i4' at row 1 Warning 1265 Data truncated for column 'i8' at row 1 Warning 1265 Data truncated for column 'd' at row 1 -INSERT INTO t1 VALUES ('1e-','1e-','1e-','1e-','1e-','1e-','1e-'); +INSERT IGNORE INTO t1 VALUES ('1e-','1e-','1e-','1e-','1e-','1e-','1e-'); Warnings: Warning 1265 Data truncated for column 'f4' at row 1 Warning 1265 Data truncated for column 'f8' at row 1 @@ -504,7 +504,7 @@ Warning 1265 Data truncated for column 'i2' at row 1 Warning 1265 Data truncated for column 'i4' at row 1 Warning 1265 Data truncated for column 'i8' at row 1 Warning 1265 Data truncated for column 'd' at row 1 -INSERT INTO t1 VALUES ('1E+','1E+','1E+','1E+','1E+','1E+','1E+'); +INSERT IGNORE INTO t1 VALUES ('1E+','1E+','1E+','1E+','1E+','1E+','1E+'); Warnings: Warning 1265 Data truncated for column 'f4' at row 1 Warning 1265 Data truncated for column 'f8' at row 1 @@ -513,7 +513,7 @@ Warning 1265 Data truncated for column 'i2' at row 1 Warning 1265 Data truncated for column 'i4' at row 1 Warning 1265 Data truncated for column 'i8' at row 1 Warning 1265 Data truncated for column 'd' at row 1 -INSERT INTO t1 VALUES ('1e1000','1e1000','1e1000','1e1000','1e1000','1e1000','1e1000'); +INSERT IGNORE INTO t1 VALUES ('1e1000','1e1000','1e1000','1e1000','1e1000','1e1000','1e1000'); Warnings: Warning 1264 Out of range value for column 'f4' at row 1 Warning 1264 Out of range value for column 'f4' at row 1 diff --git a/mysql-test/r/type_ranges.result b/mysql-test/r/type_ranges.result index a1416b13e1c..fe7392c758f 100644 --- a/mysql-test/r/type_ranges.result +++ b/mysql-test/r/type_ranges.result @@ -90,10 +90,10 @@ Note 1831 Duplicate index `test3`. This is deprecated and will be disallowed in DROP INDEX test ON t1; insert into t1 values (10, 1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one'); insert into t1 values (NULL,2,2,2,2,2,2,2,2,2,2,2,2,2,NULL,NULL,NULL,NULL,NULL,NULL,2,2,'two','two,one'); -insert into t1 values (0,1/3,3,3,3,3,3,3,3,3,3,3,3,3,NULL,'19970303','10:10:10','19970303101010','','','','3',3,3); +insert ignore into t1 values (0,1/3,3,3,3,3,3,3,3,3,3,3,3,3,NULL,'19970303','10:10:10','19970303101010','','','','3',3,3); Warnings: Warning 1265 Data truncated for column 'string' at row 1 -insert into t1 values (0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,NULL,19970807,080706,19970403090807,-1,-1,-1,'-1',-1,-1); +insert ignore into t1 values (0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,NULL,19970807,080706,19970403090807,-1,-1,-1,'-1',-1,-1); Warnings: Warning 1264 Out of range value for column 'utiny' at row 1 Warning 1264 Out of range value for column 'ushort' at row 1 @@ -102,7 +102,7 @@ Warning 1264 Out of range value for column 'ulong' at row 1 Warning 1264 Out of range value for column 'ulonglong' at row 1 Warning 1265 Data truncated for column 'options' at row 1 Warning 1265 Data truncated for column 'flags' at row 1 -insert into t1 values (0,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,NULL,0,0,0,-4294967295,-4294967295,-4294967295,'-4294967295',0,"one,two,tree"); +insert ignore into t1 values (0,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,NULL,0,0,0,-4294967295,-4294967295,-4294967295,'-4294967295',0,"one,two,tree"); Warnings: Warning 1265 Data truncated for column 'string' at row 1 Warning 1264 Out of range value for column 'tiny' at row 1 @@ -115,7 +115,7 @@ Warning 1264 Out of range value for column 'umedium' at row 1 Warning 1264 Out of range value for column 'ulong' at row 1 Warning 1264 Out of range value for column 'ulonglong' at row 1 Warning 1265 Data truncated for column 'options' at row 1 -insert into t1 values (0,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,NULL,0,0,0,4294967295,4294967295,4294967295,'4294967295',0,0); +insert ignore into t1 values (0,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,NULL,0,0,0,4294967295,4294967295,4294967295,'4294967295',0,0); Warnings: Warning 1264 Out of range value for column 'tiny' at row 1 Warning 1264 Out of range value for column 'short' at row 1 @@ -171,7 +171,7 @@ mediumblob_col mediumblob not null, new_field char(2), PRIMARY KEY (auto) ); -INSERT INTO t2 (string,mediumblob_col,new_field) SELECT string,mediumblob_col,new_field from t1 where auto > 10; +INSERT IGNORE INTO t2 (string,mediumblob_col,new_field) SELECT string,mediumblob_col,new_field from t1 where auto > 10; Warnings: Warning 1265 Data truncated for column 'new_field' at row 2 Warning 1265 Data truncated for column 'new_field' at row 3 @@ -275,12 +275,12 @@ Field Type Collation Null Key Default Extra Privileges Comment auto int(11) unsigned NULL NO PRI NULL # t1 int(1) NULL NO NULL # t2 varchar(1) latin1_swedish_ci NO NULL # -t3 varchar(256) latin1_swedish_ci NO NULL # -t4 varbinary(256) NULL NO NULL # -t5 text latin1_swedish_ci NO NULL # -t6 blob NULL NO NULL # +t3 varchar(256) latin1_swedish_ci YES NULL # +t4 varbinary(256) NULL YES NULL # +t5 text latin1_swedish_ci YES NULL # +t6 blob NULL YES NULL # t7 char(0) latin1_swedish_ci NO NULL # -t8 binary(0) NULL NO NULL # +t8 binary(0) NULL YES NULL # select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2; t1 t2 length(t3) length(t4) length(t5) length(t6) t7 t8 1 a 256 256 4096 4096 diff --git a/mysql-test/r/type_set.result b/mysql-test/r/type_set.result index 9d3a6e3bcb4..742ee5a33e9 100644 --- a/mysql-test/r/type_set.result +++ b/mysql-test/r/type_set.result @@ -72,6 +72,7 @@ set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17', '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','128')); ERROR HY000: Too many strings for column f1 and SET +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1(f1 set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17', '18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33', diff --git a/mysql-test/r/type_temporal_innodb.result b/mysql-test/r/type_temporal_innodb.result index 425e499a5d3..ce2b3a4e53f 100644 --- a/mysql-test/r/type_temporal_innodb.result +++ b/mysql-test/r/type_temporal_innodb.result @@ -7,7 +7,7 @@ TIME'00:00:00'='' Warnings: Warning 1292 Truncated incorrect time value: '' CREATE TABLE t1 (a ENUM('a'), b TIME, c INT, KEY(b)) ENGINE=InnoDB; -INSERT INTO t1 VALUES ('','00:00:00',0); +INSERT IGNORE INTO t1 VALUES ('','00:00:00',0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1 WHERE b=''; @@ -58,7 +58,7 @@ DATE'0000-00-00'='' Warnings: Warning 1292 Incorrect datetime value: '' CREATE TABLE t1 (a ENUM('a'), b DATE, c INT, KEY(b)) ENGINE=InnoDB; -INSERT INTO t1 VALUES ('','0000-00-00',0); +INSERT IGNORE INTO t1 VALUES ('','0000-00-00',0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1 WHERE b=''; @@ -109,7 +109,7 @@ TIMESTAMP'0000-00-00 00:00:00'='' Warnings: Warning 1292 Incorrect datetime value: '' CREATE TABLE t1 (a ENUM('a'), b DATETIME, c INT, KEY(b)) ENGINE=InnoDB; -INSERT INTO t1 VALUES ('','0000-00-00 00:00:00',0); +INSERT IGNORE INTO t1 VALUES ('','0000-00-00 00:00:00',0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1 WHERE b=''; diff --git a/mysql-test/r/type_time.result b/mysql-test/r/type_time.result index ce1cb424a6c..a827fb19943 100644 --- a/mysql-test/r/type_time.result +++ b/mysql-test/r/type_time.result @@ -25,7 +25,7 @@ t 12:30:00 12:30:35 36:30:31 -insert into t1 values("10.22.22"),(1234567),(123456789),(123456789.10),("10 22:22"),("12.45a"); +insert ignore into t1 values("10.22.22"),(1234567),(123456789),(123456789.10),("10 22:22"),("12.45a"); Warnings: Warning 1265 Data truncated for column 't' at row 1 Warning 1265 Data truncated for column 't' at row 2 @@ -322,7 +322,7 @@ CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); ERROR 22007: Incorrect time value: '18446744069414584320' for column 'a' at row 1 SET sql_mode=DEFAULT; -INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); +INSERT IGNORE INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; @@ -1230,6 +1230,7 @@ INSERT INTO t1 (a,b,c) SELECT a,a,a FROM t2; Warnings: Warning 1265 Data truncated for column 'b' at row 2 Warning 1265 Data truncated for column 'b' at row 6 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY c TIME; Warnings: Warning 1265 Data truncated for column 'c' at row 2 diff --git a/mysql-test/r/type_time_hires.result b/mysql-test/r/type_time_hires.result index b9f51e6a9b2..a9345a7e83f 100644 --- a/mysql-test/r/type_time_hires.result +++ b/mysql-test/r/type_time_hires.result @@ -15,7 +15,7 @@ Note 1265 Data truncated for column 'a' at row 1 insert t1 values (20101211030405.789e0); Warnings: Note 1265 Data truncated for column 'a' at row 1 -insert t1 values (99991231235959e1); +insert ignore t1 values (99991231235959e1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from t1; @@ -105,7 +105,7 @@ a a + interval 2 year 01:02:13.3332 NULL Warnings: Warning 1441 Datetime function: time field overflow -insert t1 select a + interval 2 year from t1; +insert ignore t1 select a + interval 2 year from t1; Warnings: Warning 1441 Datetime function: time field overflow select * from t1; diff --git a/mysql-test/r/type_timestamp.result b/mysql-test/r/type_timestamp.result index 93180218fe4..20523dc1791 100644 --- a/mysql-test/r/type_timestamp.result +++ b/mysql-test/r/type_timestamp.result @@ -138,7 +138,7 @@ ix+0 0 0 truncate table t1; -insert into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer"); +insert ignore into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer"); Warnings: Warning 1265 Data truncated for column 'ix' at row 1 Warning 1265 Data truncated for column 'ix' at row 2 diff --git a/mysql-test/r/type_timestamp_hires.result b/mysql-test/r/type_timestamp_hires.result index fc1bd83e04f..7179277aa9a 100644 --- a/mysql-test/r/type_timestamp_hires.result +++ b/mysql-test/r/type_timestamp_hires.result @@ -7,7 +7,7 @@ insert t1 values ('2010-12-11 00:20:03.1234'); insert t1 values ('2010-12-11 15:47:11.1234'); insert t1 values (20101211010203.45678); insert t1 values (20101211030405.789e0); -insert t1 values (99991231235959e1); +insert ignore t1 values (99991231235959e1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; @@ -95,7 +95,7 @@ a select a, a + interval 2 year from t1; a a + interval 2 year 2010-12-11 01:02:13.3332 2012-12-11 01:02:13.3332 -insert t1 select a + interval 2 year from t1; +insert ignore t1 select a + interval 2 year from t1; select * from t1; a 2010-12-11 01:02:13.3332 diff --git a/mysql-test/r/type_uint.result b/mysql-test/r/type_uint.result index c970f2ff896..ef7a7ed98ca 100644 --- a/mysql-test/r/type_uint.result +++ b/mysql-test/r/type_uint.result @@ -2,10 +2,10 @@ drop table if exists t1; SET SQL_WARNINGS=1; create table t1 (this int unsigned); insert into t1 values (1); -insert into t1 values (-1); +insert ignore into t1 values (-1); Warnings: Warning 1264 Out of range value for column 'this' at row 1 -insert into t1 values ('5000000000'); +insert ignore into t1 values ('5000000000'); Warnings: Warning 1264 Out of range value for column 'this' at row 1 select * from t1; diff --git a/mysql-test/r/type_year.result b/mysql-test/r/type_year.result index 93672abce44..8d58659769e 100644 --- a/mysql-test/r/type_year.result +++ b/mysql-test/r/type_year.result @@ -29,7 +29,7 @@ y y2 2069 69 drop table t1; create table t1 (y year); -insert into t1 values (now()); +insert ignore into t1 values (now()); Warnings: Warning 1265 Data truncated for column 'y' at row 1 select if(y = now(), 1, 0) from t1; @@ -316,7 +316,7 @@ DROP TABLE t2, t4; # Bug #49910: Behavioural change in SELECT/WHERE on YEAR(4) data type # CREATE TABLE t1 (y YEAR NOT NULL, s VARCHAR(4)); -INSERT INTO t1 (s) VALUES ('bad'); +INSERT IGNORE INTO t1 (s) VALUES ('bad'); Warnings: Warning 1364 Field 'y' doesn't have a default value INSERT INTO t1 (y, s) VALUES (0, 0), (2000, 2000), (2001, 2001); @@ -446,37 +446,39 @@ DROP TABLE t1; # MDEV-9392 Copying from DECIMAL to YEAR is not consistent about warnings # CREATE TABLE t1 (a YEAR); -INSERT INTO t1 VALUES (-0.1); +INSERT IGNORE INTO t1 VALUES (-0.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 DROP TABLE t1; CREATE TABLE t1 (a YEAR); CREATE TABLE t2 (a DECIMAL(10,1)); INSERT INTO t2 VALUES (-0.1); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; Warnings: Warning 1264 Out of range value for column 'a' at row 1 DROP TABLE t1,t2; CREATE TABLE t1 (a DECIMAL(10,1)); INSERT INTO t1 VALUES (-0.1); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a YEAR; Warnings: Warning 1264 Out of range value for column 'a' at row 1 DROP TABLE t1; CREATE TABLE t1 (a YEAR); -INSERT INTO t1 VALUES (-0.1e0); +INSERT IGNORE INTO t1 VALUES (-0.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 DROP TABLE t1; CREATE TABLE t1 (a YEAR); CREATE TABLE t2 (a DOUBLE); INSERT INTO t2 VALUES (-0.1); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; Warnings: Warning 1264 Out of range value for column 'a' at row 1 DROP TABLE t1,t2; CREATE TABLE t1 (a DOUBLE); INSERT INTO t1 VALUES (-0.1); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a YEAR; Warnings: Warning 1264 Out of range value for column 'a' at row 1 diff --git a/mysql-test/r/union.result b/mysql-test/r/union.result index c3be8d8379c..289058f1aab 100644 --- a/mysql-test/r/union.result +++ b/mysql-test/r/union.result @@ -1121,7 +1121,7 @@ create table t1 as show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `_latin1'test' collate latin1_bin` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '' + `_latin1'test' collate latin1_bin` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select count(*) from t1; count(*) @@ -1134,7 +1134,7 @@ create table t1 as show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `test` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '' + `test` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select count(*) from t1; count(*) @@ -1147,7 +1147,7 @@ create table t1 as show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `test` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '' + `test` varchar(4) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 select count(*) from t1; count(*) diff --git a/mysql-test/r/user_var-binlog.result b/mysql-test/r/user_var-binlog.result index 9f4762776a6..6066da2481a 100644 --- a/mysql-test/r/user_var-binlog.result +++ b/mysql-test/r/user_var-binlog.result @@ -30,7 +30,7 @@ use `test`/*!*/; SET TIMESTAMP=10000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index f7968015d48..39b4410b9eb 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -1315,6 +1315,7 @@ s1 3 drop view v1; drop table t1; +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1 (s1 tinyint); create trigger t1_bi before insert on t1 for each row set new.s1 = 500; create view v1 as select * from t1 where s1 <> 127 with check option; @@ -1327,6 +1328,7 @@ s1 drop trigger t1_bi; drop view v1; drop table t1; +SET sql_mode = default; create table t1 (s1 tinyint); create view v1 as select * from t1 where s1 <> 0; create view v2 as select * from v1 where s1 <> 1 with cascaded check option; @@ -2796,7 +2798,7 @@ DROP VIEW v1; DROP TABLE t1,t2; CREATE TABLE t1 (a INT NOT NULL, b INT NULL DEFAULT NULL); CREATE VIEW v1 AS SELECT a, b FROM t1; -INSERT INTO v1 (b) VALUES (2); +INSERT IGNORE INTO v1 (b) VALUES (2); Warnings: Warning 1423 Field of view 'test.v1' underlying table doesn't have a default value SET SQL_MODE = STRICT_ALL_TABLES; @@ -3643,7 +3645,7 @@ DROP TABLE t1; # create table t1(f1 int, f2 int not null); create view v1 as select f1 from t1; -insert into v1 values(1); +insert ignore into v1 values(1); Warnings: Warning 1423 Field of view 'test.v1' underlying table doesn't have a default value set @old_mode=@@sql_mode; diff --git a/mysql-test/r/warnings.result b/mysql-test/r/warnings.result index b4b345ca260..3f4f62dc935 100644 --- a/mysql-test/r/warnings.result +++ b/mysql-test/r/warnings.result @@ -29,18 +29,18 @@ show errors; Level Code Message Error 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1 insert into t1 values (1); -insert into t1 values ("hej"); +insert ignore into t1 values ("hej"); Warnings: Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1 -insert into t1 values ("hej"),("då"); +insert ignore into t1 values ("hej"),("då"); Warnings: Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1 Warning 1366 Incorrect integer value: 'då' for column 'a' at row 2 set SQL_WARNINGS=1; -insert into t1 values ("hej"); +insert ignore into t1 values ("hej"); Warnings: Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1 -insert into t1 values ("hej"),("då"); +insert ignore into t1 values ("hej"),("då"); Warnings: Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1 Warning 1366 Incorrect integer value: 'då' for column 'a' at row 2 @@ -73,7 +73,7 @@ create table t1(a tinyint, b int not null, c date, d char(5)); load data infile '../../std_data/warnings_loaddata.dat' into table t1 fields terminated by ','; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'b' at row 2 -Warning 1265 Data truncated for column 'd' at row 3 +Warning 1406 Data too long for column 'd' at row 3 Warning 1265 Data truncated for column 'c' at row 4 Warning 1261 Row 5 doesn't contain data for all columns Warning 1265 Data truncated for column 'b' at row 6 @@ -84,7 +84,7 @@ select @@warning_count; 7 drop table t1; create table t1(a tinyint NOT NULL, b tinyint unsigned, c char(5)); -insert into t1 values(NULL,100,'mysql'),(10,-1,'mysql ab'),(500,256,'open source'),(20,NULL,'test'); +insert ignore into t1 values(NULL,100,'mysql'),(10,-1,'mysql ab'),(500,256,'open source'),(20,NULL,'test'); Warnings: Warning 1048 Column 'a' cannot be null Warning 1264 Out of range value for column 'b' at row 2 @@ -92,37 +92,38 @@ Warning 1265 Data truncated for column 'c' at row 2 Warning 1264 Out of range value for column 'a' at row 3 Warning 1264 Out of range value for column 'b' at row 3 Warning 1265 Data truncated for column 'c' at row 3 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify c char(4); Warnings: Warning 1265 Data truncated for column 'c' at row 1 Warning 1265 Data truncated for column 'c' at row 2 alter table t1 add d char(2); -update t1 set a=NULL where a=10; +update ignore t1 set a=NULL where a=10; Warnings: Warning 1048 Column 'a' cannot be null -update t1 set c='mysql ab' where c='test'; +update ignore t1 set c='mysql ab' where c='test'; Warnings: Warning 1265 Data truncated for column 'c' at row 4 -update t1 set d=c; +update ignore t1 set d=c; Warnings: Warning 1265 Data truncated for column 'd' at row 1 Warning 1265 Data truncated for column 'd' at row 2 Warning 1265 Data truncated for column 'd' at row 3 Warning 1265 Data truncated for column 'd' at row 4 create table t2(a tinyint NOT NULL, b char(3)); -insert into t2 select b,c from t1; +insert ignore into t2 select b,c from t1; Warnings: Warning 1265 Data truncated for column 'b' at row 1 Warning 1265 Data truncated for column 'b' at row 2 Warning 1265 Data truncated for column 'b' at row 3 Warning 1048 Column 'a' cannot be null Warning 1265 Data truncated for column 'b' at row 4 -insert into t2(b) values('mysqlab'); +insert ignore into t2(b) values('mysqlab'); Warnings: Warning 1364 Field 'a' doesn't have a default value Warning 1265 Data truncated for column 'b' at row 1 set sql_warnings=1; -insert into t2(b) values('mysqlab'); +insert ignore into t2(b) values('mysqlab'); Warnings: Warning 1364 Field 'a' doesn't have a default value Warning 1265 Data truncated for column 'b' at row 1 @@ -131,7 +132,7 @@ drop table t1, t2; create table t1(a char(10)); alter table t1 add b char; set max_error_count=10; -update t1 set b=a; +update ignore t1 set b=a; Warnings: Warning 1265 Data truncated for column 'b' at row 1 Warning 1265 Data truncated for column 'b' at row 2 @@ -150,7 +151,7 @@ set max_error_count=0; show variables like 'max_error_count'; Variable_name Value max_error_count 0 -update t1 set b='hi'; +update ignore t1 set b='hi'; Warnings: select @@warning_count; @@warning_count @@ -168,7 +169,7 @@ max_error_count 10 drop table t1; create table t1 (a int); insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); -update t1 set a='abc'; +update ignore t1 set a='abc'; Warnings: Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 1 Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 2 @@ -235,6 +236,7 @@ Note 1305 PROCEDURE test.sp2 does not exist DROP PROCEDURE IF EXISTS sp3; Warnings: Note 1305 PROCEDURE test.sp3 does not exist +SET sql_mode = ''; CREATE PROCEDURE sp1() BEGIN DECLARE x NUMERIC ZEROFILL; @@ -259,7 +261,9 @@ Warning 1366 Incorrect decimal value: 'a`' for column 'x' at row 1 CALL sp3(); Warnings: Warning 1366 Incorrect decimal value: 'a`' for column 'x' at row 1 +SET sql_mode = DEFAULT; DROP PROCEDURE IF EXISTS sp1; +SET sql_mode = ''; CREATE PROCEDURE sp1() BEGIN declare x numeric unsigned zerofill; @@ -268,6 +272,7 @@ END// CALL sp1(); Warnings: Warning 1366 Incorrect decimal value: 'a`' for column 'x' at row 1 +SET sql_mode = DEFAULT; DROP TABLE t1; DROP TABLE t2; DROP TABLE t3; diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index ba9ef003da1..f693d6641df 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2270,6 +2270,17 @@ pk c CNT 8 2 0.5000 9 2 0.6667 10 2 1.0000 +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 create view v1 as select pk, c, c/count(*) over (partition by c order by pk rows between 1 preceding and 2 following) as CNT from t1; @@ -2288,6 +2299,17 @@ pk c CNT 8 2 0.5000 9 2 0.6667 10 2 1.0000 +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 select pk, c, c/count(*) over w1 as CNT from t1 window w1 as (partition by c order by pk rows between 1 preceding and 2 following); pk c CNT @@ -2301,6 +2323,17 @@ pk c CNT 8 2 0.5000 9 2 0.6667 10 2 1.0000 +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 create view v2 as select pk, c, c/count(*) over w1 as CNT from t1 window w1 as (partition by c order by pk rows between 1 preceding and 2 following); show create view v2; @@ -2318,6 +2351,17 @@ pk c CNT 8 2 0.5000 9 2 0.6667 10 2 1.0000 +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 select pk, c, c/count(*) over w1 as CNT from t1 window w1 as (partition by c order by pk rows unbounded preceding); pk c CNT @@ -2331,6 +2375,17 @@ pk c CNT 8 2 0.5000 9 2 0.4000 10 2 0.3333 +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 create view v3 as select pk, c, c/count(*) over w1 as CNT from t1 window w1 as (partition by c order by pk rows unbounded preceding); show create view v3; @@ -2348,6 +2403,17 @@ pk c CNT 8 2 0.5000 9 2 0.4000 10 2 0.3333 +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 select pk, c, c/count(*) over (partition by c order by pk range between 3 preceding and current row) as CNT from t1; @@ -2362,6 +2428,17 @@ pk c CNT 8 2 0.5000 9 2 0.5000 10 2 0.5000 +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 create view v4 as select pk, c, c/count(*) over (partition by c order by pk range between 3 preceding and current row) as CNT from t1; @@ -2380,6 +2457,17 @@ pk c CNT 8 2 0.5000 9 2 0.5000 10 2 0.5000 +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 drop view v1,v2,v3,v4; drop table t0,t1; # diff --git a/mysql-test/r/xtradb_mrr.result b/mysql-test/r/xtradb_mrr.result index db90ada8053..f49207c0e41 100644 --- a/mysql-test/r/xtradb_mrr.result +++ b/mysql-test/r/xtradb_mrr.result @@ -782,7 +782,7 @@ INSERT INTO t1 VALUES ('MS','Microsoft'), ('IB','IBM- Inc.'), ('GO','Google Inc.'); -INSERT INTO t2 VALUES +INSERT IGNORE INTO t2 VALUES ('AB','Sweden'), ('JA','USA'), ('MS','United States of America'), diff --git a/mysql-test/suite/archive/archive.result b/mysql-test/suite/archive/archive.result index 603621abf2a..d294d3dfe58 100644 --- a/mysql-test/suite/archive/archive.result +++ b/mysql-test/suite/archive/archive.result @@ -12593,7 +12593,7 @@ INSERT INTO t5 VALUES (NULL, "establish justice", "to ourselves and"); INSERT INTO t5 VALUES (32, "ensure domestic tranquility", NULL); INSERT INTO t5 VALUES (23, "provide for the common defense", "posterity"); INSERT INTO t5 VALUES (NULL, "promote the general welfare", "do ordain"); -INSERT INTO t5 VALUES (NULL, "abcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabc", "do ordain"); +INSERT IGNORE INTO t5 VALUES (NULL, "abcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabc", "do ordain"); Warnings: Warning 1265 Data truncated for column 'b' at row 1 SELECT * FROM t5; diff --git a/mysql-test/suite/archive/archive.test b/mysql-test/suite/archive/archive.test index 81a73683541..30f2766507e 100644 --- a/mysql-test/suite/archive/archive.test +++ b/mysql-test/suite/archive/archive.test @@ -1515,7 +1515,7 @@ INSERT INTO t5 VALUES (NULL, "establish justice", "to ourselves and"); INSERT INTO t5 VALUES (32, "ensure domestic tranquility", NULL); INSERT INTO t5 VALUES (23, "provide for the common defense", "posterity"); INSERT INTO t5 VALUES (NULL, "promote the general welfare", "do ordain"); -INSERT INTO t5 VALUES (NULL, "abcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabc", "do ordain"); +INSERT IGNORE INTO t5 VALUES (NULL, "abcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabcdeghijklmnopqrstuvwxyzabc", "do ordain"); SELECT * FROM t5; diff --git a/mysql-test/suite/archive/mysqlhotcopy_archive.result b/mysql-test/suite/archive/mysqlhotcopy_archive.result index bea78597336..3c74fc1e01f 100644 --- a/mysql-test/suite/archive/mysqlhotcopy_archive.result +++ b/mysql-test/suite/archive/mysqlhotcopy_archive.result @@ -6,13 +6,13 @@ CREATE TABLE t2 (c1 int, c2 varchar(20)) ENGINE=archive; CREATE TABLE t3 (c1 int, c2 varchar(20)) ENGINE=archive; INSERT INTO t1 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); Warnings: -Warning 1265 Data truncated for column 'c2' at row 2 +Warning 1406 Data too long for column 'c2' at row 2 INSERT INTO t2 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); Warnings: -Warning 1265 Data truncated for column 'c2' at row 2 +Warning 1406 Data too long for column 'c2' at row 2 INSERT INTO t3 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); Warnings: -Warning 1265 Data truncated for column 'c2' at row 2 +Warning 1406 Data too long for column 'c2' at row 2 db.opt t1.ARZ t1.frm diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result index c8385e4acd8..47069b81a15 100644 --- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result @@ -363,7 +363,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result index b09727075a1..c6c7684f4c8 100644 --- a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result @@ -147,7 +147,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/suite/binlog/r/binlog_row_annotate.result b/mysql-test/suite/binlog/r/binlog_row_annotate.result index bc59d6d2f42..8a37200a2e3 100644 --- a/mysql-test/suite/binlog/r/binlog_row_annotate.result +++ b/mysql-test/suite/binlog/r/binlog_row_annotate.result @@ -42,35 +42,29 @@ FLUSH LOGS; ##################################################################################### include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Gtid 1 # GTID 0-1-1 -master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS test1 -master-bin.000001 # Gtid 1 # GTID 0-1-2 -master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS test2 -master-bin.000001 # Gtid 1 # GTID 0-1-3 -master-bin.000001 # Query 1 # DROP DATABASE IF EXISTS test3 -master-bin.000001 # Gtid 1 # GTID 0-1-4 -master-bin.000001 # Query 1 # CREATE DATABASE test1 -master-bin.000001 # Gtid 1 # GTID 0-1-5 -master-bin.000001 # Query 1 # CREATE DATABASE test2 -master-bin.000001 # Gtid 1 # GTID 0-1-6 -master-bin.000001 # Query 1 # CREATE DATABASE test3 -master-bin.000001 # Gtid 1 # BEGIN GTID 0-1-7 -master-bin.000001 # Annotate_rows 1 # INSERT INTO test1.t1 VALUES (1), (2), (3) -master-bin.000001 # Table_map 1 # table_id: # (test1.t1) -master-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F -master-bin.000001 # Query 1 # COMMIT -master-bin.000001 # Gtid 1 # BEGIN GTID 0-1-8 -master-bin.000001 # Annotate_rows 1 # INSERT INTO test2.t2 VALUES (1), (2), (3) -master-bin.000001 # Table_map 1 # table_id: # (test2.t2) -master-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F -master-bin.000001 # Query 1 # COMMIT -master-bin.000001 # Gtid 1 # BEGIN GTID 0-1-9 -master-bin.000001 # Annotate_rows 1 # INSERT INTO test3.t3 VALUES (1), (2), (3) -master-bin.000001 # Table_map 1 # table_id: # (test3.t3) -master-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F -master-bin.000001 # Query 1 # COMMIT -master-bin.000001 # Gtid 1 # BEGIN GTID 0-1-10 -master-bin.000001 # Annotate_rows 1 # DELETE test1.t1, test2.t2 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE test1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE test2 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE test3 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO test1.t1 VALUES (1), (2), (3) +master-bin.000001 # Table_map # # table_id: # (test1.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO test2.t2 VALUES (1), (2), (3) +master-bin.000001 # Table_map # # table_id: # (test2.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO test3.t3 VALUES (1), (2), (3) +master-bin.000001 # Table_map # # table_id: # (test3.t3) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE test1.t1, test2.t2 FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3 WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a master-bin.000001 # Table_map # # table_id: # (test1.t1) diff --git a/mysql-test/suite/binlog/r/binlog_row_binlog.result b/mysql-test/suite/binlog/r/binlog_row_binlog.result index eb85c0f6310..b0f99e1368a 100644 --- a/mysql-test/suite/binlog/r/binlog_row_binlog.result +++ b/mysql-test/suite/binlog/r/binlog_row_binlog.result @@ -843,7 +843,7 @@ create table if not exists t2 select * from t1; create temporary table tt1 (a int); create table if not exists t3 like tt1; USE mysql; -INSERT INTO user SET host='localhost', user='@#@', password=password('Just a test'); +INSERT IGNORE INTO user SET host='localhost', user='@#@', password=password('Just a test'); UPDATE user SET password=password('Another password') WHERE host='localhost' AND user='@#@'; DELETE FROM user WHERE host='localhost' AND user='@#@'; use test; @@ -894,7 +894,7 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t3` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Annotate_rows # # INSERT INTO user SET host='localhost', user='@#@', password=password('Just a test') +master-bin.000001 # Annotate_rows # # INSERT IGNORE INTO user SET host='localhost', user='@#@', password=password('Just a test') master-bin.000001 # Table_map # # table_id: # (mysql.user) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result b/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result index 346b7a58179..f4f9753828b 100644 --- a/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result +++ b/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result @@ -58,7 +58,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -11499,30 +11499,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SET collation_connection='cp932_bin'; create table t1 select repeat('a',4000) a; @@ -11606,30 +11594,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; create table t2 (a char(1)); insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'); @@ -11649,14 +11625,14 @@ drop table t1; drop table t2; create table t1 (col1 varchar(1)) character set cp932; insert into t1 values ('a'); -insert into t1 values ('ab'); +insert ignore into t1 values ('ab'); Warnings: Warning 1265 Data truncated for column 'col1' at row 1 select * from t1; col1 a a -insert into t1 values ('abc'); +insert ignore into t1 values ('abc'); Warnings: Warning 1265 Data truncated for column 'col1' at row 1 select * from t1; diff --git a/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result b/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result index 023902ea453..1f99346a2ab 100644 --- a/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result +++ b/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result @@ -21,7 +21,7 @@ BEGIN SET TIMESTAMP=10000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -91,7 +91,7 @@ use `test`/*!*/; SET TIMESTAMP=XXX/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; diff --git a/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result index 87c444004fe..e48dd2c89b4 100644 --- a/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result +++ b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result @@ -51,7 +51,7 @@ use `new_test1`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -285,7 +285,7 @@ use `new_test1`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/suite/binlog/r/binlog_stm_binlog.result b/mysql-test/suite/binlog/r/binlog_stm_binlog.result index 421cba1ad4d..872ba40e05f 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_binlog.result +++ b/mysql-test/suite/binlog/r/binlog_stm_binlog.result @@ -451,7 +451,7 @@ create table if not exists t2 select * from t1; create temporary table tt1 (a int); create table if not exists t3 like tt1; USE mysql; -INSERT INTO user SET host='localhost', user='@#@', password=password('Just a test'); +INSERT IGNORE INTO user SET host='localhost', user='@#@', password=password('Just a test'); UPDATE user SET password=password('Another password') WHERE host='localhost' AND user='@#@'; DELETE FROM user WHERE host='localhost' AND user='@#@'; use test; @@ -501,7 +501,7 @@ master-bin.000001 # Query # # use `test`; create temporary table tt1 (a int) master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table if not exists t3 like tt1 master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `mysql`; INSERT INTO user SET host='localhost', user='@#@', password=password('Just a test') +master-bin.000001 # Query # # use `mysql`; INSERT IGNORE INTO user SET host='localhost', user='@#@', password=password('Just a test') master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `mysql`; UPDATE user SET password=password('Another password') WHERE host='localhost' AND user='@#@' diff --git a/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result b/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result index 346b7a58179..f4f9753828b 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result +++ b/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result @@ -58,7 +58,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -11499,30 +11499,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; SET collation_connection='cp932_bin'; create table t1 select repeat('a',4000) a; @@ -11606,30 +11594,18 @@ CREATE TABLE t1 AS SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); -Warnings: -Warning 1364 Field 'c' doesn't have a default value -Warning 1364 Field 'd' doesn't have a default value SELECT hex(concat(repeat(0xF1F2, 10), '%')); hex(concat(repeat(0xF1F2, 10), '%')) F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 3 rows expected SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); a hex(b) c -2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 -4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL DROP TABLE t1; create table t2 (a char(1)); insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'); @@ -11649,14 +11625,14 @@ drop table t1; drop table t2; create table t1 (col1 varchar(1)) character set cp932; insert into t1 values ('a'); -insert into t1 values ('ab'); +insert ignore into t1 values ('ab'); Warnings: Warning 1265 Data truncated for column 'col1' at row 1 select * from t1; col1 a a -insert into t1 values ('abc'); +insert ignore into t1 values ('abc'); Warnings: Warning 1265 Data truncated for column 'col1' at row 1 select * from t1; diff --git a/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result b/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result index e8ecdb7b976..693c252c1ad 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result +++ b/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result @@ -22,7 +22,7 @@ use `test`/*!*/; SET TIMESTAMP=10000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -95,7 +95,7 @@ use `test`/*!*/; SET TIMESTAMP=XXX/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; diff --git a/mysql-test/suite/binlog/r/binlog_stm_user_variables.result b/mysql-test/suite/binlog/r/binlog_stm_user_variables.result index 225921182e6..9923eb89a11 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_user_variables.result +++ b/mysql-test/suite/binlog/r/binlog_stm_user_variables.result @@ -17,10 +17,10 @@ CREATE TABLE t1 (`tinyint` TINYINT, `decimal` DECIMAL(30,2)) ENGINE = MyISAM; ### insert max unsigned ### a) declarative -INSERT INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615);; +INSERT IGNORE INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615);; TRUNCATE t1; ### b) user var -INSERT INTO t1 VALUES (@positive, +INSERT IGNORE INTO t1 VALUES (@positive, @positive, @positive, @positive, @@ -55,13 +55,13 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (`tinyint` TINYINT, `real` REAL(30,2), `decimal` DECIMAL(30,2)) ENGINE = MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615) +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE t1 master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # User var # # @`positive`=18446744073709551615 -master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (@positive, +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (@positive, @positive, @positive, @positive, @@ -78,10 +78,10 @@ master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (@positive, master-bin.000001 # Query # # COMMIT ### insert min signed ### a) declarative -INSERT INTO t1 VALUES (-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808,-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808);; +INSERT IGNORE INTO t1 VALUES (-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808,-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808);; TRUNCATE t1; ### b) user var -INSERT INTO t1 VALUES (@negative, +INSERT IGNORE INTO t1 VALUES (@negative, @negative, @negative, @negative, @@ -116,13 +116,13 @@ master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (`tinyint` TINYINT, `real` REAL(30,2), `decimal` DECIMAL(30,2)) ENGINE = MyISAM master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615) +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE t1 master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # User var # # @`positive`=18446744073709551615 -master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (@positive, +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (@positive, @positive, @positive, @positive, @@ -138,13 +138,13 @@ master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (@positive, @positive) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808,-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808) +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808,-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; TRUNCATE t1 master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # User var # # @`negative`=-9223372036854775808 -master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (@negative, +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (@negative, @negative, @negative, @negative, diff --git a/mysql-test/suite/binlog/r/flashback.result b/mysql-test/suite/binlog/r/flashback.result index 94833c5224a..a7973b36ddd 100644 --- a/mysql-test/suite/binlog/r/flashback.result +++ b/mysql-test/suite/binlog/r/flashback.result @@ -61,7 +61,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; @@ -84,6 +84,9 @@ c08 TEXT BEGIN /*!*/; # at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(0,0,0,0,0,'','','') #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -106,6 +109,9 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(1,2,3,4,5, "abc", "abcdefg", "abcedfghijklmnopqrstuvwxyz") #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -128,6 +134,9 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(127, 32767, 8388607, 2147483647, 9223372036854775807, repeat('a', 10), repeat('a', 20), repeat('a', 255)) #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F @@ -150,6 +159,9 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c01=100 WHERE c02=0 OR c03=3 #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F @@ -200,6 +212,9 @@ COMMIT/*!*/; BEGIN /*!*/; # at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # # at # #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F @@ -254,10 +269,20 @@ DELIMITER /*!*/; ROLLBACK/*!*/; #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(0,0,0,0,0,'','','') #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(1,2,3,4,5, "abc", "abcdefg", "abcedfghijklmnopqrstuvwxyz") #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(127, 32767, 8388607, 2147483647, 9223372036854775807, repeat('a', 10), repeat('a', 20), repeat('a', 255)) #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c01=100 WHERE c02=0 OR c03=3 #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 #010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # @@ -388,7 +413,7 @@ use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=#/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/suite/binlog/t/binlog_stm_user_variables.test b/mysql-test/suite/binlog/t/binlog_stm_user_variables.test index 4bed6db6269..85bf511af86 100644 --- a/mysql-test/suite/binlog/t/binlog_stm_user_variables.test +++ b/mysql-test/suite/binlog/t/binlog_stm_user_variables.test @@ -27,13 +27,13 @@ CREATE TABLE t1 (`tinyint` TINYINT, -- echo ### insert max unsigned -- echo ### a) declarative -- disable_warnings --- eval INSERT INTO t1 VALUES ($max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long,$max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long); +-- eval INSERT IGNORE INTO t1 VALUES ($max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long,$max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long); -- enable_warnings TRUNCATE t1; -- echo ### b) user var -- disable_warnings -INSERT INTO t1 VALUES (@positive, +INSERT IGNORE INTO t1 VALUES (@positive, @positive, @positive, @positive, @@ -57,13 +57,13 @@ INSERT INTO t1 VALUES (@positive, -- echo ### insert min signed -- echo ### a) declarative -- disable_warnings --- eval INSERT INTO t1 VALUES ($min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long,$min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long); +-- eval INSERT IGNORE INTO t1 VALUES ($min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long,$min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long); -- enable_warnings TRUNCATE t1; -- echo ### b) user var -- disable_warnings -INSERT INTO t1 VALUES (@negative, +INSERT IGNORE INTO t1 VALUES (@negative, @negative, @negative, @negative, diff --git a/mysql-test/suite/binlog_encryption/binlog_row_annotate.result b/mysql-test/suite/binlog_encryption/binlog_row_annotate.result index f4cfc86619d..e72fc9faa6e 100644 --- a/mysql-test/suite/binlog_encryption/binlog_row_annotate.result +++ b/mysql-test/suite/binlog_encryption/binlog_row_annotate.result @@ -50,6 +50,7 @@ master-bin.000001 # Query # # CREATE DATABASE test2 master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # CREATE DATABASE test3 master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO test1.t1 VALUES (1), (2), (3) master-bin.000001 # Table_map # # table_id: # (test1.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT @@ -147,6 +148,9 @@ CREATE DATABASE test3 BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) #010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F @@ -368,6 +372,9 @@ CREATE DATABASE test1 BEGIN /*!*/; # at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) #010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # # at # #010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F diff --git a/mysql-test/suite/binlog_encryption/binlog_xa_recover.result b/mysql-test/suite/binlog_encryption/binlog_xa_recover.result index 6719d891ee2..af36fe277a1 100644 --- a/mysql-test/suite/binlog_encryption/binlog_xa_recover.result +++ b/mysql-test/suite/binlog_encryption/binlog_xa_recover.result @@ -51,6 +51,7 @@ master-bin.000003 # Gtid_list # # [#-#-#] master-bin.000003 # Binlog_checkpoint # # master-bin.000002 master-bin.000003 # Binlog_checkpoint # # master-bin.000003 master-bin.000003 # Gtid # # BEGIN GTID #-#-# +master-bin.000003 # Annotate_rows # # INSERT INTO t1 VALUES (102, REPEAT("x", 4100)) master-bin.000003 # Table_map # # table_id: # (test.t1) master-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000003 # Xid # # COMMIT /* XID */ @@ -63,6 +64,7 @@ master-bin.000004 # Gtid_list # # [#-#-#] master-bin.000004 # Binlog_checkpoint # # master-bin.000003 master-bin.000004 # Binlog_checkpoint # # master-bin.000004 master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (1, REPEAT("x", 4100)) master-bin.000004 # Table_map # # table_id: # (test.t1) master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000004 # Xid # # COMMIT /* XID */ @@ -74,10 +76,12 @@ master-bin.000005 # Start_encryption # # master-bin.000005 # Gtid_list # # [#-#-#] master-bin.000005 # Binlog_checkpoint # # master-bin.000004 master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Annotate_rows # # INSERT INTO t1 VALUES (2, NULL) master-bin.000005 # Table_map # # table_id: # (test.t1) master-bin.000005 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000005 # Xid # # COMMIT /* XID */ master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Annotate_rows # # INSERT INTO t1 VALUES (3, REPEAT("x", 4100)) master-bin.000005 # Table_map # # table_id: # (test.t1) master-bin.000005 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000005 # Xid # # COMMIT /* XID */ @@ -140,6 +144,7 @@ master-bin.000004 # Start_encryption # # master-bin.000004 # Gtid_list # # [#-#-#] master-bin.000004 # Binlog_checkpoint # # master-bin.000001 master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (13, NULL) master-bin.000004 # Table_map # # table_id: # (test.t1) master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000004 # Xid # # COMMIT /* XID */ @@ -164,6 +169,7 @@ master-bin.000004 # Start_encryption # # master-bin.000004 # Gtid_list # # [#-#-#] master-bin.000004 # Binlog_checkpoint # # master-bin.000001 master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (13, NULL) master-bin.000004 # Table_map # # table_id: # (test.t1) master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000004 # Xid # # COMMIT /* XID */ @@ -232,6 +238,7 @@ master-bin.000004 # Gtid_list # # [#-#-#] master-bin.000004 # Binlog_checkpoint # # master-bin.000003 master-bin.000004 # Binlog_checkpoint # # master-bin.000004 master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (24, REPEAT("x", 4100)) master-bin.000004 # Table_map # # table_id: # (test.t1) master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000004 # Xid # # COMMIT /* XID */ diff --git a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result index a54b84227e5..8820aa23f53 100644 --- a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result +++ b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result @@ -88,6 +88,7 @@ DELETE FROM t2; RESET MASTER; ###################### TEST #7 SET GLOBAL debug_dbug="+d,error_unique_log_filename"; +SET @@binlog_annotate_row_events= 0; SELECT count(*) FROM t4; count(*) 0 diff --git a/mysql-test/suite/binlog_encryption/rpl_gtid_basic.result b/mysql-test/suite/binlog_encryption/rpl_gtid_basic.result index dd946ec3107..4e17669605f 100644 --- a/mysql-test/suite/binlog_encryption/rpl_gtid_basic.result +++ b/mysql-test/suite/binlog_encryption/rpl_gtid_basic.result @@ -465,9 +465,11 @@ include/stop_slave.inc connection server_1; SET gtid_domain_id=2; SET gtid_seq_no=1030; +SET @@binlog_annotate_row_events= 0; INSERT INTO t1 VALUES (17); INSERT INTO t1 VALUES (18); INSERT INTO t1 VALUES (19); +SET @@binlog_annotate_row_events= 1; connection server_2; SET sql_slave_skip_counter= 5; include/start_slave.inc diff --git a/mysql-test/suite/binlog_encryption/rpl_switch_stm_row_mixed.result b/mysql-test/suite/binlog_encryption/rpl_switch_stm_row_mixed.result index 6c709945111..2f7f1b07cb4 100644 --- a/mysql-test/suite/binlog_encryption/rpl_switch_stm_row_mixed.result +++ b/mysql-test/suite/binlog_encryption/rpl_switch_stm_row_mixed.result @@ -21,7 +21,7 @@ binlog_format ROW set global binlog_format=DEFAULT; show global variables like "binlog_format%"; Variable_name Value -binlog_format STATEMENT +binlog_format MIXED set global binlog_format=MIXED; show global variables like "binlog_format%"; Variable_name Value @@ -135,11 +135,13 @@ insert into t1 values(concat("for_23_",UUID())); insert into t1 select "yesterday_24_"; create table t2 ENGINE=MyISAM select rpad(UUID(),100,' '); create table t3 select 1 union select UUID(); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t4 select * from t1 where 3 in (select 1 union select 2 union select UUID() union select 3); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t5 select * from t1 where 3 in (select 1 union select 2 union select curdate() union select 3); Warnings: Warning 1292 Incorrect datetime value: '3' -insert into t5 select UUID() from t1 where 3 in (select 1 union select 2 union select 3 union select * from t4); +insert ignore into t5 select UUID() from t1 where 3 in (select 1 union select 2 union select 3 union select * from t4); create procedure foo() begin insert into t1 values("work_25_"); diff --git a/mysql-test/suite/csv/csv.result b/mysql-test/suite/csv/csv.result index 3340b3a2d46..220b84b222e 100644 --- a/mysql-test/suite/csv/csv.result +++ b/mysql-test/suite/csv/csv.result @@ -5326,7 +5326,7 @@ select * from t1; a drop table t1; create table t1(a datetime not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); Warnings: Warning 1364 Field 'a' doesn't have a default value select * from t1; @@ -5334,7 +5334,7 @@ a 0000-00-00 00:00:00 drop table t1; create table t1(a set('foo','bar') not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); Warnings: Warning 1364 Field 'a' doesn't have a default value select * from t1; @@ -5342,7 +5342,7 @@ a drop table t1; create table t1(a varchar(32) not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); Warnings: Warning 1364 Field 'a' doesn't have a default value select * from t1; @@ -5350,7 +5350,7 @@ a drop table t1; create table t1(a int not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); Warnings: Warning 1364 Field 'a' doesn't have a default value select * from t1; @@ -5358,7 +5358,7 @@ a 0 drop table t1; create table t1(a blob not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); Warnings: Warning 1364 Field 'a' doesn't have a default value select * from t1; @@ -5366,7 +5366,7 @@ a drop table t1; create table t1(a bit(1) not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); Warnings: Warning 1364 Field 'a' doesn't have a default value select BIN(a) from t1; @@ -5411,13 +5411,13 @@ drop table t1; CREATE TABLE t1 (e enum('foo','bar') NOT NULL) ENGINE = CSV; INSERT INTO t1 VALUES(); INSERT INTO t1 VALUES(default); -INSERT INTO t1 VALUES(0); +INSERT IGNORE INTO t1 VALUES(0); Warnings: Warning 1265 Data truncated for column 'e' at row 1 -INSERT INTO t1 VALUES(3); +INSERT IGNORE INTO t1 VALUES(3); Warnings: Warning 1265 Data truncated for column 'e' at row 1 -INSERT INTO t1 VALUES(-1); +INSERT IGNORE INTO t1 VALUES(-1); Warnings: Warning 1265 Data truncated for column 'e' at row 1 SELECT * FROM t1; diff --git a/mysql-test/suite/csv/csv.test b/mysql-test/suite/csv/csv.test index 413ffdc5cfa..3da9aca7b16 100644 --- a/mysql-test/suite/csv/csv.test +++ b/mysql-test/suite/csv/csv.test @@ -1738,27 +1738,27 @@ drop table t1; # Bug #31473: does not work with NULL value in datetime field # create table t1(a datetime not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); select * from t1; drop table t1; create table t1(a set('foo','bar') not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); select * from t1; drop table t1; create table t1(a varchar(32) not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); select * from t1; drop table t1; create table t1(a int not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); select * from t1; drop table t1; create table t1(a blob not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); select * from t1; drop table t1; create table t1(a bit(1) not null) engine=csv; -insert into t1 values(); +insert ignore into t1 values(); select BIN(a) from t1; drop table t1; # We prevent creation of table with nullable ENUM @@ -1815,9 +1815,9 @@ drop table t1; CREATE TABLE t1 (e enum('foo','bar') NOT NULL) ENGINE = CSV; INSERT INTO t1 VALUES(); INSERT INTO t1 VALUES(default); -INSERT INTO t1 VALUES(0); -INSERT INTO t1 VALUES(3); -INSERT INTO t1 VALUES(-1); +INSERT IGNORE INTO t1 VALUES(0); +INSERT IGNORE INTO t1 VALUES(3); +INSERT IGNORE INTO t1 VALUES(-1); SELECT * FROM t1; DROP TABLE t1; diff --git a/mysql-test/suite/csv/csv_not_null.result b/mysql-test/suite/csv/csv_not_null.result index aed9bcb1587..57ba0b726a7 100644 --- a/mysql-test/suite/csv/csv_not_null.result +++ b/mysql-test/suite/csv/csv_not_null.result @@ -15,11 +15,11 @@ CREATE TABLE t1 (a int NOT NULL, b blob NOT NULL, c CHAR(20) NOT NULL, d VARCHAR(20) NOT NULL, e enum('foo','bar') NOT NULL,f DATE NOT NULL) ENGINE = CSV; # === should result in default for each datatype === -INSERT INTO t1 VALUES(); +INSERT IGNORE INTO t1 VALUES(); SELECT * FROM t1; a b c d e f 0 foo 0000-00-00 -INSERT INTO t1 VALUES(default,default,default,default,default,default); +INSERT IGNORE INTO t1 VALUES(default,default,default,default,default,default); SELECT * FROM t1; a b c d e f 0 foo 0000-00-00 @@ -40,7 +40,7 @@ DROP TABLE t1; # ===== csv_not_null.3 ===== DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a int NOT NULL, b char(10) NOT NULL) ENGINE = CSV; -INSERT INTO t1 VALUES(); +INSERT IGNORE INTO t1 VALUES(); SELECT * FROM t1; a b 0 @@ -48,7 +48,7 @@ UPDATE t1 set b = 'new_value' where a = 0; SELECT * FROM t1; a b 0 new_value -UPDATE t1 set b = NULL where b = 'new_value'; +UPDATE IGNORE t1 set b = NULL where b = 'new_value'; Warnings: Warning 1048 Column 'b' cannot be null SELECT * FROM t1; diff --git a/mysql-test/suite/csv/csv_not_null.test b/mysql-test/suite/csv/csv_not_null.test index bebea53b2f7..effb98e1f43 100644 --- a/mysql-test/suite/csv/csv_not_null.test +++ b/mysql-test/suite/csv/csv_not_null.test @@ -50,13 +50,13 @@ d VARCHAR(20) NOT NULL, e enum('foo','bar') NOT NULL,f DATE NOT NULL) ENGINE = CSV; -- echo # === should result in default for each datatype === -- disable_warnings -INSERT INTO t1 VALUES(); +INSERT IGNORE INTO t1 VALUES(); -- enable_warnings SELECT * FROM t1; -- disable_warnings # Bug#33717 - INSERT...(default) fails for enum. -INSERT INTO t1 VALUES(default,default,default,default,default,default); +INSERT IGNORE INTO t1 VALUES(default,default,default,default,default,default); -- enable_warnings SELECT * FROM t1; @@ -84,14 +84,14 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a int NOT NULL, b char(10) NOT NULL) ENGINE = CSV; --disable_warnings -INSERT INTO t1 VALUES(); +INSERT IGNORE INTO t1 VALUES(); --enable_warnings SELECT * FROM t1; --disable_warnings UPDATE t1 set b = 'new_value' where a = 0; --enable_warnings SELECT * FROM t1; -UPDATE t1 set b = NULL where b = 'new_value'; +UPDATE IGNORE t1 set b = NULL where b = 'new_value'; SELECT * FROM t1; DROP TABLE t1; diff --git a/mysql-test/suite/engines/funcs/r/comment_column.result b/mysql-test/suite/engines/funcs/r/comment_column.result index 184ac3cd7cb..b57ea26fc86 100644 --- a/mysql-test/suite/engines/funcs/r/comment_column.result +++ b/mysql-test/suite/engines/funcs/r/comment_column.result @@ -236,6 +236,7 @@ t1 CREATE TABLE `t1` ( `c10` int(11) DEFAULT NULL COMMENT 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd', KEY `i2` (`c2`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD COLUMN c11 INTEGER COMMENT 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; Warnings: Warning 1629 Comment for field 'c11' is too long (max = 1024) diff --git a/mysql-test/suite/engines/funcs/r/comment_index.result b/mysql-test/suite/engines/funcs/r/comment_index.result index f32fdb33ce1..0b3ef838d5f 100644 --- a/mysql-test/suite/engines/funcs/r/comment_index.result +++ b/mysql-test/suite/engines/funcs/r/comment_index.result @@ -265,6 +265,7 @@ t1 CREATE TABLE `t1` ( KEY `i10` (`c10`) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd', KEY `i1_3` (`c1`,`c2`,`c3`) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' +SET STATEMENT sql_mode = '' FOR CREATE INDEX i11 ON t1(c11) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; Warnings: Warning 1688 Comment for index 'i11' is too long (max = 1024) @@ -317,6 +318,7 @@ t1 CREATE TABLE `t1` ( KEY `i1_3` (`c1`,`c2`,`c3`) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd', KEY `i11` (`c11`) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='ABCDEFGHIJabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX (c13) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; Warnings: Warning 1688 Comment for index 'c13' is too long (max = 1024) diff --git a/mysql-test/suite/engines/funcs/r/date_function.result b/mysql-test/suite/engines/funcs/r/date_function.result index 51d492c347b..3eea9330191 100644 --- a/mysql-test/suite/engines/funcs/r/date_function.result +++ b/mysql-test/suite/engines/funcs/r/date_function.result @@ -28,7 +28,7 @@ DATE(c1) 2008-02-29 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -72,7 +72,7 @@ Monday Friday DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -116,7 +116,7 @@ DAYOFMONTH(c1) 29 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -160,7 +160,7 @@ DAYOFWEEK(c1) 6 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -204,7 +204,7 @@ DAYOFYEAR(c1) 60 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -248,7 +248,7 @@ FROM_DAYS(c1) 0000-00-00 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -292,7 +292,7 @@ LAST_DAY(c1) 2008-02-29 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -336,7 +336,7 @@ MONTH(c1) 2 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -380,7 +380,7 @@ December February DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -424,7 +424,7 @@ QUARTER(c1) 1 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -468,7 +468,7 @@ TIMESTAMP(c1) 2008-02-29 00:00:00 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -512,7 +512,7 @@ TO_DAYS(c1) 733466 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -556,7 +556,7 @@ WEEK(c1) 8 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -600,7 +600,7 @@ WEEKDAY(c1) 4 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -644,7 +644,7 @@ WEEKOFYEAR(c1) 9 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -688,7 +688,7 @@ YEAR(c1) 2008 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); @@ -732,7 +732,7 @@ YEARWEEK(c1) 200808 DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31'); diff --git a/mysql-test/suite/engines/funcs/r/datetime_function.result b/mysql-test/suite/engines/funcs/r/datetime_function.result index 583552edc7d..57076939354 100644 --- a/mysql-test/suite/engines/funcs/r/datetime_function.result +++ b/mysql-test/suite/engines/funcs/r/datetime_function.result @@ -16,7 +16,7 @@ INSERT INTO t3 VALUES('2000-01-01 00:00:00'); INSERT INTO t3 VALUES('2008-02-29 13:13:13'); DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01 00:00:00'); +INSERT IGNORE INTO t3 VALUES('1000-01-01 00:00:00'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t3 VALUES('1999-12-31 23:59:59'); diff --git a/mysql-test/suite/engines/funcs/r/in_enum_null.result b/mysql-test/suite/engines/funcs/r/in_enum_null.result index fbd7a2878ff..2575ee4d1cb 100644 --- a/mysql-test/suite/engines/funcs/r/in_enum_null.result +++ b/mysql-test/suite/engines/funcs/r/in_enum_null.result @@ -1,12 +1,12 @@ DROP TABLE IF EXISTS t7; CREATE TABLE t7(c1 ENUM('a','abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij') NULL); INSERT INTO t7(c1) VALUES(NULL); -INSERT INTO t7(c1) VALUES(''); +INSERT IGNORE INTO t7(c1) VALUES(''); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 INSERT INTO t7(c1) VALUES('a'); INSERT INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); -INSERT INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); +INSERT IGNORE INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 SELECT * FROM t7; diff --git a/mysql-test/suite/engines/funcs/r/in_set_null.result b/mysql-test/suite/engines/funcs/r/in_set_null.result index 0106cfc3c32..8ceedb5c471 100644 --- a/mysql-test/suite/engines/funcs/r/in_set_null.result +++ b/mysql-test/suite/engines/funcs/r/in_set_null.result @@ -4,7 +4,7 @@ INSERT INTO t7(c1) VALUES(NULL); INSERT INTO t7(c1) VALUES(''); INSERT INTO t7(c1) VALUES('a'); INSERT INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); -INSERT INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); +INSERT IGNORE INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 INSERT INTO t7(c1) VALUES('a,abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); diff --git a/mysql-test/suite/engines/funcs/r/jp_comment_column.result b/mysql-test/suite/engines/funcs/r/jp_comment_column.result index 9b33dbc3f26..ea50b296765 100644 --- a/mysql-test/suite/engines/funcs/r/jp_comment_column.result +++ b/mysql-test/suite/engines/funcs/r/jp_comment_column.result @@ -237,6 +237,7 @@ t1 CREATE TABLE `t1` ( `c10` int(11) DEFAULT NULL COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦', KEY `i2` (`c2`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD COLUMN c11 INTEGER COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦'; Warnings: Warning 1629 Comment for field 'c11' is too long (max = 1024) diff --git a/mysql-test/suite/engines/funcs/r/jp_comment_index.result b/mysql-test/suite/engines/funcs/r/jp_comment_index.result index ead0c5f7342..3b5c29f25c8 100644 --- a/mysql-test/suite/engines/funcs/r/jp_comment_index.result +++ b/mysql-test/suite/engines/funcs/r/jp_comment_index.result @@ -266,6 +266,7 @@ t1 CREATE TABLE `t1` ( KEY `i10` (`c10`) COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦', KEY `i1_3` (`c1`,`c2`,`c3`) COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦' +SET STATEMENT sql_mode = '' FOR CREATE INDEX i11 ON t1(c11) COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦'; Warnings: Warning 1688 Comment for index 'i11' is too long (max = 1024) @@ -318,6 +319,7 @@ t1 CREATE TABLE `t1` ( KEY `i1_3` (`c1`,`c2`,`c3`) COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦', KEY `i11` (`c11`) COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 COMMENT='‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX (c13) COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦'; Warnings: Warning 1688 Comment for index 'c13' is too long (max = 1024) diff --git a/mysql-test/suite/engines/funcs/r/ta_set_drop_default.result b/mysql-test/suite/engines/funcs/r/ta_set_drop_default.result index ffd3c000c7d..442c6bc771d 100644 --- a/mysql-test/suite/engines/funcs/r/ta_set_drop_default.result +++ b/mysql-test/suite/engines/funcs/r/ta_set_drop_default.result @@ -23,7 +23,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -64,7 +64,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -105,7 +105,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -146,7 +146,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -187,7 +187,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -228,7 +228,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -269,7 +269,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -310,7 +310,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -351,7 +351,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -392,7 +392,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -433,7 +433,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -474,7 +474,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -515,7 +515,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -556,7 +556,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -597,7 +597,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -638,7 +638,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -679,7 +679,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -720,7 +720,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -761,7 +761,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -802,7 +802,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -843,7 +843,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; @@ -884,7 +884,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`c1`) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); Warnings: Warning 1364 Field 'c2' doesn't have a default value SELECT * FROM t1 ORDER BY c1; diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_remove.result b/mysql-test/suite/engines/funcs/r/tc_partition_remove.result index 6e7831bd6c5..3ae3439f83c 100644 --- a/mysql-test/suite/engines/funcs/r/tc_partition_remove.result +++ b/mysql-test/suite/engines/funcs/r/tc_partition_remove.result @@ -1,6 +1,6 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 TINYINT NULL, c2 CHAR(5)) PARTITION BY HASH(c1); -INSERT INTO t1 VALUES(0,'abc'),(100,'abc'),(200,'abc'),(300,'abc'),(400,'abc'); +INSERT IGNORE INTO t1 VALUES(0,'abc'),(100,'abc'),(200,'abc'),(300,'abc'),(400,'abc'); Warnings: Warning 1264 Out of range value for column 'c1' at row 3 Warning 1264 Out of range value for column 'c1' at row 4 @@ -238,7 +238,7 @@ DROP TABLE t1; SHOW TABLES; Tables_in_test CREATE TABLE t1 (c1 TINYINT NOT NULL, c2 CHAR(5)) PARTITION BY HASH(c1); -INSERT INTO t1 VALUES(0,'abc'),(100,'abc'),(200,'abc'),(300,'abc'),(400,'abc'); +INSERT IGNORE INTO t1 VALUES(0,'abc'),(100,'abc'),(200,'abc'),(300,'abc'),(400,'abc'); Warnings: Warning 1264 Out of range value for column 'c1' at row 3 Warning 1264 Out of range value for column 'c1' at row 4 diff --git a/mysql-test/suite/engines/funcs/r/time_function.result b/mysql-test/suite/engines/funcs/r/time_function.result index f5b2f289dc8..7c8b0f617bb 100644 --- a/mysql-test/suite/engines/funcs/r/time_function.result +++ b/mysql-test/suite/engines/funcs/r/time_function.result @@ -2,7 +2,7 @@ DROP TABLE IF EXISTS t3; CREATE TABLE t3(c1 TIME NOT NULL); INSERT INTO t3 VALUES('00:00:00'); INSERT INTO t3 VALUES('23:59:59'); -INSERT INTO t3 VALUES('99:99:99'); +INSERT IGNORE INTO t3 VALUES('99:99:99'); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 INSERT INTO t3 VALUES('12:00:00'); diff --git a/mysql-test/suite/engines/funcs/t/comment_column.test b/mysql-test/suite/engines/funcs/t/comment_column.test index cc2d1013271..7831ffb213b 100644 --- a/mysql-test/suite/engines/funcs/t/comment_column.test +++ b/mysql-test/suite/engines/funcs/t/comment_column.test @@ -62,6 +62,7 @@ SHOW CREATE TABLE t1; # comment overflow(warning) +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD COLUMN c11 INTEGER COMMENT 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1'; SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1'; diff --git a/mysql-test/suite/engines/funcs/t/comment_index.test b/mysql-test/suite/engines/funcs/t/comment_index.test index ead6a0313b1..e654b5c2e34 100644 --- a/mysql-test/suite/engines/funcs/t/comment_index.test +++ b/mysql-test/suite/engines/funcs/t/comment_index.test @@ -57,6 +57,7 @@ SHOW CREATE TABLE t1; # comment overflow(warning) +SET STATEMENT sql_mode = '' FOR CREATE INDEX i11 ON t1(c11) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1'; SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1'; @@ -65,6 +66,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX (c13) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1'; SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1'; diff --git a/mysql-test/suite/engines/funcs/t/date_function.test b/mysql-test/suite/engines/funcs/t/date_function.test index 360dc898731..39698fa4870 100644 --- a/mysql-test/suite/engines/funcs/t/date_function.test +++ b/mysql-test/suite/engines/funcs/t/date_function.test @@ -18,7 +18,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT DATE(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -42,7 +42,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT DAYNAME(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -66,7 +66,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT DAYOFMONTH(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -90,7 +90,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT DAYOFWEEK(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -114,7 +114,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT DAYOFYEAR(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -138,7 +138,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT FROM_DAYS(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -162,7 +162,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT LAST_DAY(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -186,7 +186,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT MONTH(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -210,7 +210,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT MONTHNAME(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -234,7 +234,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT QUARTER(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -258,7 +258,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT TIMESTAMP(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -282,7 +282,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT TO_DAYS(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -306,7 +306,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT WEEK(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -330,7 +330,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT WEEKDAY(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -354,7 +354,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT WEEKOFYEAR(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -378,7 +378,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT YEAR(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); @@ -402,7 +402,7 @@ INSERT INTO t3 VALUES('2008-02-29'); SELECT YEARWEEK(c1) FROM t3; DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01'); +INSERT IGNORE INTO t3 VALUES('1000-01-01'); INSERT INTO t3 VALUES('1999-12-31'); INSERT INTO t3 VALUES('2000-01-01'); INSERT INTO t3 VALUES('2006-12-25'); diff --git a/mysql-test/suite/engines/funcs/t/datetime_function.test b/mysql-test/suite/engines/funcs/t/datetime_function.test index 00d150326c1..467ea4b98c0 100644 --- a/mysql-test/suite/engines/funcs/t/datetime_function.test +++ b/mysql-test/suite/engines/funcs/t/datetime_function.test @@ -14,7 +14,7 @@ INSERT INTO t3 VALUES('2000-01-01 00:00:00'); INSERT INTO t3 VALUES('2008-02-29 13:13:13'); DROP TABLE t3; CREATE TABLE t3(c1 TIMESTAMP NOT NULL); -INSERT INTO t3 VALUES('1000-01-01 00:00:00'); +INSERT IGNORE INTO t3 VALUES('1000-01-01 00:00:00'); INSERT INTO t3 VALUES('1999-12-31 23:59:59'); INSERT INTO t3 VALUES('2000-01-01 00:00:00'); INSERT INTO t3 VALUES('2008-02-29 13:13:13'); diff --git a/mysql-test/suite/engines/funcs/t/in_enum_null.test b/mysql-test/suite/engines/funcs/t/in_enum_null.test index 67bab2a6225..2551527cc4d 100644 --- a/mysql-test/suite/engines/funcs/t/in_enum_null.test +++ b/mysql-test/suite/engines/funcs/t/in_enum_null.test @@ -3,10 +3,10 @@ DROP TABLE IF EXISTS t7; --enable_warnings CREATE TABLE t7(c1 ENUM('a','abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij') NULL); INSERT INTO t7(c1) VALUES(NULL); -INSERT INTO t7(c1) VALUES(''); +INSERT IGNORE INTO t7(c1) VALUES(''); INSERT INTO t7(c1) VALUES('a'); INSERT INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); -INSERT INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); +INSERT IGNORE INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); SELECT * FROM t7; SELECT COUNT(c1) AS null_rows FROM t7 WHERE c1 IS NULL; DROP TABLE t7; diff --git a/mysql-test/suite/engines/funcs/t/in_set_null.test b/mysql-test/suite/engines/funcs/t/in_set_null.test index 845f8351b03..aaeb7056685 100644 --- a/mysql-test/suite/engines/funcs/t/in_set_null.test +++ b/mysql-test/suite/engines/funcs/t/in_set_null.test @@ -6,7 +6,7 @@ INSERT INTO t7(c1) VALUES(NULL); INSERT INTO t7(c1) VALUES(''); INSERT INTO t7(c1) VALUES('a'); INSERT INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); -INSERT INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); +INSERT IGNORE INTO t7(c1) VALUES('abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); INSERT INTO t7(c1) VALUES('a,abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij'); SELECT * FROM t7; SELECT COUNT(c1) AS null_rows FROM t7 WHERE c1 IS NULL; diff --git a/mysql-test/suite/engines/funcs/t/jp_comment_column.test b/mysql-test/suite/engines/funcs/t/jp_comment_column.test index 4a070afd21c..63867242502 100644 --- a/mysql-test/suite/engines/funcs/t/jp_comment_column.test +++ b/mysql-test/suite/engines/funcs/t/jp_comment_column.test @@ -63,6 +63,7 @@ SHOW CREATE TABLE t1; # comment overflow(warning) +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD COLUMN c11 INTEGER COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦'; SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1'; SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1'; diff --git a/mysql-test/suite/engines/funcs/t/jp_comment_index.test b/mysql-test/suite/engines/funcs/t/jp_comment_index.test index 59f750d4bb7..aba14c79c43 100644 --- a/mysql-test/suite/engines/funcs/t/jp_comment_index.test +++ b/mysql-test/suite/engines/funcs/t/jp_comment_index.test @@ -58,6 +58,7 @@ SHOW CREATE TABLE t1; # comment overflow(warning) +SET STATEMENT sql_mode = '' FOR CREATE INDEX i11 ON t1(c11) COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦'; SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1'; SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1'; @@ -66,6 +67,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE SHOW CREATE TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX (c13) COMMENT '‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦‚¨‚©‚«‚­‚¯‚±‚ ‚¢‚¤‚¦'; SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1'; SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1'; diff --git a/mysql-test/suite/engines/funcs/t/rpl_row_until.test b/mysql-test/suite/engines/funcs/t/rpl_row_until.test index ef48212660d..7f8b0000042 100644 --- a/mysql-test/suite/engines/funcs/t/rpl_row_until.test +++ b/mysql-test/suite/engines/funcs/t/rpl_row_until.test @@ -10,8 +10,8 @@ INSERT INTO t1 VALUES (1),(2),(3),(4); DROP TABLE t1; # Save master log position for query DROP TABLE t1 save_master_pos; -let $master_pos_drop_t1= query_get_value(SHOW BINLOG EVENTS, Pos, 10); -let $master_log_file= query_get_value(SHOW BINLOG EVENTS, Log_name, 10); +let $master_pos_drop_t1= query_get_value(SHOW BINLOG EVENTS, Pos, 11); +let $master_log_file= query_get_value(SHOW BINLOG EVENTS, Log_name, 11); CREATE TABLE t2(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY); # Save master log position for query CREATE TABLE t2 @@ -21,7 +21,7 @@ let $master_pos_create_t2= query_get_value(SHOW BINLOG EVENTS, Pos, 12); INSERT INTO t2 VALUES (1),(2); save_master_pos; # Save master log position for query INSERT INTO t2 VALUES (1),(2); -let $master_pos_insert1_t2= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 17); +let $master_pos_insert1_t2= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 19); sync_slave_with_master; # Save relay log position for query INSERT INTO t2 VALUES (1),(2); @@ -31,7 +31,7 @@ connection master; INSERT INTO t2 VALUES (3),(4); DROP TABLE t2; # Save master log position for query DROP TABLE t2; -let $master_pos_drop_t2= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 23); +let $master_pos_drop_t2= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 26); sync_slave_with_master; --source include/stop_slave.inc diff --git a/mysql-test/suite/engines/funcs/t/ta_set_drop_default.test b/mysql-test/suite/engines/funcs/t/ta_set_drop_default.test index dde3c201cca..7f889dcb905 100644 --- a/mysql-test/suite/engines/funcs/t/ta_set_drop_default.test +++ b/mysql-test/suite/engines/funcs/t/ta_set_drop_default.test @@ -13,7 +13,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -30,7 +30,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -47,7 +47,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -64,7 +64,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -81,7 +81,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -98,7 +98,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -115,7 +115,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -132,7 +132,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -149,7 +149,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -166,7 +166,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -183,7 +183,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -200,7 +200,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -217,7 +217,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -234,7 +234,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -251,7 +251,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -268,7 +268,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -285,7 +285,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -302,7 +302,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -319,7 +319,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -336,7 +336,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -353,7 +353,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" @@ -370,7 +370,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; ALTER TABLE t1 ALTER COLUMN c2 DROP DEFAULT; -INSERT INTO t1(c1) VALUES(2); +INSERT IGNORE INTO t1(c1) VALUES(2); SELECT * FROM t1 ORDER BY c1; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" diff --git a/mysql-test/suite/engines/funcs/t/tc_partition_remove.test b/mysql-test/suite/engines/funcs/t/tc_partition_remove.test index a10d6d609ec..b0e99d54611 100644 --- a/mysql-test/suite/engines/funcs/t/tc_partition_remove.test +++ b/mysql-test/suite/engines/funcs/t/tc_partition_remove.test @@ -2,7 +2,7 @@ DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (c1 TINYINT NULL, c2 CHAR(5)) PARTITION BY HASH(c1); -INSERT INTO t1 VALUES(0,'abc'),(100,'abc'),(200,'abc'),(300,'abc'),(400,'abc'); +INSERT IGNORE INTO t1 VALUES(0,'abc'),(100,'abc'),(200,'abc'),(300,'abc'),(400,'abc'); SELECT * FROM t1 ORDER BY c1; SHOW TABLES; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; @@ -80,7 +80,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE " PAGE_CHECKSUM=0" "" SHOW CREATE TABLE t1; DROP TABLE t1; SHOW TABLES; CREATE TABLE t1 (c1 TINYINT NOT NULL, c2 CHAR(5)) PARTITION BY HASH(c1); -INSERT INTO t1 VALUES(0,'abc'),(100,'abc'),(200,'abc'),(300,'abc'),(400,'abc'); +INSERT IGNORE INTO t1 VALUES(0,'abc'),(100,'abc'),(200,'abc'),(300,'abc'),(400,'abc'); SELECT * FROM t1 ORDER BY c1; SHOW TABLES; let $ENGINE=`select variable_value from information_schema.global_variables where variable_name='STORAGE_ENGINE'`; diff --git a/mysql-test/suite/engines/funcs/t/time_function.test b/mysql-test/suite/engines/funcs/t/time_function.test index 91f8e8989d2..e5ab395c452 100644 --- a/mysql-test/suite/engines/funcs/t/time_function.test +++ b/mysql-test/suite/engines/funcs/t/time_function.test @@ -4,7 +4,7 @@ DROP TABLE IF EXISTS t3; CREATE TABLE t3(c1 TIME NOT NULL); INSERT INTO t3 VALUES('00:00:00'); INSERT INTO t3 VALUES('23:59:59'); -INSERT INTO t3 VALUES('99:99:99'); +INSERT IGNORE INTO t3 VALUES('99:99:99'); INSERT INTO t3 VALUES('12:00:00'); INSERT INTO t3 VALUES('13:13:13'); DROP TABLE t3; diff --git a/mysql-test/suite/engines/iuds/r/delete_decimal.result b/mysql-test/suite/engines/iuds/r/delete_decimal.result index 4977c66776d..1925bef563d 100644 --- a/mysql-test/suite/engines/iuds/r/delete_decimal.result +++ b/mysql-test/suite/engines/iuds/r/delete_decimal.result @@ -1,7 +1,7 @@ DROP TABLE IF EXISTS t1,t2,t3,t4; CREATE TABLE t1(c1 DECIMAL(10,5) UNSIGNED NOT NULL, c2 DECIMAL(10,5) SIGNED NULL, c3 DECIMAL, c4 INT, UNIQUE INDEX idx(c1,c4)); INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -13,11 +13,11 @@ Note 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -183,17 +183,17 @@ c1 c2 c3 DROP TABLES IF EXISTS t1,t2,t3,t4; CREATE TABLE t1(c1 FLOAT(10,5) UNSIGNED NOT NULL, c2 FLOAT(10,5) SIGNED NULL, c3 FLOAT, c4 INT, UNIQUE INDEX idx(c1,c4)); INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -360,17 +360,17 @@ c1 c2 c3 DROP TABLES IF EXISTS t1,t2,t3,t4; CREATE TABLE t1(c1 DOUBLE(10,5) UNSIGNED NOT NULL, c2 DOUBLE(10,5) SIGNED NULL, c3 DOUBLE, c4 INT, UNIQUE INDEX idx(c1,c4)); INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 diff --git a/mysql-test/suite/engines/iuds/r/insert_decimal.result b/mysql-test/suite/engines/iuds/r/insert_decimal.result index 77e9901cbd5..a341de58946 100644 --- a/mysql-test/suite/engines/iuds/r/insert_decimal.result +++ b/mysql-test/suite/engines/iuds/r/insert_decimal.result @@ -11,7 +11,7 @@ Note 1265 Data truncated for column 'c1' at row 1 INSERT INTO t1 VALUES('99999.99999','-99999.99999','99999.99999',3); Warnings: Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); +INSERT IGNORE INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT * FROM t1; @@ -19,6 +19,7 @@ c1 c2 c3 c4 100.05000 -100.05000 100 1 12345.00001 NULL NULL NULL 99999.99999 -99999.99999 100000 3 +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); ERROR 23000: Duplicate entry '99999.99999--99999.99999' for key 'idx' DELETE FROM t1 WHERE c1='99999.99999' AND c2='-99999.99999'; @@ -26,30 +27,30 @@ SELECT * FROM t1; c1 c2 c3 c4 100.05000 -100.05000 100 1 12345.00001 NULL NULL NULL -INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); +INSERT IGNORE INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t2 VALUES('10000000000','-10000000000','10000000000',6); +INSERT IGNORE INTO t2 VALUES('10000000000','-10000000000','10000000000',6); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 insert into t1 values ("0.0","0.0","0.0",7),("01.0","01.0","01.0",10); -insert into t1 values ("-.1","-.1","-.1",13); +insert ignore into t1 values ("-.1","-.1","-.1",13); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -insert into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); +insert ignore into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -insert into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); +insert ignore into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); Warnings: Warning 1264 Out of range value for column 'c2' at row 6 -insert into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); +insert ignore into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); Warnings: Note 1265 Data truncated for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60,10 +61,10 @@ Note 1265 Data truncated for column 'c3' at row 2 Note 1265 Data truncated for column 'c1' at row 3 Note 1265 Data truncated for column 'c2' at row 3 Note 1265 Data truncated for column 'c3' at row 3 -insert into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); +insert ignore into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); Warnings: Warning 1264 Out of range value for column 'c2' at row 3 -insert into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); +insert ignore into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); Warnings: Note 1265 Data truncated for column 'c1' at row 1 Note 1265 Data truncated for column 'c2' at row 1 @@ -74,7 +75,7 @@ Note 1265 Data truncated for column 'c3' at row 2 Note 1265 Data truncated for column 'c1' at row 3 Warning 1264 Out of range value for column 'c2' at row 3 Note 1265 Data truncated for column 'c3' at row 3 -insert into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); +insert ignore into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); Warnings: Note 1265 Data truncated for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85,7 +86,7 @@ Note 1265 Data truncated for column 'c3' at row 2 Note 1265 Data truncated for column 'c1' at row 3 Note 1265 Data truncated for column 'c2' at row 3 Note 1265 Data truncated for column 'c3' at row 3 -insert into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); +insert ignore into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -96,7 +97,7 @@ Note 1265 Data truncated for column 'c3' at row 2 Warning 1264 Out of range value for column 'c1' at row 3 Warning 1264 Out of range value for column 'c2' at row 3 Warning 1264 Out of range value for column 'c3' at row 3 -insert into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); +insert ignore into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -104,7 +105,7 @@ Warning 1264 Out of range value for column 'c3' at row 1 Note 1265 Data truncated for column 'c1' at row 2 Note 1265 Data truncated for column 'c2' at row 2 Note 1265 Data truncated for column 'c3' at row 2 -insert into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); +insert ignore into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -945,13 +946,13 @@ c1 MIN(c2) 12345.00001 NULL 99999.99999 -99999.99999 CREATE TABLE t5(c1 DECIMAL(65,0) UNSIGNED NOT NULL, c2 DECIMAL(65,0) SIGNED NULL, c3 DECIMAL, c4 INT, INDEX idx(c1,c2)); -INSERT INTO t5 VALUES('1e+64','-1e+64','1e+64',1),('1e-64','-1e-64','1e-64',2); +INSERT IGNORE INTO t5 VALUES('1e+64','-1e+64','1e+64',1),('1e-64','-1e-64','1e-64',2); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 Note 1265 Data truncated for column 'c1' at row 2 Note 1265 Data truncated for column 'c2' at row 2 Note 1265 Data truncated for column 'c3' at row 2 -INSERT INTO t5 VALUES('1.2e+65','-1.2e+65','1.2e+65',3),('1.2e-65','-1.2e-65','1.2e-65',4); +INSERT IGNORE INTO t5 VALUES('1.2e+65','-1.2e+65','1.2e+65',3),('1.2e-65','-1.2e-65','1.2e-65',4); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -1022,7 +1023,7 @@ INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100.05000',1); INSERT INTO t2 VALUES('-1000000000','1000000000','1000000000',2); INSERT INTO t1(c1) VALUES('12345.000009'); INSERT INTO t1 VALUES('99999.99999','-99999.99999','99999.99999',3); -INSERT INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); +INSERT IGNORE INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT * FROM t1; @@ -1030,41 +1031,42 @@ c1 c2 c3 c4 100.05000 -100.05000 100.05 1 12345.00000 NULL NULL NULL 100000.00000 -100000.00000 100000 3 +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); ERROR 23000: Duplicate entry '100000.00000--100000.00000' for key 'idx' DELETE FROM t1 WHERE c1='100000.00000' AND c2='-100000.00000'; -INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); +INSERT IGNORE INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 -INSERT INTO t2 VALUES('10000000000','-10000000000','10000000000',6); +INSERT IGNORE INTO t2 VALUES('10000000000','-10000000000','10000000000',6); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 insert into t1 values ("0.0","0.0","0.0",7),("01.0","01.0","01.0",10); -insert into t1 values ("-.1","-.1","-.1",13); +insert ignore into t1 values ("-.1","-.1","-.1",13); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -insert into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); +insert ignore into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 -insert into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); +insert ignore into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); Warnings: Warning 1264 Out of range value for column 'c2' at row 6 -insert into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); +insert ignore into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 -insert into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); +insert ignore into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); Warnings: Warning 1264 Out of range value for column 'c2' at row 3 -insert into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); +insert ignore into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); Warnings: Warning 1264 Out of range value for column 'c2' at row 3 -insert into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); +insert ignore into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 -insert into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); +insert ignore into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 1 @@ -1078,7 +1080,7 @@ Warning 1264 Out of range value for column 'c2' at row 3 Warning 1264 Out of range value for column 'c2' at row 3 Warning 1264 Out of range value for column 'c3' at row 3 Warning 1264 Out of range value for column 'c3' at row 3 -insert into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); +insert ignore into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 1 @@ -1086,7 +1088,7 @@ Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -insert into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); +insert ignore into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 1 @@ -1882,18 +1884,20 @@ c1 MIN(c2) CREATE TABLE t5(c1 FLOAT(23,0) UNSIGNED NOT NULL, c2 FLOAT(23,0) SIGNED NULL, c3 FLOAT, c4 INT, INDEX idx(c1,c2)); INSERT INTO t5 VALUES('1e+22','-1e+22','1e+22',1),('1e-22','-1e-22','1e-22',2); SELECT * FROM t5; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t5 CHANGE c1 c1 FLOAT(24,0) SIGNED NOT NULL, CHANGE c2 c2 FLOAT(24,0) UNSIGNED NULL; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 INSERT INTO t5 VALUES('-1e+23','1e+23','1e+23',3),('-1e-23','1e-23','1e-23',4); SELECT * FROM t5; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t5 CHANGE c1 c1 FLOAT(53,0) UNSIGNED, CHANGE c2 c2 FLOAT(53,0) SIGNED; Warnings: Warning 1264 Out of range value for column 'c1' at row 3 -INSERT INTO t5 VALUES('1e+52','-1e+52','1e+52',5),('1e-52','-1e-52','1e-52',6); +INSERT IGNORE INTO t5 VALUES('1e+52','-1e+52','1e+52',5),('1e-52','-1e-52','1e-52',6); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t5 VALUES('1e+53','-1e+53','1e+53',7),('1e-53','-1e-53','1e-53',8); +INSERT IGNORE INTO t5 VALUES('1e+53','-1e+53','1e+53',7),('1e-53','-1e-53','1e-53',8); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 SELECT * FROM t5; @@ -1922,7 +1926,7 @@ INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100.05000',1); INSERT INTO t2 VALUES('-1000000000','1000000000','1000000000',2); INSERT INTO t1(c1) VALUES('12345.000009'); INSERT INTO t1 VALUES('99999.99999','-99999.99999','99999.99999',3); -INSERT INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); +INSERT IGNORE INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT * FROM t1; @@ -1930,41 +1934,42 @@ c1 c2 c3 c4 100.05000 -100.05000 100.05 1 12345.00001 NULL NULL NULL 99999.99999 -99999.99999 99999.99999 3 +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); ERROR 23000: Duplicate entry '99999.99999--99999.99999' for key 'idx' DELETE FROM t1 WHERE c1='99999.99999' AND c2='-99999.99999'; -INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); +INSERT IGNORE INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 -INSERT INTO t2 VALUES('10000000000','-10000000000','10000000000',6); +INSERT IGNORE INTO t2 VALUES('10000000000','-10000000000','10000000000',6); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 insert into t1 values ("0.0","0.0","0.0",7),("01.0","01.0","01.0",10); -insert into t1 values ("-.1","-.1","-.1",13); +insert ignore into t1 values ("-.1","-.1","-.1",13); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -insert into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); +insert ignore into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 -insert into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); +insert ignore into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); Warnings: Warning 1264 Out of range value for column 'c2' at row 6 -insert into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); +insert ignore into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 -insert into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); +insert ignore into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); Warnings: Warning 1264 Out of range value for column 'c2' at row 3 -insert into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); +insert ignore into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); Warnings: Warning 1264 Out of range value for column 'c2' at row 3 -insert into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); +insert ignore into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 -insert into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); +insert ignore into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 1 @@ -1976,14 +1981,14 @@ Warning 1264 Out of range value for column 'c1' at row 3 Warning 1264 Out of range value for column 'c2' at row 3 Warning 1264 Out of range value for column 'c2' at row 3 Warning 1264 Out of range value for column 'c3' at row 3 -insert into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); +insert ignore into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -insert into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); +insert ignore into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 1 @@ -2824,11 +2829,13 @@ SELECT * FROM t5; c1 c2 c3 c4 0 0 1e-22 2 10000000000000000000000 -10000000000000000000000 1e22 1 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t5 CHANGE c1 c1 DOUBLE(24,0) SIGNED NOT NULL, CHANGE c2 c2 DOUBLE(24,0) UNSIGNED NULL; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 INSERT INTO t5 VALUES('-1e+23','1e+23','1e+23',3),('-1e-23','1e-23','1e-23',4); SELECT * FROM t5; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t5 CHANGE c1 c1 DOUBLE(53,0) UNSIGNED, CHANGE c2 c2 DOUBLE(53,0) SIGNED; Warnings: Warning 1264 Out of range value for column 'c1' at row 3 diff --git a/mysql-test/suite/engines/iuds/r/insert_number.result b/mysql-test/suite/engines/iuds/r/insert_number.result index 904a9697dc3..6119e624e8c 100644 --- a/mysql-test/suite/engines/iuds/r/insert_number.result +++ b/mysql-test/suite/engines/iuds/r/insert_number.result @@ -10,25 +10,25 @@ INSERT INTO t3 VALUES(101,-102,103,104,105,106,101),(101,-102,103,104,105,106,10 INSERT INTO t1 VALUES(105,NULL,102,103,104,105,106); INSERT INTO t2 VALUES(105,NULL,102,103,104,105,106); INSERT INTO t3 VALUES(105,NULL,102,103,104,105,106); -INSERT INTO t1 VALUES('','',17,18,19,20,21); +INSERT IGNORE INTO t1 VALUES('','',17,18,19,20,21); Warnings: Warning 1366 Incorrect integer value: '' for column 'c1' at row 1 Warning 1366 Incorrect integer value: '' for column 'c2' at row 1 -INSERT INTO t2 VALUES('','',17,18,19,20,21); +INSERT IGNORE INTO t2 VALUES('','',17,18,19,20,21); Warnings: Warning 1366 Incorrect integer value: '' for column 'c1' at row 1 Warning 1366 Incorrect integer value: '' for column 'c2' at row 1 -INSERT INTO t3 VALUES('','',17,18,19,20,21); +INSERT IGNORE INTO t3 VALUES('','',17,18,19,20,21); Warnings: Warning 1366 Incorrect integer value: '' for column 'c1' at row 1 Warning 1366 Incorrect integer value: '' for column 'c2' at row 1 -INSERT INTO t1 VALUES(-1,124,22,23,24,25,26); +INSERT IGNORE INTO t1 VALUES(-1,124,22,23,24,25,26); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES(-1,124,22,23,24,25,26); +INSERT IGNORE INTO t2 VALUES(-1,124,22,23,24,25,26); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t3 VALUES(-1,124,22,23,24,25,26); +INSERT IGNORE INTO t3 VALUES(-1,124,22,23,24,25,26); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t1 VALUES(0,124,27,28,29,30,31); @@ -37,15 +37,15 @@ INSERT INTO t3 VALUES(0,124,27,28,29,30,31); INSERT INTO t1 VALUES(0,0,32,32,34,35,36); INSERT INTO t2 VALUES(0,0,32,32,34,35,36); INSERT INTO t3 VALUES(0,0,32,32,34,35,36); -INSERT INTO t1 VALUES('101.34 a','a',37,38,39,40,41); +INSERT IGNORE INTO t1 VALUES('101.34 a','a',37,38,39,40,41); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1366 Incorrect integer value: 'a' for column 'c2' at row 1 -INSERT INTO t2 VALUES('101.34 a','a',37,38,39,40,41); +INSERT IGNORE INTO t2 VALUES('101.34 a','a',37,38,39,40,41); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1366 Incorrect integer value: 'a' for column 'c2' at row 1 -INSERT INTO t3 VALUES('101.34 a','a',37,38,39,40,41); +INSERT IGNORE INTO t3 VALUES('101.34 a','a',37,38,39,40,41); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1366 Incorrect integer value: 'a' for column 'c2' at row 1 @@ -1373,29 +1373,29 @@ INSERT INTO t5 VALUES(101,-102,-103,-104,105,106,107,108),(108,-109,-110,111,112 INSERT INTO t4 VALUES(0,32,33,34,35,36,37,38); INSERT INTO t5 VALUES(0,-32,-32,33,34,35,36,37); INSERT INTO t4(c1,c3,c4) VALUES(NULL,104,LAST_INSERT_ID()); -INSERT INTO t5(c1,c3,c4) VALUES(NULL,-104,LAST_INSERT_ID()); +INSERT IGNORE INTO t5(c1,c3,c4) VALUES(NULL,-104,LAST_INSERT_ID()); Warnings: Warning 1364 Field 'c2' doesn't have a default value -INSERT INTO t4 VALUES('','',17,18,19,20,21,22); +INSERT IGNORE INTO t4 VALUES('','',17,18,19,20,21,22); Warnings: Warning 1366 Incorrect integer value: '' for column 'c1' at row 1 Warning 1366 Incorrect integer value: '' for column 'c2' at row 1 -INSERT INTO t5 VALUES('','',-17,18,19,20,21,22); +INSERT IGNORE INTO t5 VALUES('','',-17,18,19,20,21,22); Warnings: Warning 1366 Incorrect integer value: '' for column 'c1' at row 1 Warning 1366 Incorrect integer value: '' for column 'c2' at row 1 -INSERT INTO t4 VALUES('102.34 a','a','a',37,38,39,40,41); +INSERT IGNORE INTO t4 VALUES('102.34 a','a','a',37,38,39,40,41); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1366 Incorrect integer value: 'a' for column 'c2' at row 1 Warning 1366 Incorrect integer value: 'a' for column 'c3' at row 1 -INSERT INTO t5 VALUES('102.34 a','a','a',37,38,39,40,41); +INSERT IGNORE INTO t5 VALUES('102.34 a','a','a',37,38,39,40,41); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1366 Incorrect integer value: 'a' for column 'c2' at row 1 Warning 1366 Incorrect integer value: 'a' for column 'c3' at row 1 INSERT INTO t4 VALUES(4,7,8,9,10,11,12,13); -INSERT INTO t5 VALUES(-1,-1,-1,8,9,10,11,12); +INSERT IGNORE INTO t5 VALUES(-1,-1,-1,8,9,10,11,12); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t4(c2,c3,c4,c5,c6,c7,c8) VALUES(101,102,104,105,106,107,108),(108,109,111,112,113,114,115),(115,116,118,119,120,121,122),(122,123,125,126,127,128,128); @@ -2310,12 +2310,14 @@ c2 MIN(c3) 32 33 7 8 NULL 104 +SET STATEMENT sql_mode = '' FOR INSERT INTO t2(c1) VALUES(NULL); ERROR 23000: Column 'c1' cannot be null INSERT INTO t3 VALUES(NULL,1,2,3,4,5,6); ERROR 23000: Column 'c1' cannot be null INSERT INTO t4(c3) VALUES(NULL); ERROR 23000: Column 'c3' cannot be null +SET STATEMENT sql_mode = '' FOR INSERT INTO t5(c3) VALUES(NULL); ERROR 23000: Column 'c3' cannot be null INSERT INTO t4(c1,c3) VALUES(-101,105) /*throws error as the row with c1=-101 exists */; @@ -2324,6 +2326,7 @@ INSERT INTO t2(c1,c6) VALUES(101,106) /*throws error as the row with c1=101,c6=1 ERROR 23000: Duplicate entry '101-106' for key 'PRIMARY' INSERT INTO t5(c1,c2,c3) VALUES(101,-102,4) /*throws error as the row with c1=101,c2=-102 exists */; ERROR 23000: Duplicate entry '101--102' for key 'PRIMARY' +SET STATEMENT sql_mode = '' FOR INSERT INTO t5(c3) VALUES(-103) /*throws error as the row with c3=-103 exists */; ERROR 23000: Duplicate entry '-103' for key 'c3' INSERT INTO t4(c2,c3) VALUES(102,103) /*throws error as the row with c2=102,c3=103 exists */; @@ -2368,7 +2371,7 @@ INSERT INTO t6(c1) VALUES(0),(1),(2),(3),(3),(4),(4),(5); INSERT INTO t7(c1) SELECT c1 FROM t6; ERROR 23000: Duplicate entry '3' for key 'PRIMARY' TRUNCATE TABLE t6; -INSERT INTO t6 VALUES(5,-1,1,1,1,1,1),(6,-2,2,2,2,2,2),(0,-4,4,4,4,4,4),(NULL,-5,5,5,5,5,5); +INSERT IGNORE INTO t6 VALUES(5,-1,1,1,1,1,1),(6,-2,2,2,2,2,2),(0,-4,4,4,4,4,4),(NULL,-5,5,5,5,5,5); Warnings: Warning 1048 Column 'c1' cannot be null INSERT INTO t8 SELECT * FROM t6; @@ -2388,7 +2391,7 @@ SELECT * FROM t8; c1 c2 c3 c4 c5 c6 c7 1 -2 NULL NULL NULL NULL NULL DROP TABLE t6,t7,t8; -INSERT INTO t2 SET c3=5,c4=6; +INSERT IGNORE INTO t2 SET c3=5,c4=6; Warnings: Warning 1364 Field 'c1' doesn't have a default value Warning 1364 Field 'c6' doesn't have a default value diff --git a/mysql-test/suite/engines/iuds/r/insert_time.result b/mysql-test/suite/engines/iuds/r/insert_time.result index 6680886aad1..fdda49a36c1 100644 --- a/mysql-test/suite/engines/iuds/r/insert_time.result +++ b/mysql-test/suite/engines/iuds/r/insert_time.result @@ -24,19 +24,21 @@ INSERT INTO t1 VALUES('8:3:2','8:3:2','2009-01-18'),('1112','1112','2009-01-19') INSERT INTO t2 VALUES('8:3:2','8:3:2','2009-01-18'),('1112','1112','2009-01-19'),(11,11,'2009-01-20'),('00:12:30','00:12:30','2009-01-23'),('9:00:45','9:00:45','2009-01-24'),('9:36:00','9:36:00','2009-01-25'); INSERT INTO t3 VALUES('8:3:2','8:3:2','2009-01-18'),('1112','1112','2009-01-19'),(11,11,'2009-01-20'),('00:12:30','00:12:30','2009-01-23'),('9:00:45','9:00:45','2009-01-24'),('9:36:00','9:36:00','2009-01-25'); INSERT INTO t4 VALUES('8:3:2','8:3:2','2009-01-18'),('1112','1112','2009-01-19'),(11,11,'2009-01-20'),('00:12:30','00:12:30','2009-01-23'),('9:00:45','9:00:45','2009-01-24'),('9:36:00','9:36:00','2009-01-25'); +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('-850:00:00','-850:00:00','2009-01-21'); ERROR 23000: Duplicate entry '-838:59:59' for key 'PRIMARY' +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('850:00:00','850:00:00','2009-01-21'); ERROR 23000: Duplicate entry '838:59:59' for key 'PRIMARY' DELETE FROM t1 WHERE c1='-838:59:59' AND c2='-838:59:59'; DELETE FROM t1 WHERE c1='838:59:59' AND c2='838:59:59'; -INSERT INTO t1 VALUES('-850:00:00','-850:00:00','2009-01-21'),('850:00:00','850:00:00','2009-01-21'); +INSERT IGNORE INTO t1 VALUES('-850:00:00','-850:00:00','2009-01-21'),('850:00:00','850:00:00','2009-01-21'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 -INSERT INTO t4 VALUES('10.22.22','10.22.22','2009-01-26'),(1234567,1234567,'2009-01-27'),(123456789,123456789,'2009-01-28'),(123456789.10,123456789.10,'2009-01-29'),('10 22:22','10 22:22','2009-01-30'),('12.45a','12.45a','2009-01-31'); +INSERT IGNORE INTO t4 VALUES('10.22.22','10.22.22','2009-01-26'),(1234567,1234567,'2009-01-27'),(123456789,123456789,'2009-01-28'),(123456789.10,123456789.10,'2009-01-29'),('10 22:22','10 22:22','2009-01-30'),('12.45a','12.45a','2009-01-31'); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 @@ -5104,7 +5106,7 @@ c1 c2 c3 INSERT INTO t1 SET c1='07:23:55',c2='13 06:23:55'; INSERT INTO t2 SET c1='07:23:55',c2='13 06:23:55'; INSERT INTO t3 SET c1='07:23:55'; -INSERT INTO t4 SET c2='07:23:55'; +INSERT IGNORE INTO t4 SET c2='07:23:55'; Warnings: Warning 1364 Field 'c1' doesn't have a default value SELECT * FROM t1 WHERE c1='07:23:55' AND c2='13 06:23:55' /* Returns 1 row with values for other column as NULL */; @@ -5155,7 +5157,7 @@ c1 c2 c3 08:29:45 NULL 2009-02-01 00:00:00 07:23:55 NULL TRUNCATE TABLE t5; -INSERT INTO t5 SELECT * FROM t4 WHERE c1 >='12colon34colon56'; +INSERT IGNORE INTO t5 SELECT * FROM t4 WHERE c1 >='12colon34colon56'; Warnings: Warning 1292 Truncated incorrect time value: '12colon34colon56' SELECT * FROM t5; diff --git a/mysql-test/suite/engines/iuds/r/insert_year.result b/mysql-test/suite/engines/iuds/r/insert_year.result index aa472c45d82..ea6e10d130b 100644 --- a/mysql-test/suite/engines/iuds/r/insert_year.result +++ b/mysql-test/suite/engines/iuds/r/insert_year.result @@ -14,41 +14,41 @@ INSERT INTO t3 VALUES('00','10','98-12-17','98.12.17 11:30:45'),('20','20','98-1 INSERT INTO t4 VALUES('00','00','98-12-17','98.12.17 11:30:45'),('20','20','98-12-16','98.12.16 11:30:45'),('40','40','98-12-15','98.12.15 11:30:45'),('60','60','98-12-14','98.12.14 11:30:45'),('69','69','98-12-13','98.12.13 11:30:45'),('70','70','98-12-12','98.12.12 11:30:45'),('90','90','98-12-11','98.12.11 11:30:45'),('99','99','98-12-10','98.12.10 11:30:45'); INSERT INTO t4 VALUES(1,1,'98-12-9','98.12.9 11:30:45'),(20,20,'98-12-8','98.12.8 11:30:45'),(40,40,'98-12-7','98.12.7 11:30:45'),(60,60,'98-12-6','98.12.6 11:30:45'),(69,69,'98-12-5','98.12.5 11:30:45'),(70,70,'98-12-4','98.12.4 11:30:45'),(90,90,'98-12-3','98.12.3 11:30:45'),(99,99,'98-12-2','98.12.2 11:30:45'); SET TIMESTAMP=1233216687; -INSERT INTO t1 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t1 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t2 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t2 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t3 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t3 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t4 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t4 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 INSERT INTO t1(c1) VALUES('5'); -INSERT INTO t2(c1) VALUES('5'); +INSERT IGNORE INTO t2(c1) VALUES('5'); Warnings: Warning 1364 Field 'c2' doesn't have a default value INSERT INTO t3(c1) VALUES('5'); INSERT INTO t4(c1,c2) VALUES('0','000'); -INSERT INTO t2 VALUES(1900,2156,'08-01-06','08/01/07'); +INSERT IGNORE INTO t2 VALUES(1900,2156,'08-01-06','08/01/07'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 -INSERT INTO t3 VALUES('1900','2156','08-01-08','08/1/9'); +INSERT IGNORE INTO t3 VALUES('1900','2156','08-01-08','08/1/9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 -INSERT INTO t4 VALUES('1900','2156','08-01-08','08/1/9'),(1900,2156,'08-01-08','08/1/9'),(0,00,'08-01-08','08/1/9'),(000,000,'08-01-08','08/1/9'),('-20','100','08-01-08','08/1/9'),(-20,100,'08-01-08','08/1/9'); +INSERT IGNORE INTO t4 VALUES('1900','2156','08-01-08','08/1/9'),(1900,2156,'08-01-08','08/1/9'),(0,00,'08-01-08','08/1/9'),(000,000,'08-01-08','08/1/9'),('-20','100','08-01-08','08/1/9'),(-20,100,'08-01-08','08/1/9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -58,11 +58,11 @@ Warning 1264 Out of range value for column 'c1' at row 5 Warning 1264 Out of range value for column 'c2' at row 5 Warning 1264 Out of range value for column 'c1' at row 6 Warning 1264 Out of range value for column 'c2' at row 6 -INSERT INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; +INSERT IGNORE INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; Warnings: Warning 1366 Incorrect integer value: '' for column 'c1' at row 1 Warning 1366 Incorrect integer value: '' for column 'c2' at row 1 -INSERT INTO t4 VALUES('abcd','abcd','08-01-10','08/01/11'),(1234,1234,'08-01-12','08/01/13') /* Inserts zero dates for absurd dates */; +INSERT IGNORE INTO t4 VALUES('abcd','abcd','08-01-10','08/01/11'),(1234,1234,'08-01-12','08/01/13') /* Inserts zero dates for absurd dates */; Warnings: Warning 1366 Incorrect integer value: 'abcd' for column 'c1' at row 1 Warning 1366 Incorrect integer value: 'abcd' for column 'c2' at row 1 @@ -3219,11 +3219,11 @@ c1 c2 c3 c4 TRUNCATE TABLE t5; DROP TABLE t5; INSERT INTO t1 SET c1='00'; -INSERT INTO t2 SET c1=69; +INSERT IGNORE INTO t2 SET c1=69; Warnings: Warning 1364 Field 'c2' doesn't have a default value INSERT INTO t3 SET c1=70; -INSERT INTO t4 SET c2=99; +INSERT IGNORE INTO t4 SET c2=99; Warnings: Warning 1364 Field 'c1' doesn't have a default value SELECT * FROM t1 WHERE c1=0; @@ -3273,41 +3273,41 @@ INSERT INTO t3 VALUES('00','10','98-12-17','98.12.17 11:30:45'),('20','20','98-1 INSERT INTO t4 VALUES('00','00','98-12-17','98.12.17 11:30:45'),('20','20','98-12-16','98.12.16 11:30:45'),('40','40','98-12-15','98.12.15 11:30:45'),('60','60','98-12-14','98.12.14 11:30:45'),('69','69','98-12-13','98.12.13 11:30:45'),('70','70','98-12-12','98.12.12 11:30:45'),('90','90','98-12-11','98.12.11 11:30:45'),('99','99','98-12-10','98.12.10 11:30:45'); INSERT INTO t4 VALUES(1,1,'98-12-9','98.12.9 11:30:45'),(20,20,'98-12-8','98.12.8 11:30:45'),(40,40,'98-12-7','98.12.7 11:30:45'),(60,60,'98-12-6','98.12.6 11:30:45'),(69,69,'98-12-5','98.12.5 11:30:45'),(70,70,'98-12-4','98.12.4 11:30:45'),(90,90,'98-12-3','98.12.3 11:30:45'),(99,99,'98-12-2','98.12.2 11:30:45'); SET TIMESTAMP=1233216687; -INSERT INTO t1 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t1 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t2 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t2 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t3 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t3 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t4 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t4 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 INSERT INTO t1(c1) VALUES('5'); -INSERT INTO t2(c1) VALUES('5'); +INSERT IGNORE INTO t2(c1) VALUES('5'); Warnings: Warning 1364 Field 'c2' doesn't have a default value INSERT INTO t3(c1) VALUES('5'); INSERT INTO t4(c1,c2) VALUES('0','000'); -INSERT INTO t2 VALUES(1900,2156,'08-01-06','08/01/07'); +INSERT IGNORE INTO t2 VALUES(1900,2156,'08-01-06','08/01/07'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 -INSERT INTO t3 VALUES('1900','2156','08-01-08','08/1/9'); +INSERT IGNORE INTO t3 VALUES('1900','2156','08-01-08','08/1/9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 -INSERT INTO t4 VALUES('1900','2156','08-01-08','08/1/9'),(1900,2156,'08-01-08','08/1/9'),(0,00,'08-01-08','08/1/9'),(000,000,'08-01-08','08/1/9'),('-20','100','08-01-08','08/1/9'),(-20,100,'08-01-08','08/1/9'); +INSERT IGNORE INTO t4 VALUES('1900','2156','08-01-08','08/1/9'),(1900,2156,'08-01-08','08/1/9'),(0,00,'08-01-08','08/1/9'),(000,000,'08-01-08','08/1/9'),('-20','100','08-01-08','08/1/9'),(-20,100,'08-01-08','08/1/9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3317,11 +3317,11 @@ Warning 1264 Out of range value for column 'c1' at row 5 Warning 1264 Out of range value for column 'c2' at row 5 Warning 1264 Out of range value for column 'c1' at row 6 Warning 1264 Out of range value for column 'c2' at row 6 -INSERT INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; +INSERT IGNORE INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; Warnings: Warning 1366 Incorrect integer value: '' for column 'c1' at row 1 Warning 1366 Incorrect integer value: '' for column 'c2' at row 1 -INSERT INTO t4 VALUES('abcd','abcd','08-01-10','08/01/11'),(1234,1234,'08-01-12','08/01/13') /* Inserts zero dates for absurd dates */; +INSERT IGNORE INTO t4 VALUES('abcd','abcd','08-01-10','08/01/11'),(1234,1234,'08-01-12','08/01/13') /* Inserts zero dates for absurd dates */; Warnings: Warning 1366 Incorrect integer value: 'abcd' for column 'c1' at row 1 Warning 1366 Incorrect integer value: 'abcd' for column 'c2' at row 1 @@ -6188,11 +6188,11 @@ c1 c2 c3 c4 TRUNCATE TABLE t5; DROP TABLE t5; INSERT INTO t1 SET c1='00'; -INSERT INTO t2 SET c1=69; +INSERT IGNORE INTO t2 SET c1=69; Warnings: Warning 1364 Field 'c2' doesn't have a default value INSERT INTO t3 SET c1=70; -INSERT INTO t4 SET c2=99; +INSERT IGNORE INTO t4 SET c2=99; Warnings: Warning 1364 Field 'c1' doesn't have a default value SELECT * FROM t1 WHERE c1=0; diff --git a/mysql-test/suite/engines/iuds/r/strings_update_delete.result b/mysql-test/suite/engines/iuds/r/strings_update_delete.result index 159d2608ea1..56dd0cf4d12 100644 --- a/mysql-test/suite/engines/iuds/r/strings_update_delete.result +++ b/mysql-test/suite/engines/iuds/r/strings_update_delete.result @@ -70348,7 +70348,7 @@ DROP TABLE t3,t4,t5; CREATE TABLE t6 (a char(2) not null primary key, b varchar(20) not null, key (b)); CREATE TABLE t7 (a char(2) not null primary key, b varchar(20) not null, key (b)); INSERT INTO t6 values ('AB','MySQLAB'),('JA','Sun Microsystems'),('MS','Microsoft'),('IB','IBM- Inc.'),('GO','Google Inc.'); -INSERT INTO t7 values ('AB','Sweden'),('JA','USA'),('MS','United States of Amercica'),('IB','North America'),('GO','South America'); +INSERT IGNORE INTO t7 values ('AB','Sweden'),('JA','USA'),('MS','United States of Amercica'),('IB','North America'),('GO','South America'); Warnings: Warning 1265 Data truncated for column 'b' at row 3 update t6,t7 set t6.a=LCASE(t6.a); @@ -70423,7 +70423,7 @@ INSERT INTO t16 VALUES (('d,a,d,d')); SELECT c1 FROM t16; c1 a,d -INSERT INTO t16 (c1) VALUES ('a,b,d'),('d,A ,b'); +INSERT IGNORE INTO t16 (c1) VALUES ('a,b,d'),('d,A ,b'); Warnings: Warning 1265 Data truncated for column 'c1' at row 2 SELECT c1 FROM t16; @@ -70431,7 +70431,7 @@ c1 a,b,d a,d b,d -INSERT INTO t16 (c1) VALUES ('f,a,b'); +INSERT IGNORE INTO t16 (c1) VALUES ('f,a,b'); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 SHOW WARNINGS; @@ -70443,6 +70443,7 @@ a,b a,b,d a,d b,d +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t17 (c1 SET('a','b','a','b')); Warnings: Note 1291 Column 'c1' has duplicated value 'a' in SET @@ -70453,7 +70454,7 @@ Note 1291 Column 'c1' has duplicated value 'a' in SET Note 1291 Column 'c1' has duplicated value 'b' in SET CREATE TABLE t18 (c1 CHAR(4),c2 enum('SMALL','MEDIUM','LARGE','VERY LARGE')); INSERT INTO t18 VALUES('SIZE', 'SMALL'); -INSERT INTO t18 VALUES('SIZE', 'SMALL1'); +INSERT IGNORE INTO t18 VALUES('SIZE', 'SMALL1'); Warnings: Warning 1265 Data truncated for column 'c2' at row 1 SELECT * FROM t18 WHERE c2=0; diff --git a/mysql-test/suite/engines/iuds/r/type_bit_iuds.result b/mysql-test/suite/engines/iuds/r/type_bit_iuds.result index 5051293e238..2c84abfd49d 100644 --- a/mysql-test/suite/engines/iuds/r/type_bit_iuds.result +++ b/mysql-test/suite/engines/iuds/r/type_bit_iuds.result @@ -120,7 +120,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -353,7 +353,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -402,7 +402,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -447,7 +447,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -536,7 +536,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -564,11 +564,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -639,7 +639,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -746,7 +746,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -798,13 +798,13 @@ INSERT INTO t1 VALUES (b'0'); set @v3=repeat('01',@v2); INSERT INTO t1 VALUES (b'01'); set @v3=repeat('10',@v2); -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -944,7 +944,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -1184,7 +1184,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -1233,7 +1233,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -1278,7 +1278,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -1367,7 +1367,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -1395,11 +1395,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -1470,7 +1470,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -1577,7 +1577,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -1633,7 +1633,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -1651,7 +1651,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -1813,7 +1813,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -2041,7 +2041,7 @@ hex(c1) hex(c2) 3 3 0 3 CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -2090,7 +2090,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -2135,7 +2135,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -2218,7 +2218,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -2246,13 +2246,13 @@ hex(c1) hex(c2) 1 1 2 2 3 3 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 3 2 2 3 3 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 3 @@ -2324,7 +2324,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -2425,7 +2425,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -2483,7 +2483,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -2501,7 +2501,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -2519,7 +2519,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -2537,7 +2537,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -2743,7 +2743,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3024,7 +3024,7 @@ hex(c1) hex(c2) F F 9 F CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -3073,7 +3073,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -3150,7 +3150,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT hex(c1),hex(c2) FROM t5; @@ -3178,7 +3178,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 B @@ -3191,7 +3191,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -3262,7 +3262,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3397,7 +3397,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3415,7 +3415,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3433,7 +3433,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3451,7 +3451,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3469,7 +3469,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3487,7 +3487,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3505,7 +3505,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3523,7 +3523,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3775,7 +3775,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -4281,11 +4281,11 @@ _ a z ~ -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 2 @@ -4296,7 +4296,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -4396,7 +4396,7 @@ hex(c1) hex(c2) 7F FF 9 FF SET SQL_MODE=DEFAULT; -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 0 8E @@ -4508,7 +4508,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -4596,7 +4596,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4614,7 +4614,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4632,7 +4632,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4650,7 +4650,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4668,7 +4668,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4686,7 +4686,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4704,7 +4704,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4722,7 +4722,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4740,7 +4740,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4758,7 +4758,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4776,7 +4776,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4794,7 +4794,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4812,7 +4812,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4830,7 +4830,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4848,7 +4848,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -4866,7 +4866,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -5746,7 +5746,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -6000,7 +6000,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6018,7 +6018,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6036,7 +6036,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6054,7 +6054,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6072,7 +6072,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6090,7 +6090,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6108,7 +6108,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6126,7 +6126,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6144,7 +6144,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6162,7 +6162,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6180,7 +6180,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6198,7 +6198,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6216,7 +6216,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6234,7 +6234,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6252,7 +6252,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6270,7 +6270,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6288,7 +6288,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6306,7 +6306,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6324,7 +6324,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6342,7 +6342,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6360,7 +6360,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6378,7 +6378,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6396,7 +6396,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6414,7 +6414,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6432,7 +6432,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6450,7 +6450,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6468,7 +6468,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6486,7 +6486,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6504,7 +6504,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6522,7 +6522,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -6540,7 +6540,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -6557,7 +6557,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 INSERT INTO t1 VALUES (b'0'); @@ -7817,7 +7817,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -8071,7 +8071,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8089,7 +8089,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8107,7 +8107,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8125,7 +8125,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8143,7 +8143,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8161,7 +8161,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8179,7 +8179,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8197,7 +8197,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8215,7 +8215,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8233,7 +8233,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8251,7 +8251,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8269,7 +8269,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8287,7 +8287,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8305,7 +8305,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8323,7 +8323,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8341,7 +8341,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8359,7 +8359,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8377,7 +8377,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8395,7 +8395,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8413,7 +8413,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8431,7 +8431,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8449,7 +8449,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8467,7 +8467,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8485,7 +8485,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8503,7 +8503,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8521,7 +8521,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8539,7 +8539,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8557,7 +8557,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8575,7 +8575,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8593,7 +8593,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8611,7 +8611,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8629,7 +8629,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8647,7 +8647,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8665,7 +8665,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8683,7 +8683,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8701,7 +8701,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8719,7 +8719,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8737,7 +8737,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8755,7 +8755,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8773,7 +8773,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8791,7 +8791,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8809,7 +8809,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8827,7 +8827,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8845,7 +8845,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8863,7 +8863,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8881,7 +8881,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8899,7 +8899,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8917,7 +8917,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8935,7 +8935,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8953,7 +8953,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8971,7 +8971,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -8989,7 +8989,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -9007,7 +9007,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -9025,7 +9025,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -9043,7 +9043,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -9061,7 +9061,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -9079,7 +9079,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -9097,7 +9097,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -9115,7 +9115,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -9132,7 +9132,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 set @v1=4; @@ -9148,7 +9148,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); set @v1=3; set @v2=3/2; set @v3=repeat('1',@v1); @@ -9162,7 +9162,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); set @v1=2; set @v2=2/2; set @v3=repeat('1',@v1); @@ -9176,7 +9176,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); set @v1=1; set @v2=1/2; set @v3=repeat('1',@v1); @@ -9190,7 +9190,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); INSERT INTO t1 VALUES (b'0'); INSERT INTO t2 VALUES (b'0', b'0', b'0'); SELECT HEX(c1) FROM t1; @@ -11349,7 +11349,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -11582,7 +11582,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -11631,7 +11631,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -11676,7 +11676,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -11765,7 +11765,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -11793,11 +11793,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -11868,7 +11868,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -11975,7 +11975,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -12027,13 +12027,13 @@ INSERT INTO t1 VALUES (b'0'); set @v3=repeat('01',@v2); INSERT INTO t1 VALUES (b'01'); set @v3=repeat('10',@v2); -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -12173,7 +12173,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -12413,7 +12413,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -12462,7 +12462,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -12507,7 +12507,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -12596,7 +12596,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -12624,11 +12624,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -12699,7 +12699,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -12806,7 +12806,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -12862,7 +12862,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -12880,7 +12880,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -13042,7 +13042,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -13270,7 +13270,7 @@ hex(c1) hex(c2) 3 3 0 3 CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -13319,7 +13319,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -13364,7 +13364,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -13447,7 +13447,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -13475,13 +13475,13 @@ hex(c1) hex(c2) 1 1 2 2 3 3 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 3 2 2 3 3 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 3 @@ -13553,7 +13553,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -13654,7 +13654,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -13712,7 +13712,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -13730,7 +13730,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -13748,7 +13748,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -13766,7 +13766,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -13972,7 +13972,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -14253,7 +14253,7 @@ hex(c1) hex(c2) F F 9 F CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -14302,7 +14302,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -14379,7 +14379,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT hex(c1),hex(c2) FROM t5; @@ -14407,7 +14407,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 B @@ -14420,7 +14420,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -14491,7 +14491,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -14626,7 +14626,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -14644,7 +14644,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -14662,7 +14662,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -14680,7 +14680,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -14698,7 +14698,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -14716,7 +14716,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -14734,7 +14734,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -14752,7 +14752,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15004,7 +15004,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -15510,11 +15510,11 @@ _ a z ~ -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 2 @@ -15525,7 +15525,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -15625,7 +15625,7 @@ hex(c1) hex(c2) 7F FF 9 FF SET SQL_MODE=DEFAULT; -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 0 8E @@ -15737,7 +15737,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -15825,7 +15825,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15843,7 +15843,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15861,7 +15861,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15879,7 +15879,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15897,7 +15897,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15915,7 +15915,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15933,7 +15933,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15951,7 +15951,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15969,7 +15969,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -15987,7 +15987,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -16005,7 +16005,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -16023,7 +16023,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -16041,7 +16041,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -16059,7 +16059,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -16077,7 +16077,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -16095,7 +16095,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -16975,7 +16975,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -17229,7 +17229,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17247,7 +17247,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17265,7 +17265,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17283,7 +17283,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17301,7 +17301,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17319,7 +17319,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17337,7 +17337,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17355,7 +17355,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17373,7 +17373,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17391,7 +17391,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17409,7 +17409,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17427,7 +17427,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17445,7 +17445,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17463,7 +17463,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17481,7 +17481,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17499,7 +17499,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17517,7 +17517,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17535,7 +17535,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17553,7 +17553,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17571,7 +17571,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17589,7 +17589,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17607,7 +17607,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17625,7 +17625,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17643,7 +17643,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17661,7 +17661,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17679,7 +17679,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17697,7 +17697,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17715,7 +17715,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17733,7 +17733,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17751,7 +17751,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -17769,7 +17769,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -17786,7 +17786,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 INSERT INTO t1 VALUES (b'1'); @@ -19046,7 +19046,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -19300,7 +19300,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19318,7 +19318,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19336,7 +19336,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19354,7 +19354,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19372,7 +19372,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19390,7 +19390,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19408,7 +19408,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19426,7 +19426,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19444,7 +19444,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19462,7 +19462,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19480,7 +19480,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19498,7 +19498,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19516,7 +19516,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19534,7 +19534,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19552,7 +19552,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19570,7 +19570,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19588,7 +19588,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19606,7 +19606,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19624,7 +19624,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19642,7 +19642,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19660,7 +19660,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19678,7 +19678,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19696,7 +19696,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19714,7 +19714,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19732,7 +19732,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19750,7 +19750,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19768,7 +19768,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19786,7 +19786,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19804,7 +19804,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19822,7 +19822,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19840,7 +19840,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19858,7 +19858,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19876,7 +19876,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19894,7 +19894,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19912,7 +19912,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19930,7 +19930,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19948,7 +19948,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19966,7 +19966,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -19984,7 +19984,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20002,7 +20002,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20020,7 +20020,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20038,7 +20038,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20056,7 +20056,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20074,7 +20074,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20092,7 +20092,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20110,7 +20110,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20128,7 +20128,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20146,7 +20146,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20164,7 +20164,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20182,7 +20182,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20200,7 +20200,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20218,7 +20218,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20236,7 +20236,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20254,7 +20254,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20272,7 +20272,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20290,7 +20290,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20308,7 +20308,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20326,7 +20326,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -20344,7 +20344,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -20361,7 +20361,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 set @v1=4; @@ -20377,7 +20377,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); set @v1=3; set @v2=3/2; set @v3=repeat('1',@v1); @@ -20391,7 +20391,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); set @v1=2; set @v2=2/2; set @v3=repeat('1',@v1); @@ -20405,7 +20405,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); set @v1=1; set @v2=1/2; set @v3=repeat('1',@v1); @@ -20419,7 +20419,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); INSERT INTO t1 VALUES (b'1'); INSERT INTO t2 VALUES (b'1', b'1', b'1'); SELECT HEX(c1) FROM t1; @@ -22465,10 +22465,10 @@ SELECT 0 + (10<<0); 10 CREATE TABLE t1(c1 BIT(0)); CREATE TABLE t2(c1 BIT(0), c2 BIT(0), c3 BIT(0)); -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10', b'10', b'10'); +INSERT IGNORE INTO t2 VALUES (b'10', b'10', b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -22584,7 +22584,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -22817,7 +22817,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -22866,7 +22866,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -22911,7 +22911,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -23000,7 +23000,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -23028,11 +23028,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -23103,7 +23103,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -23210,7 +23210,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -23262,21 +23262,21 @@ INSERT INTO t1 VALUES (b'0'); set @v3=repeat('01',@v2); INSERT INTO t1 VALUES (b'01'); set @v3=repeat('10',@v2); -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10', b'10', b'10'); +INSERT IGNORE INTO t2 VALUES (b'10', b'10', b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -23414,7 +23414,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -23654,7 +23654,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -23703,7 +23703,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -23748,7 +23748,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -23837,7 +23837,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -23865,11 +23865,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -23940,7 +23940,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -24047,7 +24047,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -24103,7 +24103,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -24121,7 +24121,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -24283,7 +24283,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -24511,7 +24511,7 @@ hex(c1) hex(c2) 3 3 0 3 CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -24560,7 +24560,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -24605,7 +24605,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -24688,7 +24688,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -24716,13 +24716,13 @@ hex(c1) hex(c2) 1 1 2 2 3 3 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 3 2 2 3 3 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 3 @@ -24794,7 +24794,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -24895,7 +24895,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -24953,7 +24953,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -24971,7 +24971,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -24989,7 +24989,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25007,7 +25007,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25213,7 +25213,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25494,7 +25494,7 @@ hex(c1) hex(c2) F F 9 F CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -25543,7 +25543,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -25620,7 +25620,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT hex(c1),hex(c2) FROM t5; @@ -25648,7 +25648,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 B @@ -25661,7 +25661,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -25732,7 +25732,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25867,7 +25867,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25885,7 +25885,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25903,7 +25903,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25921,7 +25921,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25939,7 +25939,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25957,7 +25957,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25975,7 +25975,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -25993,7 +25993,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -26245,7 +26245,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -26751,11 +26751,11 @@ _ a z ~ -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 2 @@ -26766,7 +26766,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -26866,7 +26866,7 @@ hex(c1) hex(c2) 7F FF 9 FF SET SQL_MODE=DEFAULT; -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 0 8E @@ -26978,7 +26978,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -27066,7 +27066,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27084,7 +27084,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27102,7 +27102,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27120,7 +27120,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27138,7 +27138,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27156,7 +27156,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27174,7 +27174,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27192,7 +27192,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27210,7 +27210,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27228,7 +27228,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27246,7 +27246,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27264,7 +27264,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27282,7 +27282,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27300,7 +27300,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27318,7 +27318,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -27336,7 +27336,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28216,7 +28216,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -28470,7 +28470,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28488,7 +28488,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28506,7 +28506,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28524,7 +28524,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28542,7 +28542,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28560,7 +28560,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28578,7 +28578,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28596,7 +28596,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28614,7 +28614,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28632,7 +28632,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28650,7 +28650,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28668,7 +28668,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28686,7 +28686,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28704,7 +28704,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28722,7 +28722,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28740,7 +28740,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28758,7 +28758,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28776,7 +28776,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28794,7 +28794,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28812,7 +28812,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28830,7 +28830,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28848,7 +28848,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28866,7 +28866,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28884,7 +28884,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28902,7 +28902,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28920,7 +28920,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28938,7 +28938,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28956,7 +28956,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28974,7 +28974,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -28992,7 +28992,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -29010,7 +29010,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -29027,7 +29027,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 INSERT INTO t1 VALUES (b'10'); @@ -30287,7 +30287,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -30541,7 +30541,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30559,7 +30559,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30577,7 +30577,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30595,7 +30595,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30613,7 +30613,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30631,7 +30631,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30649,7 +30649,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30667,7 +30667,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30685,7 +30685,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30703,7 +30703,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30721,7 +30721,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30739,7 +30739,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30757,7 +30757,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30775,7 +30775,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30793,7 +30793,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30811,7 +30811,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30829,7 +30829,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30847,7 +30847,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30865,7 +30865,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30883,7 +30883,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30901,7 +30901,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30919,7 +30919,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30937,7 +30937,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30955,7 +30955,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30973,7 +30973,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -30991,7 +30991,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31009,7 +31009,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31027,7 +31027,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31045,7 +31045,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31063,7 +31063,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31081,7 +31081,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31099,7 +31099,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31117,7 +31117,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31135,7 +31135,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31153,7 +31153,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31171,7 +31171,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31189,7 +31189,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31207,7 +31207,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31225,7 +31225,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31243,7 +31243,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31261,7 +31261,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31279,7 +31279,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31297,7 +31297,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31315,7 +31315,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31333,7 +31333,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31351,7 +31351,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31369,7 +31369,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31387,7 +31387,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31405,7 +31405,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31423,7 +31423,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31441,7 +31441,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31459,7 +31459,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31477,7 +31477,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31495,7 +31495,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31513,7 +31513,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31531,7 +31531,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31549,7 +31549,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31567,7 +31567,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -31585,7 +31585,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -31602,7 +31602,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 set @v1=4; @@ -31618,7 +31618,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); set @v1=3; set @v2=3/2; set @v3=repeat('1',@v1); @@ -31632,7 +31632,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); set @v1=2; set @v2=2/2; set @v3=repeat('1',@v1); @@ -31646,7 +31646,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); set @v1=1; set @v2=1/2; set @v3=repeat('1',@v1); @@ -31660,7 +31660,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); INSERT INTO t1 VALUES (b'10'); INSERT INTO t2 VALUES (b'10', b'10', b'10'); SELECT HEX(c1) FROM t1; @@ -33706,10 +33706,10 @@ SELECT 0 + (1010<<0); 1010 CREATE TABLE t1(c1 BIT(0)); CREATE TABLE t2(c1 BIT(0), c2 BIT(0), c3 BIT(0)); -INSERT INTO t1 VALUES (b'1010'); +INSERT IGNORE INTO t1 VALUES (b'1010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010', b'1010', b'1010'); +INSERT IGNORE INTO t2 VALUES (b'1010', b'1010', b'1010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -33825,7 +33825,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -34058,7 +34058,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -34107,7 +34107,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -34152,7 +34152,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -34241,7 +34241,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -34269,11 +34269,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -34344,7 +34344,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -34451,7 +34451,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -34503,21 +34503,21 @@ INSERT INTO t1 VALUES (b'0'); set @v3=repeat('01',@v2); INSERT INTO t1 VALUES (b'01'); set @v3=repeat('10',@v2); -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010'); +INSERT IGNORE INTO t1 VALUES (b'1010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010', b'1010', b'1010'); +INSERT IGNORE INTO t2 VALUES (b'1010', b'1010', b'1010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -34655,7 +34655,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -34895,7 +34895,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -34944,7 +34944,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -34989,7 +34989,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -35078,7 +35078,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -35106,11 +35106,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -35181,7 +35181,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -35288,7 +35288,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -35344,7 +35344,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -35362,15 +35362,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010'); +INSERT IGNORE INTO t1 VALUES (b'1010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010', b'1010', b'1010'); +INSERT IGNORE INTO t2 VALUES (b'1010', b'1010', b'1010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -35530,7 +35530,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -35758,7 +35758,7 @@ hex(c1) hex(c2) 3 3 0 3 CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -35807,7 +35807,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -35852,7 +35852,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -35935,7 +35935,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -35963,13 +35963,13 @@ hex(c1) hex(c2) 1 1 2 2 3 3 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 3 2 2 3 3 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 3 @@ -36041,7 +36041,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -36142,7 +36142,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -36200,7 +36200,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -36218,7 +36218,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -36236,7 +36236,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -36254,7 +36254,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -36460,7 +36460,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -36741,7 +36741,7 @@ hex(c1) hex(c2) F F 9 F CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -36790,7 +36790,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -36867,7 +36867,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT hex(c1),hex(c2) FROM t5; @@ -36895,7 +36895,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 B @@ -36908,7 +36908,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -36979,7 +36979,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -37114,7 +37114,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -37132,7 +37132,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -37150,7 +37150,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -37168,7 +37168,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -37186,7 +37186,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -37204,7 +37204,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -37222,7 +37222,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -37240,7 +37240,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -37492,7 +37492,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -37998,11 +37998,11 @@ _ a z ~ -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 2 @@ -38013,7 +38013,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -38113,7 +38113,7 @@ hex(c1) hex(c2) 7F FF 9 FF SET SQL_MODE=DEFAULT; -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 0 8E @@ -38225,7 +38225,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -38313,7 +38313,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38331,7 +38331,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38349,7 +38349,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38367,7 +38367,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38385,7 +38385,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38403,7 +38403,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38421,7 +38421,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38439,7 +38439,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38457,7 +38457,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38475,7 +38475,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38493,7 +38493,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38511,7 +38511,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38529,7 +38529,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38547,7 +38547,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38565,7 +38565,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -38583,7 +38583,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39463,7 +39463,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -39717,7 +39717,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39735,7 +39735,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39753,7 +39753,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39771,7 +39771,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39789,7 +39789,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39807,7 +39807,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39825,7 +39825,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39843,7 +39843,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39861,7 +39861,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39879,7 +39879,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39897,7 +39897,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39915,7 +39915,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39933,7 +39933,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39951,7 +39951,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39969,7 +39969,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -39987,7 +39987,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40005,7 +40005,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40023,7 +40023,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40041,7 +40041,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40059,7 +40059,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40077,7 +40077,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40095,7 +40095,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40113,7 +40113,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40131,7 +40131,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40149,7 +40149,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40167,7 +40167,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40185,7 +40185,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40203,7 +40203,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40221,7 +40221,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40239,7 +40239,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -40257,7 +40257,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -40274,7 +40274,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 INSERT INTO t1 VALUES (b'1010'); @@ -41534,7 +41534,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -41788,7 +41788,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41806,7 +41806,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41824,7 +41824,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41842,7 +41842,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41860,7 +41860,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41878,7 +41878,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41896,7 +41896,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41914,7 +41914,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41932,7 +41932,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41950,7 +41950,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41968,7 +41968,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -41986,7 +41986,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42004,7 +42004,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42022,7 +42022,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42040,7 +42040,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42058,7 +42058,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42076,7 +42076,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42094,7 +42094,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42112,7 +42112,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42130,7 +42130,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42148,7 +42148,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42166,7 +42166,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42184,7 +42184,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42202,7 +42202,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42220,7 +42220,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42238,7 +42238,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42256,7 +42256,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42274,7 +42274,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42292,7 +42292,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42310,7 +42310,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42328,7 +42328,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42346,7 +42346,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42364,7 +42364,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42382,7 +42382,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42400,7 +42400,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42418,7 +42418,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42436,7 +42436,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42454,7 +42454,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42472,7 +42472,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42490,7 +42490,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42508,7 +42508,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42526,7 +42526,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42544,7 +42544,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42562,7 +42562,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42580,7 +42580,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42598,7 +42598,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42616,7 +42616,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42634,7 +42634,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42652,7 +42652,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42670,7 +42670,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42688,7 +42688,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42706,7 +42706,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42724,7 +42724,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42742,7 +42742,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42760,7 +42760,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42778,7 +42778,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42796,7 +42796,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42814,7 +42814,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -42832,7 +42832,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -42849,7 +42849,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 set @v1=4; @@ -42865,7 +42865,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); set @v1=3; set @v2=3/2; set @v3=repeat('1',@v1); @@ -42879,7 +42879,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); set @v1=2; set @v2=2/2; set @v3=repeat('1',@v1); @@ -42893,7 +42893,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); set @v1=1; set @v2=1/2; set @v3=repeat('1',@v1); @@ -42907,7 +42907,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); INSERT INTO t1 VALUES (b'1010'); INSERT INTO t2 VALUES (b'1010', b'1010', b'1010'); SELECT HEX(c1) FROM t1; @@ -44953,10 +44953,10 @@ SELECT 0 + (1010101010101010<<0); 1010101010101010 CREATE TABLE t1(c1 BIT(0)); CREATE TABLE t2(c1 BIT(0), c2 BIT(0), c3 BIT(0)); -INSERT INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -45072,7 +45072,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -45305,7 +45305,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -45354,7 +45354,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -45399,7 +45399,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -45488,7 +45488,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -45516,11 +45516,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -45591,7 +45591,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -45698,7 +45698,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -45750,21 +45750,21 @@ INSERT INTO t1 VALUES (b'0'); set @v3=repeat('01',@v2); INSERT INTO t1 VALUES (b'01'); set @v3=repeat('10',@v2); -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -45902,7 +45902,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -46142,7 +46142,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -46191,7 +46191,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -46236,7 +46236,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -46325,7 +46325,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -46353,11 +46353,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -46428,7 +46428,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -46535,7 +46535,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -46591,7 +46591,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -46609,15 +46609,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -46777,7 +46777,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -47005,7 +47005,7 @@ hex(c1) hex(c2) 3 3 0 3 CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -47054,7 +47054,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -47099,7 +47099,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -47182,7 +47182,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -47210,13 +47210,13 @@ hex(c1) hex(c2) 1 1 2 2 3 3 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 3 2 2 3 3 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 3 @@ -47288,7 +47288,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -47389,7 +47389,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -47447,7 +47447,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -47465,7 +47465,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -47483,7 +47483,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -47501,15 +47501,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -47713,7 +47713,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -47994,7 +47994,7 @@ hex(c1) hex(c2) F F 9 F CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -48043,7 +48043,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -48120,7 +48120,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT hex(c1),hex(c2) FROM t5; @@ -48148,7 +48148,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 B @@ -48161,7 +48161,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -48232,7 +48232,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48367,7 +48367,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48385,7 +48385,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48403,7 +48403,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48421,7 +48421,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48439,7 +48439,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48457,7 +48457,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48475,7 +48475,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48493,15 +48493,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48751,7 +48751,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -49257,11 +49257,11 @@ _ a z ~ -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 2 @@ -49272,7 +49272,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -49372,7 +49372,7 @@ hex(c1) hex(c2) 7F FF 9 FF SET SQL_MODE=DEFAULT; -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 0 8E @@ -49484,7 +49484,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -49572,7 +49572,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49590,7 +49590,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49608,7 +49608,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49626,7 +49626,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49644,7 +49644,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49662,7 +49662,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49680,7 +49680,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49698,7 +49698,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49716,7 +49716,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49734,7 +49734,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49752,7 +49752,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49770,7 +49770,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49788,7 +49788,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49806,7 +49806,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49824,7 +49824,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -49842,7 +49842,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -50722,7 +50722,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -50976,7 +50976,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -50994,7 +50994,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51012,7 +51012,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51030,7 +51030,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51048,7 +51048,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51066,7 +51066,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51084,7 +51084,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51102,7 +51102,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51120,7 +51120,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51138,7 +51138,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51156,7 +51156,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51174,7 +51174,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51192,7 +51192,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51210,7 +51210,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51228,7 +51228,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51246,7 +51246,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51264,7 +51264,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51282,7 +51282,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51300,7 +51300,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51318,7 +51318,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51336,7 +51336,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51354,7 +51354,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51372,7 +51372,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51390,7 +51390,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51408,7 +51408,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51426,7 +51426,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51444,7 +51444,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51462,7 +51462,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51480,7 +51480,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51498,7 +51498,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -51516,7 +51516,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -51533,7 +51533,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 INSERT INTO t1 VALUES (b'1010101010101010'); @@ -52793,7 +52793,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -53047,7 +53047,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53065,7 +53065,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53083,7 +53083,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53101,7 +53101,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53119,7 +53119,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53137,7 +53137,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53155,7 +53155,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53173,7 +53173,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53191,7 +53191,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53209,7 +53209,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53227,7 +53227,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53245,7 +53245,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53263,7 +53263,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53281,7 +53281,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53299,7 +53299,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53317,7 +53317,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53335,7 +53335,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53353,7 +53353,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53371,7 +53371,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53389,7 +53389,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53407,7 +53407,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53425,7 +53425,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53443,7 +53443,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53461,7 +53461,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53479,7 +53479,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53497,7 +53497,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53515,7 +53515,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53533,7 +53533,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53551,7 +53551,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53569,7 +53569,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53587,7 +53587,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53605,7 +53605,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53623,7 +53623,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53641,7 +53641,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53659,7 +53659,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53677,7 +53677,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53695,7 +53695,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53713,7 +53713,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53731,7 +53731,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53749,7 +53749,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53767,7 +53767,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53785,7 +53785,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53803,7 +53803,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53821,7 +53821,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53839,7 +53839,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53857,7 +53857,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53875,7 +53875,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53893,7 +53893,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53911,7 +53911,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53929,7 +53929,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53947,7 +53947,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53965,7 +53965,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -53983,7 +53983,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -54001,7 +54001,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -54019,7 +54019,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -54037,7 +54037,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -54055,7 +54055,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -54073,7 +54073,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -54091,7 +54091,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -54108,7 +54108,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 set @v1=4; @@ -54124,7 +54124,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); set @v1=3; set @v2=3/2; set @v3=repeat('1',@v1); @@ -54138,7 +54138,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); set @v1=2; set @v2=2/2; set @v3=repeat('1',@v1); @@ -54152,7 +54152,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); set @v1=1; set @v2=1/2; set @v3=repeat('1',@v1); @@ -54166,7 +54166,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); INSERT INTO t1 VALUES (b'1010101010101010'); INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); SELECT HEX(c1) FROM t1; @@ -56214,10 +56214,10 @@ Warnings: Warning 1916 Got overflow when converting '101010101010101010101010101010' to INT. Value truncated CREATE TABLE t1(c1 BIT(0)); CREATE TABLE t2(c1 BIT(0), c2 BIT(0), c3 BIT(0)); -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -56333,7 +56333,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -56566,7 +56566,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -56615,7 +56615,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -56660,7 +56660,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -56749,7 +56749,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -56777,11 +56777,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -56852,7 +56852,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -56959,7 +56959,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -57013,21 +57013,21 @@ INSERT INTO t1 VALUES (b'0'); set @v3=repeat('01',@v2); INSERT INTO t1 VALUES (b'01'); set @v3=repeat('10',@v2); -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -57165,7 +57165,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -57405,7 +57405,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -57454,7 +57454,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -57499,7 +57499,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -57588,7 +57588,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -57616,11 +57616,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -57691,7 +57691,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -57798,7 +57798,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -57856,7 +57856,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -57874,15 +57874,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -58042,7 +58042,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -58270,7 +58270,7 @@ hex(c1) hex(c2) 3 3 0 3 CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -58319,7 +58319,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -58364,7 +58364,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -58447,7 +58447,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -58475,13 +58475,13 @@ hex(c1) hex(c2) 1 1 2 2 3 3 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 3 2 2 3 3 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 3 @@ -58553,7 +58553,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -58654,7 +58654,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -58714,7 +58714,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -58732,7 +58732,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -58750,7 +58750,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -58768,15 +58768,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -58980,7 +58980,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -59261,7 +59261,7 @@ hex(c1) hex(c2) F F 9 F CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -59310,7 +59310,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -59387,7 +59387,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT hex(c1),hex(c2) FROM t5; @@ -59415,7 +59415,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 B @@ -59428,7 +59428,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -59499,7 +59499,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -59636,7 +59636,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -59654,7 +59654,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -59672,7 +59672,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -59690,7 +59690,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -59708,7 +59708,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -59726,7 +59726,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -59744,7 +59744,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -59762,15 +59762,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60020,7 +60020,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -60526,11 +60526,11 @@ _ a z ~ -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 2 @@ -60541,7 +60541,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -60641,7 +60641,7 @@ hex(c1) hex(c2) 7F FF 9 FF SET SQL_MODE=DEFAULT; -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 0 8E @@ -60753,7 +60753,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -60843,7 +60843,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60861,7 +60861,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60879,7 +60879,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60897,7 +60897,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60915,7 +60915,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60933,7 +60933,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60951,7 +60951,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60969,7 +60969,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -60987,7 +60987,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -61005,7 +61005,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -61023,7 +61023,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -61041,7 +61041,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -61059,7 +61059,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -61077,7 +61077,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -61095,7 +61095,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -61113,15 +61113,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -61999,7 +61999,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -62255,7 +62255,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62273,7 +62273,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62291,7 +62291,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62309,7 +62309,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62327,7 +62327,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62345,7 +62345,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62363,7 +62363,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62381,7 +62381,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62399,7 +62399,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62417,7 +62417,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62435,7 +62435,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62453,7 +62453,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62471,7 +62471,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62489,7 +62489,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62507,7 +62507,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62525,7 +62525,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62543,7 +62543,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62561,7 +62561,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62579,7 +62579,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62597,7 +62597,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62615,7 +62615,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62633,7 +62633,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62651,7 +62651,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62669,7 +62669,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62687,7 +62687,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62705,7 +62705,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62723,7 +62723,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62741,7 +62741,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62759,7 +62759,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62777,7 +62777,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -62795,7 +62795,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -62812,7 +62812,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 INSERT INTO t1 VALUES (b'101010101010101010101010101010'); @@ -64072,7 +64072,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -64328,7 +64328,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64346,7 +64346,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64364,7 +64364,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64382,7 +64382,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64400,7 +64400,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64418,7 +64418,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64436,7 +64436,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64454,7 +64454,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64472,7 +64472,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64490,7 +64490,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64508,7 +64508,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64526,7 +64526,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64544,7 +64544,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64562,7 +64562,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64580,7 +64580,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64598,7 +64598,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64616,7 +64616,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64634,7 +64634,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64652,7 +64652,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64670,7 +64670,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64688,7 +64688,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64706,7 +64706,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64724,7 +64724,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64742,7 +64742,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64760,7 +64760,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64778,7 +64778,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64796,7 +64796,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64814,7 +64814,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64832,7 +64832,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64850,7 +64850,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64868,7 +64868,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64886,7 +64886,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64904,7 +64904,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64922,7 +64922,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64940,7 +64940,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64958,7 +64958,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64976,7 +64976,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -64994,7 +64994,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65012,7 +65012,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65030,7 +65030,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65048,7 +65048,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65066,7 +65066,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65084,7 +65084,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65102,7 +65102,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65120,7 +65120,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65138,7 +65138,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65156,7 +65156,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65174,7 +65174,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65192,7 +65192,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65210,7 +65210,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65228,7 +65228,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65246,7 +65246,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65264,7 +65264,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65282,7 +65282,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65300,7 +65300,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65318,7 +65318,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65336,7 +65336,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65354,7 +65354,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -65372,7 +65372,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -65389,7 +65389,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 set @v1=4; @@ -65405,7 +65405,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); set @v1=3; set @v2=3/2; set @v3=repeat('1',@v1); @@ -65419,7 +65419,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); set @v1=2; set @v2=2/2; set @v3=repeat('1',@v1); @@ -65433,7 +65433,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); set @v1=1; set @v2=1/2; set @v3=repeat('1',@v1); @@ -65447,7 +65447,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); INSERT INTO t1 VALUES (b'101010101010101010101010101010'); INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); SELECT HEX(c1) FROM t1; @@ -67492,10 +67492,10 @@ Warnings: Warning 1916 Got overflow when converting '1010101010101010101010101010101010101010101010101010101010101010' to INT. Value truncated CREATE TABLE t1(c1 BIT(0)); CREATE TABLE t2(c1 BIT(0), c2 BIT(0), c3 BIT(0)); -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -67611,7 +67611,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -67844,7 +67844,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -67893,7 +67893,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -67938,7 +67938,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -68027,7 +68027,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -68055,11 +68055,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -68130,7 +68130,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -68237,7 +68237,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -68288,21 +68288,21 @@ INSERT INTO t1 VALUES (b'0'); set @v3=repeat('01',@v2); INSERT INTO t1 VALUES (b'01'); set @v3=repeat('10',@v2); -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -68440,7 +68440,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -68680,7 +68680,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -68729,7 +68729,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -68774,7 +68774,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -68863,7 +68863,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -68891,11 +68891,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -68966,7 +68966,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -69073,7 +69073,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -69128,7 +69128,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -69146,15 +69146,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -69314,7 +69314,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -69542,7 +69542,7 @@ hex(c1) hex(c2) 3 3 0 3 CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -69591,7 +69591,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -69636,7 +69636,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -69719,7 +69719,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -69747,13 +69747,13 @@ hex(c1) hex(c2) 1 1 2 2 3 3 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 3 2 2 3 3 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 3 @@ -69825,7 +69825,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -69926,7 +69926,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -69983,7 +69983,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70001,7 +70001,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70019,7 +70019,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70037,15 +70037,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70249,7 +70249,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70530,7 +70530,7 @@ hex(c1) hex(c2) F F 9 F CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -70579,7 +70579,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -70656,7 +70656,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT hex(c1),hex(c2) FROM t5; @@ -70684,7 +70684,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 B @@ -70697,7 +70697,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -70768,7 +70768,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70902,7 +70902,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70920,7 +70920,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70938,7 +70938,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70956,7 +70956,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70974,7 +70974,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -70992,7 +70992,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -71010,7 +71010,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -71028,15 +71028,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -71286,7 +71286,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -71792,11 +71792,11 @@ _ a z ~ -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 2 @@ -71807,7 +71807,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -71907,7 +71907,7 @@ hex(c1) hex(c2) 7F FF 9 FF SET SQL_MODE=DEFAULT; -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 0 8E @@ -72019,7 +72019,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -72106,7 +72106,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72124,7 +72124,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72142,7 +72142,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72160,7 +72160,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72178,7 +72178,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72196,7 +72196,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72214,7 +72214,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72232,7 +72232,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72250,7 +72250,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72268,7 +72268,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72286,7 +72286,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72304,7 +72304,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72322,7 +72322,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72340,7 +72340,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72358,7 +72358,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -72376,15 +72376,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73262,7 +73262,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -73515,7 +73515,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73533,7 +73533,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73551,7 +73551,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73569,7 +73569,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73587,7 +73587,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73605,7 +73605,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73623,7 +73623,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73641,7 +73641,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73659,7 +73659,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73677,7 +73677,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73695,7 +73695,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73713,7 +73713,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73731,7 +73731,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73749,7 +73749,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73767,7 +73767,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73785,7 +73785,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73803,7 +73803,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73821,7 +73821,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73839,7 +73839,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73857,7 +73857,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73875,7 +73875,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73893,7 +73893,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73911,7 +73911,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73929,7 +73929,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73947,7 +73947,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73965,7 +73965,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -73983,7 +73983,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -74001,7 +74001,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -74019,7 +74019,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -74037,7 +74037,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -74055,7 +74055,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -74072,13 +74072,13 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75338,7 +75338,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -75591,7 +75591,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75609,7 +75609,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75627,7 +75627,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75645,7 +75645,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75663,7 +75663,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75681,7 +75681,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75699,7 +75699,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75717,7 +75717,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75735,7 +75735,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75753,7 +75753,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75771,7 +75771,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75789,7 +75789,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75807,7 +75807,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75825,7 +75825,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75843,7 +75843,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75861,7 +75861,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75879,7 +75879,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75897,7 +75897,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75915,7 +75915,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75933,7 +75933,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75951,7 +75951,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75969,7 +75969,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -75987,7 +75987,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76005,7 +76005,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76023,7 +76023,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76041,7 +76041,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76059,7 +76059,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76077,7 +76077,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76095,7 +76095,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76113,7 +76113,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76131,7 +76131,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76149,7 +76149,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76167,7 +76167,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76185,7 +76185,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76203,7 +76203,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76221,7 +76221,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76239,7 +76239,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76257,7 +76257,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76275,7 +76275,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76293,7 +76293,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76311,7 +76311,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76329,7 +76329,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76347,7 +76347,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76365,7 +76365,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76383,7 +76383,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76401,7 +76401,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76419,7 +76419,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76437,7 +76437,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76455,7 +76455,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76473,7 +76473,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76491,7 +76491,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76509,7 +76509,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76527,7 +76527,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76545,7 +76545,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76563,7 +76563,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76581,7 +76581,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76599,7 +76599,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76617,7 +76617,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -76635,7 +76635,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -76652,7 +76652,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 set @v1=4; @@ -76668,7 +76668,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); set @v1=3; set @v2=3/2; set @v3=repeat('1',@v1); @@ -76682,7 +76682,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); set @v1=2; set @v2=2/2; set @v3=repeat('1',@v1); @@ -76696,7 +76696,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); set @v1=1; set @v2=1/2; set @v3=repeat('1',@v1); @@ -76710,7 +76710,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); SELECT HEX(c1) FROM t1; @@ -78755,10 +78755,10 @@ Warnings: Warning 1916 Got overflow when converting '10101010101010101010101010101010101010101010101010101010101010101' to INT. Value truncated CREATE TABLE t1(c1 BIT(0)); CREATE TABLE t2(c1 BIT(0), c2 BIT(0), c3 BIT(0)); -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -78874,7 +78874,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -79107,7 +79107,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -79156,7 +79156,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -79201,7 +79201,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -79290,7 +79290,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -79318,11 +79318,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -79393,7 +79393,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -79500,7 +79500,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -79551,21 +79551,21 @@ INSERT INTO t1 VALUES (b'0'); set @v3=repeat('01',@v2); INSERT INTO t1 VALUES (b'01'); set @v3=repeat('10',@v2); -INSERT INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -79703,7 +79703,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -79943,7 +79943,7 @@ hex(c1) hex(c2) 1 1 0 1 CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -79992,7 +79992,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -80037,7 +80037,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -80126,7 +80126,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -80154,11 +80154,11 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 1 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -80229,7 +80229,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -80336,7 +80336,7 @@ Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x01' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 2 Warning 1264 Out of range value for column 'c2' at row 2 @@ -80391,7 +80391,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -80409,15 +80409,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -80577,7 +80577,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -80805,7 +80805,7 @@ hex(c1) hex(c2) 3 3 0 3 CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -80854,7 +80854,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -80899,7 +80899,7 @@ UPDATE t6 SET c2=10 WHERE c2=NULL; UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -80982,7 +80982,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -81010,13 +81010,13 @@ hex(c1) hex(c2) 1 1 2 2 3 3 -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 3 2 2 3 3 -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 3 @@ -81088,7 +81088,7 @@ Warning 1264 Out of range value for column 'c1' at row 22 Warning 1264 Out of range value for column 'c2' at row 22 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -81189,7 +81189,7 @@ Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 10 Warning 1264 Out of range value for column 'c2' at row 10 Warning 1062 Duplicate entry '\x03' for key 'PRIMARY' -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); Warnings: Warning 1264 Out of range value for column 'c1' at row 4 Warning 1264 Out of range value for column 'c2' at row 4 @@ -81246,7 +81246,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -81264,7 +81264,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -81282,7 +81282,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -81300,15 +81300,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -81512,7 +81512,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -81793,7 +81793,7 @@ hex(c1) hex(c2) F F 9 F CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -81842,7 +81842,7 @@ c1   UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c1' at row 2 @@ -81919,7 +81919,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT hex(c1),hex(c2) FROM t5; @@ -81947,7 +81947,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 1 B @@ -81960,7 +81960,7 @@ hex(c1) hex(c2) 8 D 9 D A A -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 TRUNCATE t5; @@ -82031,7 +82031,7 @@ Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' Warning 1264 Out of range value for column 'c1' at row 23 Warning 1264 Out of range value for column 'c2' at row 23 Warning 1062 Duplicate entry '\x0F' for key 'PRIMARY' -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -82165,7 +82165,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -82183,7 +82183,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -82201,7 +82201,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -82219,7 +82219,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -82237,7 +82237,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -82255,7 +82255,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -82273,7 +82273,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -82291,15 +82291,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -82549,7 +82549,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -83055,11 +83055,11 @@ _ a z ~ -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 2 @@ -83070,7 +83070,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -83170,7 +83170,7 @@ hex(c1) hex(c2) 7F FF 9 FF SET SQL_MODE=DEFAULT; -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; SELECT hex(c1),hex(c2) FROM t5; hex(c1) hex(c2) 0 8E @@ -83282,7 +83282,7 @@ Warning 1264 Out of range value for column 'c2' at row 34 Warning 1264 Out of range value for column 'c2' at row 35 Warning 1264 Out of range value for column 'c2' at row 36 Warning 1264 Out of range value for column 'c2' at row 37 -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); Warnings: Warning 1264 Out of range value for column 'c2' at row 2 Warning 1264 Out of range value for column 'c2' at row 5 @@ -83369,7 +83369,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83387,7 +83387,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83405,7 +83405,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83423,7 +83423,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83441,7 +83441,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83459,7 +83459,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83477,7 +83477,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83495,7 +83495,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83513,7 +83513,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83531,7 +83531,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83549,7 +83549,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83567,7 +83567,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83585,7 +83585,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83603,7 +83603,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83621,7 +83621,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -83639,15 +83639,15 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84525,7 +84525,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -84778,7 +84778,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84796,7 +84796,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84814,7 +84814,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84832,7 +84832,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84850,7 +84850,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84868,7 +84868,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84886,7 +84886,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84904,7 +84904,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84922,7 +84922,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84940,7 +84940,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84958,7 +84958,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84976,7 +84976,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -84994,7 +84994,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85012,7 +85012,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85030,7 +85030,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85048,7 +85048,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85066,7 +85066,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85084,7 +85084,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85102,7 +85102,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85120,7 +85120,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85138,7 +85138,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85156,7 +85156,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85174,7 +85174,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85192,7 +85192,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85210,7 +85210,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85228,7 +85228,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85246,7 +85246,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85264,7 +85264,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85282,7 +85282,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85300,7 +85300,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -85318,7 +85318,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -85335,13 +85335,13 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -86601,7 +86601,7 @@ UPDATE t6 SET c1=12 WHERE c1=b'101' AND c2=178; UPDATE t6 SET c1=c1+2,c2=c1+c2 WHERE c2=46 OR c2=b'1001'; UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; Warnings: Warning 1264 Out of range value for column 'c2' at row 16 SELECT hex(c1) FROM t5 WHERE c1<>0; @@ -86854,7 +86854,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -86872,7 +86872,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -86890,7 +86890,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -86908,7 +86908,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -86926,7 +86926,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -86944,7 +86944,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -86962,7 +86962,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -86980,7 +86980,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -86998,7 +86998,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87016,7 +87016,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101 set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87034,7 +87034,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87052,7 +87052,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010101010' set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87070,7 +87070,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87088,7 +87088,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87106,7 +87106,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87124,7 +87124,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87142,7 +87142,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87160,7 +87160,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87178,7 +87178,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87196,7 +87196,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87214,7 +87214,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87232,7 +87232,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111111'","b'01010101010101010101010101010101010101010101","b'10101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87250,7 +87250,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87268,7 +87268,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111111'","b'010101010101010101010101010101010101010101","b'101010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87286,7 +87286,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87304,7 +87304,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111111'","b'0101010101010101010101010101010101010101","b'1010101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87322,7 +87322,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87340,7 +87340,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111111'","b'01010101010101010101010101010101010101","b'10101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87358,7 +87358,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87376,7 +87376,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111111'","b'010101010101010101010101010101010101","b'101010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87394,7 +87394,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87412,7 +87412,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111111'","b'0101010101010101010101010101010101","b'1010101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87430,7 +87430,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87448,7 +87448,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111111'","b'01010101010101010101010101010101","b'10101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87466,7 +87466,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87484,7 +87484,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111111'","b'010101010101010101010101010101","b'101010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87502,7 +87502,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87520,7 +87520,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111111'","b'0101010101010101010101010101","b'1010101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87538,7 +87538,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87556,7 +87556,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111111'","b'01010101010101010101010101","b'10101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87574,7 +87574,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87592,7 +87592,7 @@ INSERT INTO t1 VALUES (b'101010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111111'","b'010101010101010101010101","b'101010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87610,7 +87610,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87628,7 +87628,7 @@ INSERT INTO t1 VALUES (b'1010101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111111'","b'0101010101010101010101","b'1010101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87646,7 +87646,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87664,7 +87664,7 @@ INSERT INTO t1 VALUES (b'10101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111111'","b'01010101010101010101","b'10101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87682,7 +87682,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87700,7 +87700,7 @@ INSERT INTO t1 VALUES (b'101010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111111'","b'010101010101010101","b'101010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87718,7 +87718,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87736,7 +87736,7 @@ INSERT INTO t1 VALUES (b'1010101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111111'","b'0101010101010101","b'1010101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87754,7 +87754,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87772,7 +87772,7 @@ INSERT INTO t1 VALUES (b'10101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111111'","b'01010101010101","b'10101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87790,7 +87790,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87808,7 +87808,7 @@ INSERT INTO t1 VALUES (b'101010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111111'","b'010101010101","b'101010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87826,7 +87826,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87844,7 +87844,7 @@ INSERT INTO t1 VALUES (b'1010101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111111'","b'0101010101","b'1010101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87862,7 +87862,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87880,7 +87880,7 @@ INSERT INTO t1 VALUES (b'10101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111111'","b'01010101","b'10101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -87898,7 +87898,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'111111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c3' at row 1 @@ -87915,7 +87915,7 @@ INSERT INTO t1 VALUES (b'101010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); +INSERT IGNORE INTO t2 VALUES ("b'11111'","b'010101","b'101010'"); Warnings: Warning 1264 Out of range value for column 'c3' at row 1 set @v1=4; @@ -87931,7 +87931,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'1111'","b'0101","b'1010'"); set @v1=3; set @v2=3/2; set @v3=repeat('1',@v1); @@ -87945,7 +87945,7 @@ INSERT INTO t1 VALUES (b'1010'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'111'","b'0101","b'1010'"); +INSERT IGNORE INTO t2 VALUES ("b'111'","b'0101","b'1010'"); set @v1=2; set @v2=2/2; set @v3=repeat('1',@v1); @@ -87959,7 +87959,7 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'11'","b'01","b'10'"); +INSERT IGNORE INTO t2 VALUES ("b'11'","b'01","b'10'"); set @v1=1; set @v2=1/2; set @v3=repeat('1',@v1); @@ -87973,11 +87973,11 @@ INSERT INTO t1 VALUES (b'10'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); -INSERT INTO t2 VALUES ("b'1'","b'01","b'10'"); -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES ("b'1'","b'01","b'10'"); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 diff --git a/mysql-test/suite/engines/iuds/r/update_decimal.result b/mysql-test/suite/engines/iuds/r/update_decimal.result index eb482c6181b..7b4a3ea9079 100644 --- a/mysql-test/suite/engines/iuds/r/update_decimal.result +++ b/mysql-test/suite/engines/iuds/r/update_decimal.result @@ -1,7 +1,7 @@ DROP TABLE IF EXISTS t1,t2,t3,t4; CREATE TABLE t1(c1 DECIMAL(10,5) UNSIGNED NOT NULL, c2 DECIMAL(10,5) SIGNED NULL, c3 DECIMAL, c4 INT, UNIQUE INDEX idx(c1,c4)); INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -13,11 +13,11 @@ Note 1265 Data truncated for column 'c2' at row 1 Note 1265 Data truncated for column 'c3' at row 1 INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Note 1265 Data truncated for column 'c3' at row 1 -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -48,7 +48,7 @@ c1 c2 99999.99999 -99999.99999 99999.99999 99999.99999 99999.99999 99999.99999 -UPDATE t1 SET c1=c2+c3 WHERE c3 < 10000; +UPDATE IGNORE t1 SET c1=c2+c3 WHERE c3 < 10000; Warnings: Warning 1264 Out of range value for column 'c1' at row 8 SELECT * FROM t1; @@ -102,7 +102,7 @@ c1 c2 c3 c4 99999.99999 -99999.99999 9999999999 5 99999.99999 99999.99999 1000000000 3 99999.99999 99999.99999 111111111 9 -UPDATE t1 SET c1=-1.0e+2 WHERE c4=2; +UPDATE IGNORE t1 SET c1=-1.0e+2 WHERE c4=2; Warnings: Warning 1264 Out of range value for column 'c1' at row 2 SHOW WARNINGS; @@ -120,7 +120,7 @@ c1 c2 c3 c4 99999.99999 -99999.99999 9999999999 5 99999.99999 99999.99999 1000000000 3 99999.99999 99999.99999 111111111 9 -UPDATE t1 SET c1=1.0e+20 WHERE c4=2; +UPDATE IGNORE t1 SET c1=1.0e+20 WHERE c4=2; Warnings: Warning 1264 Out of range value for column 'c1' at row 2 SHOW WARNINGS; @@ -168,7 +168,7 @@ c1 c2 c3 c4 99999.99999 1.00000 1 7 99999.99999 99999.99999 1000000000 3 99999.99999 99999.99999 111111111 9 -UPDATE t1 SET c1=99999.999999 WHERE c4=7; +UPDATE IGNORE t1 SET c1=99999.999999 WHERE c4=7; Warnings: Warning 1264 Out of range value for column 'c1' at row 7 SELECT c1,c4 FROM t1; @@ -332,7 +332,7 @@ CREATE TABLE t3(c1 DECIMAL(10,5) NOT NULL, c2 DECIMAL, c3 INT, UNIQUE INDEX idx3 INSERT INTO t2 VALUES ('11111.11111','1111111111',1),('22222.22222','2222222222',2),('33333.33333','3333333333',3); INSERT INTO t3 VALUES ('11111.11111','4444444444',1),('55555.55555','5555555555',2),('66666.66666','6666666666',3); UPDATE t2,t3 SET t3.c1='22222.22222' WHERE t2.c1=t3.c1 AND t2.c3=t3.c3; -UPDATE t1 SET c3='asdf' WHERE c1='11111.11111'; +UPDATE IGNORE t1 SET c3='asdf' WHERE c1='11111.11111'; Warnings: Warning 1366 Incorrect decimal value: 'asdf' for column 'c3' at row 1 SELECT c3 FROM t1; @@ -346,7 +346,7 @@ c3 7777777777 8888888888 9999999999 -UPDATE t1 SET c2="1 e 1" WHERE c4=2; +UPDATE IGNORE t1 SET c2="1 e 1" WHERE c4=2; Warnings: Warning 1265 Data truncated for column 'c2' at row 2 SELECT c2 FROM t1; @@ -391,17 +391,17 @@ c1 c2 c3 DROP TABLES IF EXISTS t1,t2,t3,t4; CREATE TABLE t1(c1 FLOAT(10,5) UNSIGNED NOT NULL, c2 FLOAT(10,5) SIGNED NULL, c3 FLOAT, c4 INT, UNIQUE INDEX idx(c1,c4)); INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -431,7 +431,7 @@ c1 c2 100000.00000 100000.00000 10001.00000 1001.00000 11111.00000 -10000.00000 -UPDATE t1 SET c1=c2+c3 WHERE c3 < 10000; +UPDATE IGNORE t1 SET c1=c2+c3 WHERE c3 < 10000; Warnings: Warning 1264 Out of range value for column 'c1' at row 8 SELECT * FROM t1; @@ -485,7 +485,7 @@ c1 c2 c3 c4 10001.00000 NULL 10000 4 11111.00000 -9900.00000 10000000 2 2.00000 1.00000 1 7 -UPDATE t1 SET c1=-1.0e+2 WHERE c4=2; +UPDATE IGNORE t1 SET c1=-1.0e+2 WHERE c4=2; Warnings: Warning 1264 Out of range value for column 'c1' at row 2 SHOW WARNINGS; @@ -503,7 +503,7 @@ c1 c2 c3 c4 100000.00000 100000.00000 111111000 9 10001.00000 NULL 10000 4 2.00000 1.00000 1 7 -UPDATE t1 SET c1=1.0e+20 WHERE c4=2; +UPDATE IGNORE t1 SET c1=1.0e+20 WHERE c4=2; Warnings: Warning 1264 Out of range value for column 'c1' at row 2 SHOW WARNINGS; @@ -550,7 +550,7 @@ c1 c2 c3 c4 100000.00000 100000.00000 1000000000 3 100000.00000 100000.00000 111111000 9 10001.00000 NULL 1234570000 4 -UPDATE t1 SET c1=99999.999999 WHERE c4=7; +UPDATE IGNORE t1 SET c1=99999.999999 WHERE c4=7; Warnings: Warning 1264 Out of range value for column 'c1' at row 7 SELECT c1,c4 FROM t1; @@ -728,7 +728,7 @@ c3 6666670000 7777780000 8888890000 -UPDATE t1 SET c2="1 e 1" WHERE c4=2; +UPDATE IGNORE t1 SET c2="1 e 1" WHERE c4=2; Warnings: Warning 1265 Data truncated for column 'c2' at row 2 SELECT c2 FROM t1; @@ -773,17 +773,17 @@ c1 c2 c3 DROP TABLES IF EXISTS t1,t2,t3,t4; CREATE TABLE t1(c1 DOUBLE(10,5) UNSIGNED NOT NULL, c2 DOUBLE(10,5) SIGNED NULL, c3 DOUBLE, c4 INT, UNIQUE INDEX idx(c1,c4)); INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -813,7 +813,7 @@ c1 c2 99999.99999 -99999.99999 99999.99999 99999.99999 99999.99999 99999.99999 -UPDATE t1 SET c1=c2+c3 WHERE c3 < 10000; +UPDATE IGNORE t1 SET c1=c2+c3 WHERE c3 < 10000; Warnings: Warning 1264 Out of range value for column 'c1' at row 8 SELECT * FROM t1; @@ -867,7 +867,7 @@ c1 c2 c3 c4 99999.99999 -99999.99999 9999999999 5 99999.99999 99999.99999 1000000000.0001 3 99999.99999 99999.99999 111111111.11 9 -UPDATE t1 SET c1=-1.0e+2 WHERE c4=2; +UPDATE IGNORE t1 SET c1=-1.0e+2 WHERE c4=2; Warnings: Warning 1264 Out of range value for column 'c1' at row 2 SHOW WARNINGS; @@ -885,7 +885,7 @@ c1 c2 c3 c4 99999.99999 -99999.99999 9999999999 5 99999.99999 99999.99999 1000000000.0001 3 99999.99999 99999.99999 111111111.11 9 -UPDATE t1 SET c1=1.0e+20 WHERE c4=2; +UPDATE IGNORE t1 SET c1=1.0e+20 WHERE c4=2; Warnings: Warning 1264 Out of range value for column 'c1' at row 2 SHOW WARNINGS; @@ -933,7 +933,7 @@ c1 c2 c3 c4 99999.99999 1.00000 1 7 99999.99999 99999.99999 1000000000.0001 3 99999.99999 99999.99999 111111111.11 9 -UPDATE t1 SET c1=99999.999999 WHERE c4=7; +UPDATE IGNORE t1 SET c1=99999.999999 WHERE c4=7; Warnings: Warning 1264 Out of range value for column 'c1' at row 7 SELECT c1,c4 FROM t1; @@ -1097,7 +1097,7 @@ CREATE TABLE t3(c1 DOUBLE(10,5) NOT NULL, c2 DOUBLE, c3 INT, UNIQUE INDEX idx3(c INSERT INTO t2 VALUES ('11111.11111','1111111111',1),('22222.22222','2222222222',2),('33333.33333','3333333333',3); INSERT INTO t3 VALUES ('11111.11111','4444444444',1),('55555.55555','5555555555',2),('66666.66666','6666666666',3); UPDATE t2,t3 SET t3.c1='22222.22222' WHERE t2.c1=t3.c1 AND t2.c3=t3.c3; -UPDATE t1 SET c3='asdf' WHERE c1='11111.11111'; +UPDATE IGNORE t1 SET c3='asdf' WHERE c1='11111.11111'; Warnings: Warning 1366 Incorrect double value: 'asdf' for column 'c3' at row 1 SELECT c3 FROM t1; @@ -1111,7 +1111,7 @@ c3 7777777777 8888888888 9999999999 -UPDATE t1 SET c2="1 e 1" WHERE c4=2; +UPDATE IGNORE t1 SET c2="1 e 1" WHERE c4=2; Warnings: Warning 1265 Data truncated for column 'c2' at row 2 SELECT c2 FROM t1; diff --git a/mysql-test/suite/engines/iuds/r/update_delete_number.result b/mysql-test/suite/engines/iuds/r/update_delete_number.result index 15de16ed714..ef9d9ff0d34 100644 --- a/mysql-test/suite/engines/iuds/r/update_delete_number.result +++ b/mysql-test/suite/engines/iuds/r/update_delete_number.result @@ -26,7 +26,7 @@ SELECT c1,c2 FROM t1 WHERE c1=120; c1 c2 120 NULL 120 NULL -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -45,7 +45,7 @@ c1 c2 c3 1 0 1 2 0 2 INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=4294967296,c2=2147483648 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=4294967296,c2=2147483648 WHERE c2 BETWEEN -108 AND -106; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -61,7 +61,7 @@ c1 c2 c3 4294967295 2147483647 10 4294967295 2147483647 11 4294967295 2147483647 9 -UPDATE t1 SET c2=-2147483649 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-2147483649 WHERE c1=109 ORDER BY c1; Warnings: Warning 1264 Out of range value for column 'c2' at row 13 SELECT c1,c2 FROM t1 WHERE c1=109; @@ -78,7 +78,7 @@ SELECT c1,c2 FROM t1 WHERE c2=-110; c1 c2 0 -110 SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; Warnings: Warning 1048 Column 'c1' cannot be null SELECT * FROM t1 WHERE c1=0; @@ -144,7 +144,7 @@ c1 c2 7 8 10 11 4294967295 2147483647 -UPDATE t2 SET c1=0,c2=-2147483648 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-2147483648 WHERE c2=2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT c1,c2 FROM t1 ORDER BY c1; @@ -1119,7 +1119,7 @@ SELECT c1,c2 FROM t1 WHERE c1=120; c1 c2 120 NULL 120 NULL -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -1139,7 +1139,7 @@ c1 c2 c3 1 0 1 2 0 2 INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=256,c2=128 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=256,c2=128 WHERE c2 BETWEEN -108 AND -106; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -1156,7 +1156,7 @@ c1 c2 c3 255 127 11 255 127 13 255 127 9 -UPDATE t1 SET c2=-129 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-129 WHERE c1=109 ORDER BY c1; Warnings: Warning 1264 Out of range value for column 'c2' at row 13 SELECT c1,c2 FROM t1 WHERE c1=109; @@ -1173,7 +1173,7 @@ SELECT c1,c2 FROM t1 WHERE c2=-110; c1 c2 0 -110 SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; Warnings: Warning 1048 Column 'c1' cannot be null SELECT * FROM t1 WHERE c1=0; @@ -1239,7 +1239,7 @@ c1 c2 7 8 10 11 255 127 -UPDATE t2 SET c1=0,c2=-128 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-128 WHERE c2=2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT c1,c2 FROM t1 ORDER BY c1; @@ -1644,7 +1644,7 @@ a b 107 7 108 8 109 9 -update mt1,mt2 set mt1.a=mt1.a+100 where mt1.a=101; +update ignore mt1,mt2 set mt1.a=mt1.a+100 where mt1.a=101; Warnings: Warning 1264 Out of range value for column 'a' at row 1 select * from mt1; @@ -1892,7 +1892,7 @@ SELECT c1,c2 FROM t1 WHERE c1=120; c1 c2 120 NULL 120 NULL -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -1911,7 +1911,7 @@ c1 c2 c3 1 0 1 2 0 2 INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=65536,c2=32768 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=65536,c2=32768 WHERE c2 BETWEEN -108 AND -106; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -1927,7 +1927,7 @@ c1 c2 c3 65535 32767 10 65535 32767 11 65535 32767 9 -UPDATE t1 SET c2=-32769 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-32769 WHERE c1=109 ORDER BY c1; Warnings: Warning 1264 Out of range value for column 'c2' at row 13 SELECT c1,c2 FROM t1 WHERE c1=109; @@ -1944,7 +1944,7 @@ SELECT c1,c2 FROM t1 WHERE c2=-110; c1 c2 0 -110 SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; Warnings: Warning 1048 Column 'c1' cannot be null SELECT * FROM t1 WHERE c1=0; @@ -2010,7 +2010,7 @@ c1 c2 7 8 10 11 65535 32767 -UPDATE t2 SET c1=0,c2=-32768 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-32768 WHERE c2=2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT c1,c2 FROM t1 ORDER BY c1; @@ -2639,7 +2639,7 @@ SELECT c1,c2 FROM t1 WHERE c1=120; c1 c2 120 NULL 120 NULL -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -2658,7 +2658,7 @@ c1 c2 c3 1 0 1 2 0 2 INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=16777216,c2=8388608 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=16777216,c2=8388608 WHERE c2 BETWEEN -108 AND -106; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -2674,7 +2674,7 @@ c1 c2 c3 16777215 8388607 10 16777215 8388607 11 16777215 8388607 9 -UPDATE t1 SET c2=-8388609 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-8388609 WHERE c1=109 ORDER BY c1; Warnings: Warning 1264 Out of range value for column 'c2' at row 13 SELECT c1,c2 FROM t1 WHERE c1=109; @@ -2691,7 +2691,7 @@ SELECT c1,c2 FROM t1 WHERE c2=-110; c1 c2 0 -110 SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; Warnings: Warning 1048 Column 'c1' cannot be null SELECT * FROM t1 WHERE c1=0; @@ -2757,7 +2757,7 @@ c1 c2 7 8 10 11 16777215 8388607 -UPDATE t2 SET c1=0,c2=-8388608 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-8388608 WHERE c2=2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT c1,c2 FROM t1 ORDER BY c1; @@ -3386,7 +3386,7 @@ SELECT c1,c2 FROM t1 WHERE c1=120; c1 c2 120 NULL 120 NULL -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -3405,7 +3405,7 @@ c1 c2 c3 1 0 1 2 0 2 INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=18446744073709551616,c2=9223372036854775808 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=18446744073709551616,c2=9223372036854775808 WHERE c2 BETWEEN -108 AND -106; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 Warning 1264 Out of range value for column 'c2' at row 1 @@ -3421,7 +3421,7 @@ c1 c2 c3 18446744073709551615 9223372036854775807 10 18446744073709551615 9223372036854775807 11 18446744073709551615 9223372036854775807 9 -UPDATE t1 SET c2=-9223372036854775809 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-9223372036854775809 WHERE c1=109 ORDER BY c1; Warnings: Warning 1264 Out of range value for column 'c2' at row 13 SELECT c1,c2 FROM t1 WHERE c1=109; @@ -3438,7 +3438,7 @@ SELECT c1,c2 FROM t1 WHERE c2=-110; c1 c2 0 -110 SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; Warnings: Warning 1048 Column 'c1' cannot be null SELECT * FROM t1 WHERE c1=0; @@ -3504,7 +3504,7 @@ c1 c2 7 8 10 11 18446744073709551615 9223372036854775807 -UPDATE t2 SET c1=0,c2=-9223372036854775808 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-9223372036854775808 WHERE c2=2; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT c1,c2 FROM t1 ORDER BY c1; diff --git a/mysql-test/suite/engines/iuds/r/update_time.result b/mysql-test/suite/engines/iuds/r/update_time.result index 09a7cbf0c7f..48ddb82d521 100644 --- a/mysql-test/suite/engines/iuds/r/update_time.result +++ b/mysql-test/suite/engines/iuds/r/update_time.result @@ -814,7 +814,7 @@ c2 838:59:57 838:59:58 838:59:59 -UPDATE t4 SET c2='-838:59:60' WHERE c1='100:04:04'; +UPDATE IGNORE t4 SET c2='-838:59:60' WHERE c1='100:04:04'; Warnings: Warning 1265 Data truncated for column 'c2' at row 12 SELECT c2 FROM t4; @@ -861,7 +861,7 @@ c2 838:59:59 NULL NULL -UPDATE t4 SET c2='838:59:60' WHERE c1='100:04:04'; +UPDATE IGNORE t4 SET c2='838:59:60' WHERE c1='100:04:04'; Warnings: Warning 1265 Data truncated for column 'c2' at row 12 SELECT c2 FROM t4; @@ -953,7 +953,7 @@ c2 838:59:59 NULL NULL -UPDATE t4 SET c2='11:11:60' WHERE c1='100:04:04'; +UPDATE IGNORE t4 SET c2='11:11:60' WHERE c1='100:04:04'; Warnings: Warning 1265 Data truncated for column 'c2' at row 12 SELECT c2 FROM t4; @@ -1000,7 +1000,7 @@ c2 838:59:59 NULL NULL -UPDATE t4 SET c2='11:60:11' WHERE c1='100:04:04'; +UPDATE IGNORE t4 SET c2='11:60:11' WHERE c1='100:04:04'; Warnings: Warning 1265 Data truncated for column 'c2' at row 12 SELECT c2 FROM t4; @@ -1074,7 +1074,7 @@ c1 SET SQL_MODE=DEFAULT; UPDATE t1 SET c1=8385958 WHERE c2='34 22:59:59'; ERROR 23000: Duplicate entry '838:59:58' for key 'PRIMARY' -UPDATE t1 SET c2='def' WHERE c1=59; +UPDATE IGNORE t1 SET c2='def' WHERE c1=59; Warnings: Warning 1265 Data truncated for column 'c2' at row 1 SELECT c2 FROM t1; @@ -1213,7 +1213,7 @@ c1 c2 838:59:57 838:59:57 838:59:58 838:59:58 838:59:59 838:59:59 -UPDATE t1 SET t1.c2='99999.99999' WHERE c1 BETWEEN 080000 AND 100000; +UPDATE IGNORE t1 SET t1.c2='99999.99999' WHERE c1 BETWEEN 080000 AND 100000; Warnings: Warning 1265 Data truncated for column 'c2' at row 1 SELECT * FROM t1; @@ -1260,7 +1260,7 @@ c1 c2 838:59:57 838:59:57 838:59:58 838:59:58 838:59:59 838:59:59 -UPDATE t1 SET c1=c1+1,c2=c2-1 WHERE c1 IN (222222,8385955,1500000) ORDER BY c1; +UPDATE IGNORE t1 SET c1=c1+1,c2=c2-1 WHERE c1 IN (222222,8385955,1500000) ORDER BY c1; Warnings: Warning 1265 Data truncated for column 'c2' at row 2 SELECT * FROM t1; diff --git a/mysql-test/suite/engines/iuds/r/update_year.result b/mysql-test/suite/engines/iuds/r/update_year.result index c762d70a276..b766531f083 100644 --- a/mysql-test/suite/engines/iuds/r/update_year.result +++ b/mysql-test/suite/engines/iuds/r/update_year.result @@ -581,7 +581,7 @@ c1 99 99 NULL -UPDATE t1 SET c2=-1 WHERE c1=2071; +UPDATE IGNORE t1 SET c2=-1 WHERE c1=2071; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT c2 FROM t1; @@ -633,7 +633,7 @@ c2 2155 NULL NULL -UPDATE t1 SET c2=2156 WHERE c1=2001; +UPDATE IGNORE t1 SET c2=2156 WHERE c1=2001; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT c2 FROM t1; @@ -660,7 +660,7 @@ c2 2155 NULL NULL -UPDATE t4 SET c2=-1 WHERE c1=71; +UPDATE IGNORE t4 SET c2=-1 WHERE c1=71; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT c2 FROM t4; @@ -712,7 +712,7 @@ NULL NULL NULL NULL -UPDATE t4 SET c2=100 WHERE c1=79; +UPDATE IGNORE t4 SET c2=100 WHERE c1=79; Warnings: Warning 1264 Out of range value for column 'c2' at row 1 SELECT c2 FROM t4; @@ -772,7 +772,7 @@ c1 SET SQL_MODE=DEFAULT #Update with invalid values #UPDATE t2 SET c1='def' WHERE c2=2064; -UPDATE t4 SET c1=-70 WHERE c2=75; +UPDATE IGNORE t4 SET c1=-70 WHERE c2=75; Warnings: Warning 1264 Out of range value for column 'c1' at row 17 SELECT c1 FROM t4; @@ -852,7 +852,7 @@ c1 c2 2079 2069 2154 2155 2155 2155 -UPDATE t1 SET c1=c1-1,c2=c2+1 WHERE c1 IN (2154,2009,1979); +UPDATE IGNORE t1 SET c1=c1-1,c2=c2+1 WHERE c1 IN (2154,2009,1979); Warnings: Warning 1264 Out of range value for column 'c2' at row 1 Warning 1264 Out of range value for column 'c2' at row 3 diff --git a/mysql-test/suite/engines/iuds/t/delete_decimal.test b/mysql-test/suite/engines/iuds/t/delete_decimal.test index 8217c5727c3..053fc7810dc 100644 --- a/mysql-test/suite/engines/iuds/t/delete_decimal.test +++ b/mysql-test/suite/engines/iuds/t/delete_decimal.test @@ -13,7 +13,7 @@ CREATE TABLE t1(c1 DECIMAL(10,5) UNSIGNED NOT NULL, c2 DECIMAL(10,5) SIGNED NULL INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); # DECIMAL := DECIMAL(10,0); Decimal values in c3 will be stripped; -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); # c1, c2, c3 will be rounded automatically INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); @@ -23,8 +23,8 @@ INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); # Test insert leading zero, +/- signs, overflow handling INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); # Inserting in scientific notations INSERT INTO t1 VALUES('1.0e+4','1.0e-5','1.0e+9',10); @@ -137,7 +137,7 @@ CREATE TABLE t1(c1 FLOAT(10,5) UNSIGNED NOT NULL, c2 FLOAT(10,5) SIGNED NULL, c3 INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); # DECIMAL := DECIMAL(10,0); Decimal values in c3 will be stripped; -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); # c1, c2, c3 will be rounded automatically INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); @@ -147,8 +147,8 @@ INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); # Test insert leading zero, +/- signs, overflow handling INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); # Inserting in scientific notations INSERT INTO t1 VALUES('1.0e+4','1.0e-5','1.0e+9',10); @@ -268,7 +268,7 @@ CREATE TABLE t1(c1 DOUBLE(10,5) UNSIGNED NOT NULL, c2 DOUBLE(10,5) SIGNED NULL, INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); # DECIMAL := DECIMAL(10,0); Decimal values in c3 will be stripped; -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); # c1, c2, c3 will be rounded automatically INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); @@ -278,8 +278,8 @@ INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); # Test insert leading zero, +/- signs, overflow handling INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); # Inserting in scientific notations INSERT INTO t1 VALUES('1.0e+4','1.0e-5','1.0e+9',10); diff --git a/mysql-test/suite/engines/iuds/t/insert_decimal.test b/mysql-test/suite/engines/iuds/t/insert_decimal.test index 04ea80bc39b..c75fa19506e 100644 --- a/mysql-test/suite/engines/iuds/t/insert_decimal.test +++ b/mysql-test/suite/engines/iuds/t/insert_decimal.test @@ -17,31 +17,32 @@ INSERT INTO t1(c1) VALUES('12345.000009'); # Test insert max values INSERT INTO t1 VALUES('99999.99999','-99999.99999','99999.99999',3); -INSERT INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); +INSERT IGNORE INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); # Test insert outside max value, would be clipped to closest endpoint --sorted_result SELECT * FROM t1; --error ER_DUP_ENTRY +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); DELETE FROM t1 WHERE c1='99999.99999' AND c2='-99999.99999'; --sorted_result SELECT * FROM t1; -INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); -INSERT INTO t2 VALUES('10000000000','-10000000000','10000000000',6); +INSERT IGNORE INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); +INSERT IGNORE INTO t2 VALUES('10000000000','-10000000000','10000000000',6); # Test insert leading zero, +/- signs, overflow handling insert into t1 values ("0.0","0.0","0.0",7),("01.0","01.0","01.0",10); -insert into t1 values ("-.1","-.1","-.1",13); -insert into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); -insert into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); -insert into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); -insert into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); -insert into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); -insert into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); -insert into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); -insert into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); -insert into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); +insert ignore into t1 values ("-.1","-.1","-.1",13); +insert ignore into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); +insert ignore into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); +insert ignore into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); +insert ignore into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); +insert ignore into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); +insert ignore into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); +insert ignore into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); +insert ignore into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); +insert ignore into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); # Now Select --sorted_result @@ -289,8 +290,8 @@ SELECT c1,MIN(c2) FROM t1 GROUP BY c1; # Test extremes CREATE TABLE t5(c1 DECIMAL(65,0) UNSIGNED NOT NULL, c2 DECIMAL(65,0) SIGNED NULL, c3 DECIMAL, c4 INT, INDEX idx(c1,c2)); -INSERT INTO t5 VALUES('1e+64','-1e+64','1e+64',1),('1e-64','-1e-64','1e-64',2); -INSERT INTO t5 VALUES('1.2e+65','-1.2e+65','1.2e+65',3),('1.2e-65','-1.2e-65','1.2e-65',4); +INSERT IGNORE INTO t5 VALUES('1e+64','-1e+64','1e+64',1),('1e-64','-1e-64','1e-64',2); +INSERT IGNORE INTO t5 VALUES('1.2e+65','-1.2e+65','1.2e+65',3),('1.2e-65','-1.2e-65','1.2e-65',4); --sorted_result SELECT * FROM t5; DROP TABLE t5; @@ -347,28 +348,29 @@ INSERT INTO t1(c1) VALUES('12345.000009'); # Test insert max values INSERT INTO t1 VALUES('99999.99999','-99999.99999','99999.99999',3); -INSERT INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); +INSERT IGNORE INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); # Test insert outside max value, would be clipped to closest endpoint SELECT * FROM t1; --error ER_DUP_ENTRY +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); DELETE FROM t1 WHERE c1='100000.00000' AND c2='-100000.00000'; -INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); -INSERT INTO t2 VALUES('10000000000','-10000000000','10000000000',6); +INSERT IGNORE INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); +INSERT IGNORE INTO t2 VALUES('10000000000','-10000000000','10000000000',6); # Test insert leading zero, +/- signs, overflow handling insert into t1 values ("0.0","0.0","0.0",7),("01.0","01.0","01.0",10); -insert into t1 values ("-.1","-.1","-.1",13); -insert into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); -insert into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); -insert into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); -insert into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); -insert into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); -insert into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); -insert into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); -insert into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); -insert into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); +insert ignore into t1 values ("-.1","-.1","-.1",13); +insert ignore into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); +insert ignore into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); +insert ignore into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); +insert ignore into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); +insert ignore into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); +insert ignore into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); +insert ignore into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); +insert ignore into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); +insert ignore into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); # Now Select --sorted_result @@ -622,6 +624,7 @@ INSERT INTO t5 VALUES('1e+22','-1e+22','1e+22',1),('1e-22','-1e-22','1e-22',2); --sorted_result SELECT * FROM t5; --enable_result_log +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t5 CHANGE c1 c1 FLOAT(24,0) SIGNED NOT NULL, CHANGE c2 c2 FLOAT(24,0) UNSIGNED NULL; INSERT INTO t5 VALUES('-1e+23','1e+23','1e+23',3),('-1e-23','1e-23','1e-23',4); #Output is platform dependent @@ -629,9 +632,10 @@ INSERT INTO t5 VALUES('-1e+23','1e+23','1e+23',3),('-1e-23','1e-23','1e-23',4); --sorted_result SELECT * FROM t5; --enable_result_log +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t5 CHANGE c1 c1 FLOAT(53,0) UNSIGNED, CHANGE c2 c2 FLOAT(53,0) SIGNED; -INSERT INTO t5 VALUES('1e+52','-1e+52','1e+52',5),('1e-52','-1e-52','1e-52',6); -INSERT INTO t5 VALUES('1e+53','-1e+53','1e+53',7),('1e-53','-1e-53','1e-53',8); +INSERT IGNORE INTO t5 VALUES('1e+52','-1e+52','1e+52',5),('1e-52','-1e-52','1e-52',6); +INSERT IGNORE INTO t5 VALUES('1e+53','-1e+53','1e+53',7),('1e-53','-1e-53','1e-53',8); #Output is platform dependent --replace_column 1 # 2 # @@ -665,28 +669,29 @@ INSERT INTO t1(c1) VALUES('12345.000009'); # Test insert max values INSERT INTO t1 VALUES('99999.99999','-99999.99999','99999.99999',3); -INSERT INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); +INSERT IGNORE INTO t2 VALUES('-9999999999','-9999999999','9999999999',4); # Test insert outside max value, would be clipped to closest endpoint SELECT * FROM t1; --error ER_DUP_ENTRY +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); DELETE FROM t1 WHERE c1='99999.99999' AND c2='-99999.99999'; -INSERT INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); -INSERT INTO t2 VALUES('10000000000','-10000000000','10000000000',6); +INSERT IGNORE INTO t1 VALUES('100000.000002','-100000.000002','100000.000002',5); +INSERT IGNORE INTO t2 VALUES('10000000000','-10000000000','10000000000',6); # Test insert leading zero, +/- signs, overflow handling insert into t1 values ("0.0","0.0","0.0",7),("01.0","01.0","01.0",10); -insert into t1 values ("-.1","-.1","-.1",13); -insert into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); -insert into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); -insert into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); -insert into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); -insert into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); -insert into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); -insert into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); -insert into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); -insert into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); +insert ignore into t1 values ("-.1","-.1","-.1",13); +insert ignore into t1 values ("+111111111.11","+111111111.11","+111111111.11",19); +insert ignore into t2 values ("0.0","0.0","0.0",7),("-0.0","-0.0","-0.0",8),("+0.0","+0.0","+0.0",9),("01.0","01.0","01.0",10),("+01.0","+01.0","+01.0",11),("-01.0","-01.0","-01.0",12); +insert ignore into t2 values ("-.1","-.1","-.1",13),("+.1","+.1","+.1",14),(".1",".1",".1",15); +insert ignore into t2 values ("00000000000001","00000000000001","00000000000001",16),("+0000000000001","+0000000000001","+0000000000001",17),("-0000000000001","-0000000000001","-0000000000001",18); +insert ignore into t2 values ("+111111111.11","+111111111.11","+111111111.11",19),("111111111.11","111111111.11","111111111.11",20),("-11111111.11","-11111111.11","-11111111.11",21); +insert ignore into t2 values ("-111111111.11","-111111111.11","-111111111.11",22),("+1111111111.11","+1111111111.11","+1111111111.11",23),("1111111111.11","1111111111.11","1111111111.11",24); +insert ignore into t2 values ("1e+1000","1e+1000","1e+1000",25),("1e-1000","1e-1000","1e-1000",26),("-1e+1000","-1e+1000","-1e+1000",27); +insert ignore into t2 values ("1e+4294967296","1e+4294967296","1e+4294967296",28),("1e-4294967296","1e-4294967296","1e-4294967296",29); +insert ignore into t2 values ("1e+18446744073709551615","1e+18446744073709551615","1e+18446744073709551615",30),("1e+18446744073709551616","1e+18446744073709551616","1e+18446744073709551616",31),("1e-9223372036854775807","1e-9223372036854775807","1e-9223372036854775807",32),("1e-9223372036854775809","1e-9223372036854775809","1e-9223372036854775809",33); # Now Select --sorted_result @@ -939,6 +944,7 @@ CREATE TABLE t5(c1 DOUBLE(23,0) UNSIGNED NOT NULL, c2 DOUBLE(23,0) SIGNED NULL, INSERT INTO t5 VALUES('1e+22','-1e+22','1e+22',1),('1e-22','-1e-22','1e-22',2); --sorted_result SELECT * FROM t5; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t5 CHANGE c1 c1 DOUBLE(24,0) SIGNED NOT NULL, CHANGE c2 c2 DOUBLE(24,0) UNSIGNED NULL; INSERT INTO t5 VALUES('-1e+23','1e+23','1e+23',3),('-1e-23','1e-23','1e-23',4); #Output is platform dependent @@ -946,6 +952,7 @@ INSERT INTO t5 VALUES('-1e+23','1e+23','1e+23',3),('-1e-23','1e-23','1e-23',4); --sorted_result SELECT * FROM t5; --enable_result_log +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t5 CHANGE c1 c1 DOUBLE(53,0) UNSIGNED, CHANGE c2 c2 DOUBLE(53,0) SIGNED; INSERT INTO t5 VALUES('1e+52','-1e+52','1e+52',5),('1e-52','-1e-52','1e-52',6); INSERT INTO t5 VALUES('1e+53','-1e+53','1e+53',7),('1e-53','-1e-53','1e-53',8); diff --git a/mysql-test/suite/engines/iuds/t/insert_number.test b/mysql-test/suite/engines/iuds/t/insert_number.test index 2d5332e2d2e..9e4a971d711 100644 --- a/mysql-test/suite/engines/iuds/t/insert_number.test +++ b/mysql-test/suite/engines/iuds/t/insert_number.test @@ -24,14 +24,14 @@ INSERT INTO t2 VALUES(105,NULL,102,103,104,105,106); INSERT INTO t3 VALUES(105,NULL,102,103,104,105,106); # Insert empty string '' -INSERT INTO t1 VALUES('','',17,18,19,20,21); -INSERT INTO t2 VALUES('','',17,18,19,20,21); -INSERT INTO t3 VALUES('','',17,18,19,20,21); +INSERT IGNORE INTO t1 VALUES('','',17,18,19,20,21); +INSERT IGNORE INTO t2 VALUES('','',17,18,19,20,21); +INSERT IGNORE INTO t3 VALUES('','',17,18,19,20,21); # Insert negative value to unsigned integer, positive value to signed integer, zero values -INSERT INTO t1 VALUES(-1,124,22,23,24,25,26); -INSERT INTO t2 VALUES(-1,124,22,23,24,25,26); -INSERT INTO t3 VALUES(-1,124,22,23,24,25,26); +INSERT IGNORE INTO t1 VALUES(-1,124,22,23,24,25,26); +INSERT IGNORE INTO t2 VALUES(-1,124,22,23,24,25,26); +INSERT IGNORE INTO t3 VALUES(-1,124,22,23,24,25,26); INSERT INTO t1 VALUES(0,124,27,28,29,30,31); INSERT INTO t2 VALUES(0,124,27,28,29,30,31); INSERT INTO t3 VALUES(0,124,27,28,29,30,31); @@ -40,9 +40,9 @@ INSERT INTO t2 VALUES(0,0,32,32,34,35,36); INSERT INTO t3 VALUES(0,0,32,32,34,35,36); # Insert non-numeric value to numeric column, would be converted to 0 or numeric value (if contains part) -INSERT INTO t1 VALUES('101.34 a','a',37,38,39,40,41); -INSERT INTO t2 VALUES('101.34 a','a',37,38,39,40,41); -INSERT INTO t3 VALUES('101.34 a','a',37,38,39,40,41); +INSERT IGNORE INTO t1 VALUES('101.34 a','a',37,38,39,40,41); +INSERT IGNORE INTO t2 VALUES('101.34 a','a',37,38,39,40,41); +INSERT IGNORE INTO t3 VALUES('101.34 a','a',37,38,39,40,41); --sorted_result SELECT * FROM t1; @@ -384,29 +384,29 @@ INSERT INTO t4(c1,c3,c4) VALUES(NULL,104,LAST_INSERT_ID()); --if (!$auto_value) { --die "AUTO_INCREMENT didn't work well on NULL" } -INSERT INTO t5(c1,c3,c4) VALUES(NULL,-104,LAST_INSERT_ID()); +INSERT IGNORE INTO t5(c1,c3,c4) VALUES(NULL,-104,LAST_INSERT_ID()); --let $auto_value=`SELECT LAST_INSERT_ID()=110 AND c1=110 FROM t5 WHERE c3=-104;` --if (!$auto_value) { --die "AUTO_INCREMENT didn't work well on NULL" } # Insert empty strings, increments the value -INSERT INTO t4 VALUES('','',17,18,19,20,21,22); +INSERT IGNORE INTO t4 VALUES('','',17,18,19,20,21,22); --let $auto_value=`SELECT LAST_INSERT_ID()=3 AND c1=3 FROM t4 WHERE c2=0 AND c3=17;` --if (!$auto_value) { --die "AUTO_INCREMENT didn't work well on ''" } -INSERT INTO t5 VALUES('','',-17,18,19,20,21,22); +INSERT IGNORE INTO t5 VALUES('','',-17,18,19,20,21,22); --let $auto_value=`SELECT LAST_INSERT_ID()=111 AND c1=111 FROM t5 WHERE c2=0 AND c3=-17;` --if (!$auto_value) { --die "AUTO_INCREMENT didn't work well on ''" } # Insert strings with numeric part, inserts the numeric part of the string -INSERT INTO t4 VALUES('102.34 a','a','a',37,38,39,40,41); +INSERT IGNORE INTO t4 VALUES('102.34 a','a','a',37,38,39,40,41); --let $auto_value=`SELECT LAST_INSERT_ID()=111 AND c1=102 FROM t4 WHERE c2=0 AND c3=0;` --if (!$auto_value) { --die "AUTO_INCREMENT didn't work well on invalid strings with numeric part" } -INSERT INTO t5 VALUES('102.34 a','a','a',37,38,39,40,41); +INSERT IGNORE INTO t5 VALUES('102.34 a','a','a',37,38,39,40,41); --let $auto_value=`SELECT LAST_INSERT_ID()=111 AND c1=102 FROM t5 WHERE c2=0 AND c3=0;` --if (!$auto_value) { --die "AUTO_INCREMENT didn't work well on invalid strings with numeric part" @@ -417,7 +417,7 @@ INSERT INTO t4 VALUES(4,7,8,9,10,11,12,13); --if (!$auto_value) { --die "AUTO_INCREMENT didn't work on negative value" } -INSERT INTO t5 VALUES(-1,-1,-1,8,9,10,11,12); +INSERT IGNORE INTO t5 VALUES(-1,-1,-1,8,9,10,11,12); --let $auto_value=`SELECT LAST_INSERT_ID()=112 AND c1=112 FROM t5 WHERE c2=-1 AND c3=-1;` --if (!$auto_value) { --die "AUTO_INCREMENT didn't work for negative value on unsigned" @@ -676,12 +676,14 @@ SELECT c2,MIN(c3) FROM t4 GROUP BY c2; # Insert NULL to non-null column --error ER_BAD_NULL_ERROR +SET STATEMENT sql_mode = '' FOR INSERT INTO t2(c1) VALUES(NULL); --error ER_BAD_NULL_ERROR INSERT INTO t3 VALUES(NULL,1,2,3,4,5,6); --error ER_BAD_NULL_ERROR INSERT INTO t4(c3) VALUES(NULL); --error ER_BAD_NULL_ERROR +SET STATEMENT sql_mode = '' FOR INSERT INTO t5(c3) VALUES(NULL); # Insert duplicate value to pk @@ -696,6 +698,7 @@ INSERT INTO t5(c1,c2,c3) VALUES(101,-102,4) /*throws error as the row with c1=10 # Insert duplicate value to unique column, throws error --error ER_DUP_ENTRY +SET STATEMENT sql_mode = '' FOR INSERT INTO t5(c3) VALUES(-103) /*throws error as the row with c3=-103 exists */; --error ER_DUP_ENTRY # Insert duplicate value to clustered unique column, throws error @@ -737,7 +740,7 @@ INSERT INTO t7(c1) SELECT c1 FROM t6; TRUNCATE TABLE t6; # Test 'INSERT INTO SELECT FROM' with AUTO_INCREMENT and inserting 0,NULL -INSERT INTO t6 VALUES(5,-1,1,1,1,1,1),(6,-2,2,2,2,2,2),(0,-4,4,4,4,4,4),(NULL,-5,5,5,5,5,5); +INSERT IGNORE INTO t6 VALUES(5,-1,1,1,1,1,1),(6,-2,2,2,2,2,2),(0,-4,4,4,4,4,4),(NULL,-5,5,5,5,5,5); INSERT INTO t8 SELECT * FROM t6; SELECT LAST_INSERT_ID() AS last_insert_id; --sorted_result @@ -749,7 +752,7 @@ SELECT * FROM t8; DROP TABLE t6,t7,t8; # Test 'INSERT SET' -INSERT INTO t2 SET c3=5,c4=6; +INSERT IGNORE INTO t2 SET c3=5,c4=6; SET SQL_MODE=STRICT_ALL_TABLES; --error ER_NO_DEFAULT_FOR_FIELD INSERT INTO t2 SET c3=5,c4=6; diff --git a/mysql-test/suite/engines/iuds/t/insert_time.test b/mysql-test/suite/engines/iuds/t/insert_time.test index 4579d9a8f45..0e5e21507a9 100644 --- a/mysql-test/suite/engines/iuds/t/insert_time.test +++ b/mysql-test/suite/engines/iuds/t/insert_time.test @@ -43,15 +43,17 @@ INSERT INTO t3 VALUES('8:3:2','8:3:2','2009-01-18'),('1112','1112','2009-01-19') INSERT INTO t4 VALUES('8:3:2','8:3:2','2009-01-18'),('1112','1112','2009-01-19'),(11,11,'2009-01-20'),('00:12:30','00:12:30','2009-01-23'),('9:00:45','9:00:45','2009-01-24'),('9:36:00','9:36:00','2009-01-25'); # Outside range would be clipped to closest end point --error ER_DUP_ENTRY +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('-850:00:00','-850:00:00','2009-01-21'); --error ER_DUP_ENTRY +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES('850:00:00','850:00:00','2009-01-21'); DELETE FROM t1 WHERE c1='-838:59:59' AND c2='-838:59:59'; DELETE FROM t1 WHERE c1='838:59:59' AND c2='838:59:59'; -INSERT INTO t1 VALUES('-850:00:00','-850:00:00','2009-01-21'),('850:00:00','850:00:00','2009-01-21'); +INSERT IGNORE INTO t1 VALUES('-850:00:00','-850:00:00','2009-01-21'),('850:00:00','850:00:00','2009-01-21'); # Insert invalid values -INSERT INTO t4 VALUES('10.22.22','10.22.22','2009-01-26'),(1234567,1234567,'2009-01-27'),(123456789,123456789,'2009-01-28'),(123456789.10,123456789.10,'2009-01-29'),('10 22:22','10 22:22','2009-01-30'),('12.45a','12.45a','2009-01-31'); +INSERT IGNORE INTO t4 VALUES('10.22.22','10.22.22','2009-01-26'),(1234567,1234567,'2009-01-27'),(123456789,123456789,'2009-01-28'),(123456789.10,123456789.10,'2009-01-29'),('10 22:22','10 22:22','2009-01-30'),('12.45a','12.45a','2009-01-31'); # Insert permissible NULLs INSERT INTO t1 VALUES('8:29:45',NULL,'2009-02-01'); @@ -1044,7 +1046,7 @@ SELECT * FROM t3 WHERE c1='32 9:23' AND c2='33 9:23' /* 1 row */; INSERT INTO t1 SET c1='07:23:55',c2='13 06:23:55'; INSERT INTO t2 SET c1='07:23:55',c2='13 06:23:55'; INSERT INTO t3 SET c1='07:23:55'; -INSERT INTO t4 SET c2='07:23:55'; +INSERT IGNORE INTO t4 SET c2='07:23:55'; SELECT * FROM t1 WHERE c1='07:23:55' AND c2='13 06:23:55' /* Returns 1 row with values for other column as NULL */; SELECT * FROM t2 WHERE c1='07:23:55' AND c2='13 06:23:55' /* Returns 1 row with values for other column as NULL */; SELECT * FROM t3 WHERE c1='07:23:55' /* Returns 1 row with values for other column as NULL */; @@ -1055,7 +1057,7 @@ CREATE TABLE t5(c1 TIME NOT NULL, c2 TIME NULL, c3 DATE, INDEX idx(c1,c2)); INSERT INTO t5 SELECT * FROM t4; SELECT * FROM t5; TRUNCATE TABLE t5; -INSERT INTO t5 SELECT * FROM t4 WHERE c1 >='12colon34colon56'; +INSERT IGNORE INTO t5 SELECT * FROM t4 WHERE c1 >='12colon34colon56'; SELECT * FROM t5; TRUNCATE TABLE t5; DROP TABLE t5; diff --git a/mysql-test/suite/engines/iuds/t/insert_year.test b/mysql-test/suite/engines/iuds/t/insert_year.test index 392b4544376..4d92e36f068 100644 --- a/mysql-test/suite/engines/iuds/t/insert_year.test +++ b/mysql-test/suite/engines/iuds/t/insert_year.test @@ -31,27 +31,27 @@ INSERT INTO t4 VALUES(1,1,'98-12-9','98.12.9 11:30:45'),(20,20,'98-12-8','98.12. # As the result of a function SET TIMESTAMP=1233216687; # 2009-01-29 13:41:27 -INSERT INTO t1 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); -INSERT INTO t2 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); -INSERT INTO t3 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); -INSERT INTO t4 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t1 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t2 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t3 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t4 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); # Insert other valid year values one digit strings, '0', '000' INSERT INTO t1(c1) VALUES('5'); -INSERT INTO t2(c1) VALUES('5'); +INSERT IGNORE INTO t2(c1) VALUES('5'); INSERT INTO t3(c1) VALUES('5'); INSERT INTO t4(c1,c2) VALUES('0','000'); # Insert invalid year values, outside range, would be converted to zero value -INSERT INTO t2 VALUES(1900,2156,'08-01-06','08/01/07'); -INSERT INTO t3 VALUES('1900','2156','08-01-08','08/1/9'); -INSERT INTO t4 VALUES('1900','2156','08-01-08','08/1/9'),(1900,2156,'08-01-08','08/1/9'),(0,00,'08-01-08','08/1/9'),(000,000,'08-01-08','08/1/9'),('-20','100','08-01-08','08/1/9'),(-20,100,'08-01-08','08/1/9'); +INSERT IGNORE INTO t2 VALUES(1900,2156,'08-01-06','08/01/07'); +INSERT IGNORE INTO t3 VALUES('1900','2156','08-01-08','08/1/9'); +INSERT IGNORE INTO t4 VALUES('1900','2156','08-01-08','08/1/9'),(1900,2156,'08-01-08','08/1/9'),(0,00,'08-01-08','08/1/9'),(000,000,'08-01-08','08/1/9'),('-20','100','08-01-08','08/1/9'),(-20,100,'08-01-08','08/1/9'); # Insert empty string '', would be converted to zero -INSERT INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; +INSERT IGNORE INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; # Insert non-date value(absurd values), would be converted to zero -INSERT INTO t4 VALUES('abcd','abcd','08-01-10','08/01/11'),(1234,1234,'08-01-12','08/01/13') /* Inserts zero dates for absurd dates */; +INSERT IGNORE INTO t4 VALUES('abcd','abcd','08-01-10','08/01/11'),(1234,1234,'08-01-12','08/01/13') /* Inserts zero dates for absurd dates */; # Insert duplicates for parts of the clustered key/unique index INSERT INTO t2 VALUES('20','30','98-12-16','98.12.16 11:30:45'),('40','20','98-12-15','98.12.15 11:30:45'); @@ -745,9 +745,9 @@ DROP TABLE t5; # Test 'INSERT SET' INSERT INTO t1 SET c1='00'; -INSERT INTO t2 SET c1=69; +INSERT IGNORE INTO t2 SET c1=69; INSERT INTO t3 SET c1=70; -INSERT INTO t4 SET c2=99; +INSERT IGNORE INTO t4 SET c2=99; --sorted_result SELECT * FROM t1 WHERE c1=0; --sorted_result @@ -787,27 +787,27 @@ INSERT INTO t4 VALUES(1,1,'98-12-9','98.12.9 11:30:45'),(20,20,'98-12-8','98.12. # As the result of a function SET TIMESTAMP=1233216687; # 2009-01-29 13:41:27 -INSERT INTO t1 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); -INSERT INTO t2 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); -INSERT INTO t3 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); -INSERT INTO t4 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t1 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t2 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t3 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); +INSERT IGNORE INTO t4 VALUES(NOW(),CURRENT_DATE,NOW(),CURRENT_DATE); # Insert other valid year values one digit strings, '0', '000' INSERT INTO t1(c1) VALUES('5'); -INSERT INTO t2(c1) VALUES('5'); +INSERT IGNORE INTO t2(c1) VALUES('5'); INSERT INTO t3(c1) VALUES('5'); INSERT INTO t4(c1,c2) VALUES('0','000'); # Insert invalid year values, outside range, would be converted to zero value -INSERT INTO t2 VALUES(1900,2156,'08-01-06','08/01/07'); -INSERT INTO t3 VALUES('1900','2156','08-01-08','08/1/9'); -INSERT INTO t4 VALUES('1900','2156','08-01-08','08/1/9'),(1900,2156,'08-01-08','08/1/9'),(0,00,'08-01-08','08/1/9'),(000,000,'08-01-08','08/1/9'),('-20','100','08-01-08','08/1/9'),(-20,100,'08-01-08','08/1/9'); +INSERT IGNORE INTO t2 VALUES(1900,2156,'08-01-06','08/01/07'); +INSERT IGNORE INTO t3 VALUES('1900','2156','08-01-08','08/1/9'); +INSERT IGNORE INTO t4 VALUES('1900','2156','08-01-08','08/1/9'),(1900,2156,'08-01-08','08/1/9'),(0,00,'08-01-08','08/1/9'),(000,000,'08-01-08','08/1/9'),('-20','100','08-01-08','08/1/9'),(-20,100,'08-01-08','08/1/9'); # Insert empty string '', would be converted to zero -INSERT INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; +INSERT IGNORE INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; # Insert non-date value(absurd values), would be converted to zero -INSERT INTO t4 VALUES('abcd','abcd','08-01-10','08/01/11'),(1234,1234,'08-01-12','08/01/13') /* Inserts zero dates for absurd dates */; +INSERT IGNORE INTO t4 VALUES('abcd','abcd','08-01-10','08/01/11'),(1234,1234,'08-01-12','08/01/13') /* Inserts zero dates for absurd dates */; # Insert duplicates for parts of the clustered key/unique index INSERT INTO t2 VALUES('20','30','98-12-16','98.12.16 11:30:45'),('40','20','98-12-15','98.12.15 11:30:45'); @@ -1491,9 +1491,9 @@ DROP TABLE t5; # Test 'INSERT SET' INSERT INTO t1 SET c1='00'; -INSERT INTO t2 SET c1=69; +INSERT IGNORE INTO t2 SET c1=69; INSERT INTO t3 SET c1=70; -INSERT INTO t4 SET c2=99; +INSERT IGNORE INTO t4 SET c2=99; --sorted_result SELECT * FROM t1 WHERE c1=0; --sorted_result diff --git a/mysql-test/suite/engines/iuds/t/strings_update_delete.test b/mysql-test/suite/engines/iuds/t/strings_update_delete.test index 2099869e801..736439ca4b7 100644 --- a/mysql-test/suite/engines/iuds/t/strings_update_delete.test +++ b/mysql-test/suite/engines/iuds/t/strings_update_delete.test @@ -79,7 +79,7 @@ DROP TABLE t3,t4,t5; CREATE TABLE t6 (a char(2) not null primary key, b varchar(20) not null, key (b)); CREATE TABLE t7 (a char(2) not null primary key, b varchar(20) not null, key (b)); INSERT INTO t6 values ('AB','MySQLAB'),('JA','Sun Microsystems'),('MS','Microsoft'),('IB','IBM- Inc.'),('GO','Google Inc.'); -INSERT INTO t7 values ('AB','Sweden'),('JA','USA'),('MS','United States of Amercica'),('IB','North America'),('GO','South America'); +INSERT IGNORE INTO t7 values ('AB','Sweden'),('JA','USA'),('MS','United States of Amercica'),('IB','North America'),('GO','South America'); update t6,t7 set t6.a=LCASE(t6.a); --sorted_result select * from t6; @@ -117,22 +117,23 @@ CREATE TABLE t16 (c1 SET('a', 'b', 'c', 'd', 'e')); eval INSERT INTO t16 VALUES (('d,a,d,d')); --sorted_result SELECT c1 FROM t16; -eval INSERT INTO t16 (c1) VALUES ('a,b,d'),('d,A ,b'); +eval INSERT IGNORE INTO t16 (c1) VALUES ('a,b,d'),('d,A ,b'); --sorted_result SELECT c1 FROM t16; #--warning WARN_DATA_TRUNCATED -eval INSERT INTO t16 (c1) VALUES ('f,a,b'); +eval INSERT IGNORE INTO t16 (c1) VALUES ('f,a,b'); SHOW WARNINGS; --sorted_result SELECT c1 FROM t16; #--warning ER_DUPLICATED_VALUE_IN_TYPE +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t17 (c1 SET('a','b','a','b')); SHOW WARNINGS; # Tests for ENUM datatype # Invalid ENUM value insert behavior CREATE TABLE t18 (c1 CHAR(4),c2 enum('SMALL','MEDIUM','LARGE','VERY LARGE')); eval INSERT INTO t18 VALUES('SIZE', 'SMALL'); -eval INSERT INTO t18 VALUES('SIZE', 'SMALL1'); +eval INSERT IGNORE INTO t18 VALUES('SIZE', 'SMALL1'); --sorted_result SELECT * FROM t18 WHERE c2=0; EXPLAIN SELECT * FROM t18 WHERE c2=0; diff --git a/mysql-test/suite/engines/iuds/t/type_bit_iuds.test b/mysql-test/suite/engines/iuds/t/type_bit_iuds.test index 88418decfad..8f48d50fad0 100644 --- a/mysql-test/suite/engines/iuds/t/type_bit_iuds.test +++ b/mysql-test/suite/engines/iuds/t/type_bit_iuds.test @@ -72,7 +72,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(0) NOT NULL PRIMARY KEY, c2 BIT(0)); CREATE TABLE t6(c1 BIT(0), c2 BIT(0)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -147,7 +147,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -157,7 +157,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -177,7 +177,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -205,7 +205,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -220,14 +220,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -235,7 +235,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -263,7 +263,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -312,14 +312,14 @@ let $STR2= query_get_value(select @v3 as I,I,1); eval INSERT INTO t1 VALUES (b'$STR2'); set @v3=repeat('10',@v2); let $STR3= query_get_value(select @v3 as I,I,1); -eval INSERT INTO t1 VALUES (b'$STR3'); +eval INSERT IGNORE INTO t1 VALUES (b'$STR3'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'0'); @@ -358,7 +358,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(1) NOT NULL PRIMARY KEY, c2 BIT(1)); CREATE TABLE t6(c1 BIT(1), c2 BIT(1)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -433,7 +433,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -443,7 +443,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -463,7 +463,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -491,7 +491,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -506,14 +506,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -521,7 +521,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -549,7 +549,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -605,7 +605,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'0'); @@ -644,7 +644,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(2) NOT NULL PRIMARY KEY, c2 BIT(2)); CREATE TABLE t6(c1 BIT(2), c2 BIT(2)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -719,7 +719,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -729,7 +729,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -749,7 +749,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -777,7 +777,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -792,14 +792,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -807,7 +807,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -835,7 +835,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -891,7 +891,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'0'); @@ -930,7 +930,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(4) NOT NULL PRIMARY KEY, c2 BIT(4)); CREATE TABLE t6(c1 BIT(4), c2 BIT(4)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -1005,7 +1005,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -1015,7 +1015,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -1067,7 +1067,7 @@ INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10, # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -1078,14 +1078,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -1093,7 +1093,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -1177,7 +1177,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'0'); @@ -1216,7 +1216,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(8) NOT NULL PRIMARY KEY, c2 BIT(8)); CREATE TABLE t6(c1 BIT(8), c2 BIT(8)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -1297,13 +1297,13 @@ SELECT * FROM t7; ############# UPDATE ########### # Update order by limit -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; # Update with NULL ( NULL to number & number to NULL) @@ -1323,7 +1323,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -1339,7 +1339,7 @@ SET SQL_MODE=DEFAULT; #Multi table update --disable_warnings -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -1379,7 +1379,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -1463,7 +1463,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'0'); @@ -1609,7 +1609,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -1749,7 +1749,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'0'); @@ -1895,7 +1895,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -2035,7 +2035,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'0'); @@ -2360,7 +2360,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(0) NOT NULL PRIMARY KEY, c2 BIT(0)); CREATE TABLE t6(c1 BIT(0), c2 BIT(0)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -2435,7 +2435,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -2445,7 +2445,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -2465,7 +2465,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -2493,7 +2493,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -2508,14 +2508,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -2523,7 +2523,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -2551,7 +2551,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -2600,14 +2600,14 @@ let $STR2= query_get_value(select @v3 as I,I,1); eval INSERT INTO t1 VALUES (b'$STR2'); set @v3=repeat('10',@v2); let $STR3= query_get_value(select @v3 as I,I,1); -eval INSERT INTO t1 VALUES (b'$STR3'); +eval INSERT IGNORE INTO t1 VALUES (b'$STR3'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1'); @@ -2646,7 +2646,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(1) NOT NULL PRIMARY KEY, c2 BIT(1)); CREATE TABLE t6(c1 BIT(1), c2 BIT(1)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -2721,7 +2721,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -2731,7 +2731,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -2751,7 +2751,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -2779,7 +2779,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -2794,14 +2794,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -2809,7 +2809,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -2837,7 +2837,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -2893,7 +2893,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1'); @@ -2932,7 +2932,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(2) NOT NULL PRIMARY KEY, c2 BIT(2)); CREATE TABLE t6(c1 BIT(2), c2 BIT(2)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -3007,7 +3007,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -3017,7 +3017,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -3037,7 +3037,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -3065,7 +3065,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -3080,14 +3080,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -3095,7 +3095,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -3123,7 +3123,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -3179,7 +3179,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1'); @@ -3218,7 +3218,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(4) NOT NULL PRIMARY KEY, c2 BIT(4)); CREATE TABLE t6(c1 BIT(4), c2 BIT(4)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -3293,7 +3293,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -3303,7 +3303,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -3355,7 +3355,7 @@ INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10, # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -3366,14 +3366,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -3381,7 +3381,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -3465,7 +3465,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1'); @@ -3504,7 +3504,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(8) NOT NULL PRIMARY KEY, c2 BIT(8)); CREATE TABLE t6(c1 BIT(8), c2 BIT(8)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -3585,13 +3585,13 @@ SELECT * FROM t7; ############# UPDATE ########### # Update order by limit -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; # Update with NULL ( NULL to number & number to NULL) @@ -3611,7 +3611,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -3627,7 +3627,7 @@ SET SQL_MODE=DEFAULT; #Multi table update --disable_warnings -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -3667,7 +3667,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -3751,7 +3751,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1'); @@ -3897,7 +3897,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -4037,7 +4037,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1'); @@ -4183,7 +4183,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -4323,7 +4323,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1'); @@ -4612,8 +4612,8 @@ let $STR3= query_get_value(select @v5 as I,I,1); eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10'); -INSERT INTO t2 VALUES (b'10', b'10', b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t2 VALUES (b'10', b'10', b'10'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -4648,7 +4648,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(0) NOT NULL PRIMARY KEY, c2 BIT(0)); CREATE TABLE t6(c1 BIT(0), c2 BIT(0)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -4723,7 +4723,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -4733,7 +4733,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -4753,7 +4753,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -4781,7 +4781,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -4796,14 +4796,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -4811,7 +4811,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -4839,7 +4839,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -4888,18 +4888,18 @@ let $STR2= query_get_value(select @v3 as I,I,1); eval INSERT INTO t1 VALUES (b'$STR2'); set @v3=repeat('10',@v2); let $STR3= query_get_value(select @v3 as I,I,1); -eval INSERT INTO t1 VALUES (b'$STR3'); +eval INSERT IGNORE INTO t1 VALUES (b'$STR3'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10'); -INSERT INTO t2 VALUES (b'10', b'10', b'10'); +INSERT IGNORE INTO t1 VALUES (b'10'); +INSERT IGNORE INTO t2 VALUES (b'10', b'10', b'10'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -4934,7 +4934,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(1) NOT NULL PRIMARY KEY, c2 BIT(1)); CREATE TABLE t6(c1 BIT(1), c2 BIT(1)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -5009,7 +5009,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -5019,7 +5019,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -5039,7 +5039,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -5067,7 +5067,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -5082,14 +5082,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -5097,7 +5097,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -5125,7 +5125,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -5181,7 +5181,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'10'); @@ -5220,7 +5220,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(2) NOT NULL PRIMARY KEY, c2 BIT(2)); CREATE TABLE t6(c1 BIT(2), c2 BIT(2)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -5295,7 +5295,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -5305,7 +5305,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -5325,7 +5325,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -5353,7 +5353,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -5368,14 +5368,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -5383,7 +5383,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -5411,7 +5411,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -5467,7 +5467,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'10'); @@ -5506,7 +5506,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(4) NOT NULL PRIMARY KEY, c2 BIT(4)); CREATE TABLE t6(c1 BIT(4), c2 BIT(4)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -5581,7 +5581,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -5591,7 +5591,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -5643,7 +5643,7 @@ INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10, # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -5654,14 +5654,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -5669,7 +5669,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -5753,7 +5753,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'10'); @@ -5792,7 +5792,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(8) NOT NULL PRIMARY KEY, c2 BIT(8)); CREATE TABLE t6(c1 BIT(8), c2 BIT(8)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -5873,13 +5873,13 @@ SELECT * FROM t7; ############# UPDATE ########### # Update order by limit -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; # Update with NULL ( NULL to number & number to NULL) @@ -5899,7 +5899,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -5915,7 +5915,7 @@ SET SQL_MODE=DEFAULT; #Multi table update --disable_warnings -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -5955,7 +5955,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -6039,7 +6039,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'10'); @@ -6185,7 +6185,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -6325,7 +6325,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'10'); @@ -6471,7 +6471,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -6611,7 +6611,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'10'); @@ -6900,8 +6900,8 @@ let $STR3= query_get_value(select @v5 as I,I,1); eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010'); -INSERT INTO t2 VALUES (b'1010', b'1010', b'1010'); +INSERT IGNORE INTO t1 VALUES (b'1010'); +INSERT IGNORE INTO t2 VALUES (b'1010', b'1010', b'1010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -6936,7 +6936,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(0) NOT NULL PRIMARY KEY, c2 BIT(0)); CREATE TABLE t6(c1 BIT(0), c2 BIT(0)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -7011,7 +7011,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -7021,7 +7021,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -7041,7 +7041,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -7069,7 +7069,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -7084,14 +7084,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -7099,7 +7099,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -7127,7 +7127,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -7176,18 +7176,18 @@ let $STR2= query_get_value(select @v3 as I,I,1); eval INSERT INTO t1 VALUES (b'$STR2'); set @v3=repeat('10',@v2); let $STR3= query_get_value(select @v3 as I,I,1); -eval INSERT INTO t1 VALUES (b'$STR3'); +eval INSERT IGNORE INTO t1 VALUES (b'$STR3'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010'); -INSERT INTO t2 VALUES (b'1010', b'1010', b'1010'); +INSERT IGNORE INTO t1 VALUES (b'1010'); +INSERT IGNORE INTO t2 VALUES (b'1010', b'1010', b'1010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -7222,7 +7222,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(1) NOT NULL PRIMARY KEY, c2 BIT(1)); CREATE TABLE t6(c1 BIT(1), c2 BIT(1)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -7297,7 +7297,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -7307,7 +7307,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -7327,7 +7327,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -7355,7 +7355,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -7370,14 +7370,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -7385,7 +7385,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -7413,7 +7413,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -7469,11 +7469,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010'); -INSERT INTO t2 VALUES (b'1010', b'1010', b'1010'); +INSERT IGNORE INTO t1 VALUES (b'1010'); +INSERT IGNORE INTO t2 VALUES (b'1010', b'1010', b'1010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -7508,7 +7508,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(2) NOT NULL PRIMARY KEY, c2 BIT(2)); CREATE TABLE t6(c1 BIT(2), c2 BIT(2)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -7583,7 +7583,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -7593,7 +7593,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -7613,7 +7613,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -7641,7 +7641,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -7656,14 +7656,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -7671,7 +7671,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -7699,7 +7699,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -7755,7 +7755,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1010'); @@ -7794,7 +7794,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(4) NOT NULL PRIMARY KEY, c2 BIT(4)); CREATE TABLE t6(c1 BIT(4), c2 BIT(4)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -7869,7 +7869,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -7879,7 +7879,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -7931,7 +7931,7 @@ INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10, # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -7942,14 +7942,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -7957,7 +7957,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -8041,7 +8041,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1010'); @@ -8080,7 +8080,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(8) NOT NULL PRIMARY KEY, c2 BIT(8)); CREATE TABLE t6(c1 BIT(8), c2 BIT(8)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -8161,13 +8161,13 @@ SELECT * FROM t7; ############# UPDATE ########### # Update order by limit -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; # Update with NULL ( NULL to number & number to NULL) @@ -8187,7 +8187,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -8203,7 +8203,7 @@ SET SQL_MODE=DEFAULT; #Multi table update --disable_warnings -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -8243,7 +8243,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -8327,7 +8327,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1010'); @@ -8473,7 +8473,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -8613,7 +8613,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1010'); @@ -8759,7 +8759,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -8899,7 +8899,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1010'); @@ -9188,8 +9188,8 @@ let $STR3= query_get_value(select @v5 as I,I,1); eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -9224,7 +9224,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(0) NOT NULL PRIMARY KEY, c2 BIT(0)); CREATE TABLE t6(c1 BIT(0), c2 BIT(0)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -9299,7 +9299,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -9309,7 +9309,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -9329,7 +9329,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -9357,7 +9357,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -9372,14 +9372,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -9387,7 +9387,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -9415,7 +9415,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -9464,18 +9464,18 @@ let $STR2= query_get_value(select @v3 as I,I,1); eval INSERT INTO t1 VALUES (b'$STR2'); set @v3=repeat('10',@v2); let $STR3= query_get_value(select @v3 as I,I,1); -eval INSERT INTO t1 VALUES (b'$STR3'); +eval INSERT IGNORE INTO t1 VALUES (b'$STR3'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -9510,7 +9510,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(1) NOT NULL PRIMARY KEY, c2 BIT(1)); CREATE TABLE t6(c1 BIT(1), c2 BIT(1)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -9585,7 +9585,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -9595,7 +9595,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -9615,7 +9615,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -9643,7 +9643,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -9658,14 +9658,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -9673,7 +9673,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -9701,7 +9701,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -9757,11 +9757,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -9796,7 +9796,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(2) NOT NULL PRIMARY KEY, c2 BIT(2)); CREATE TABLE t6(c1 BIT(2), c2 BIT(2)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -9871,7 +9871,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -9881,7 +9881,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -9901,7 +9901,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -9929,7 +9929,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -9944,14 +9944,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -9959,7 +9959,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -9987,7 +9987,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -10043,11 +10043,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -10082,7 +10082,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(4) NOT NULL PRIMARY KEY, c2 BIT(4)); CREATE TABLE t6(c1 BIT(4), c2 BIT(4)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -10157,7 +10157,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -10167,7 +10167,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -10219,7 +10219,7 @@ INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10, # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -10230,14 +10230,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -10245,7 +10245,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -10329,11 +10329,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010', b'1010101010101010', b'1010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -10368,7 +10368,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(8) NOT NULL PRIMARY KEY, c2 BIT(8)); CREATE TABLE t6(c1 BIT(8), c2 BIT(8)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -10449,13 +10449,13 @@ SELECT * FROM t7; ############# UPDATE ########### # Update order by limit -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; # Update with NULL ( NULL to number & number to NULL) @@ -10475,7 +10475,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -10491,7 +10491,7 @@ SET SQL_MODE=DEFAULT; #Multi table update --disable_warnings -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -10531,7 +10531,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -10615,7 +10615,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1010101010101010'); @@ -10761,7 +10761,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -10901,7 +10901,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1010101010101010'); @@ -11047,7 +11047,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -11187,7 +11187,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1010101010101010'); @@ -11476,8 +11476,8 @@ let $STR3= query_get_value(select @v5 as I,I,1); eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -11512,7 +11512,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(0) NOT NULL PRIMARY KEY, c2 BIT(0)); CREATE TABLE t6(c1 BIT(0), c2 BIT(0)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -11587,7 +11587,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -11597,7 +11597,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -11617,7 +11617,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -11645,7 +11645,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -11660,14 +11660,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -11675,7 +11675,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -11703,7 +11703,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -11752,18 +11752,18 @@ let $STR2= query_get_value(select @v3 as I,I,1); eval INSERT INTO t1 VALUES (b'$STR2'); set @v3=repeat('10',@v2); let $STR3= query_get_value(select @v3 as I,I,1); -eval INSERT INTO t1 VALUES (b'$STR3'); +eval INSERT IGNORE INTO t1 VALUES (b'$STR3'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -11798,7 +11798,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(1) NOT NULL PRIMARY KEY, c2 BIT(1)); CREATE TABLE t6(c1 BIT(1), c2 BIT(1)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -11873,7 +11873,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -11883,7 +11883,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -11903,7 +11903,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -11931,7 +11931,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -11946,14 +11946,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -11961,7 +11961,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -11989,7 +11989,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -12045,11 +12045,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -12084,7 +12084,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(2) NOT NULL PRIMARY KEY, c2 BIT(2)); CREATE TABLE t6(c1 BIT(2), c2 BIT(2)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -12159,7 +12159,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -12169,7 +12169,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -12189,7 +12189,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -12217,7 +12217,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -12232,14 +12232,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -12247,7 +12247,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -12275,7 +12275,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -12331,11 +12331,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -12370,7 +12370,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(4) NOT NULL PRIMARY KEY, c2 BIT(4)); CREATE TABLE t6(c1 BIT(4), c2 BIT(4)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -12445,7 +12445,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -12455,7 +12455,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -12507,7 +12507,7 @@ INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10, # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -12518,14 +12518,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -12533,7 +12533,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -12617,11 +12617,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -12656,7 +12656,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(8) NOT NULL PRIMARY KEY, c2 BIT(8)); CREATE TABLE t6(c1 BIT(8), c2 BIT(8)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -12737,13 +12737,13 @@ SELECT * FROM t7; ############# UPDATE ########### # Update order by limit -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; # Update with NULL ( NULL to number & number to NULL) @@ -12763,7 +12763,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -12779,7 +12779,7 @@ SET SQL_MODE=DEFAULT; #Multi table update --disable_warnings -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -12819,7 +12819,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -12903,11 +12903,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'101010101010101010101010101010', b'101010101010101010101010101010', b'101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -13049,7 +13049,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -13189,7 +13189,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'101010101010101010101010101010'); @@ -13335,7 +13335,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -13475,7 +13475,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'101010101010101010101010101010'); @@ -13765,8 +13765,8 @@ let $STR3= query_get_value(select @v5 as I,I,1); eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -13801,7 +13801,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(0) NOT NULL PRIMARY KEY, c2 BIT(0)); CREATE TABLE t6(c1 BIT(0), c2 BIT(0)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -13876,7 +13876,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -13886,7 +13886,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -13906,7 +13906,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -13934,7 +13934,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -13949,14 +13949,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -13964,7 +13964,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -13992,7 +13992,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -14042,18 +14042,18 @@ let $STR2= query_get_value(select @v3 as I,I,1); eval INSERT INTO t1 VALUES (b'$STR2'); set @v3=repeat('10',@v2); let $STR3= query_get_value(select @v3 as I,I,1); -eval INSERT INTO t1 VALUES (b'$STR3'); +eval INSERT IGNORE INTO t1 VALUES (b'$STR3'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -14088,7 +14088,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(1) NOT NULL PRIMARY KEY, c2 BIT(1)); CREATE TABLE t6(c1 BIT(1), c2 BIT(1)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -14163,7 +14163,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -14173,7 +14173,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -14193,7 +14193,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -14221,7 +14221,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -14236,14 +14236,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -14251,7 +14251,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -14279,7 +14279,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -14336,11 +14336,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -14375,7 +14375,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(2) NOT NULL PRIMARY KEY, c2 BIT(2)); CREATE TABLE t6(c1 BIT(2), c2 BIT(2)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -14450,7 +14450,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -14460,7 +14460,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -14480,7 +14480,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -14508,7 +14508,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -14523,14 +14523,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -14538,7 +14538,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -14566,7 +14566,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -14623,11 +14623,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -14662,7 +14662,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(4) NOT NULL PRIMARY KEY, c2 BIT(4)); CREATE TABLE t6(c1 BIT(4), c2 BIT(4)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -14737,7 +14737,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -14747,7 +14747,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -14799,7 +14799,7 @@ INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10, # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -14810,14 +14810,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -14825,7 +14825,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -14910,11 +14910,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -14949,7 +14949,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(8) NOT NULL PRIMARY KEY, c2 BIT(8)); CREATE TABLE t6(c1 BIT(8), c2 BIT(8)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -15030,13 +15030,13 @@ SELECT * FROM t7; ############# UPDATE ########### # Update order by limit -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; # Update with NULL ( NULL to number & number to NULL) @@ -15056,7 +15056,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -15072,7 +15072,7 @@ SET SQL_MODE=DEFAULT; #Multi table update --disable_warnings -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -15112,7 +15112,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -15197,11 +15197,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -15343,7 +15343,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -15484,11 +15484,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); -INSERT INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); +INSERT IGNORE INTO t2 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010', b'1010101010101010101010101010101010101010101010101010101010101010'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -15630,7 +15630,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -15771,7 +15771,7 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } INSERT INTO t1 VALUES (b'1010101010101010101010101010101010101010101010101010101010101010'); @@ -16061,8 +16061,8 @@ let $STR3= query_get_value(select @v5 as I,I,1); eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -16097,7 +16097,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(0) NOT NULL PRIMARY KEY, c2 BIT(0)); CREATE TABLE t6(c1 BIT(0), c2 BIT(0)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -16172,7 +16172,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(0)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -16182,7 +16182,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -16202,7 +16202,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -16230,7 +16230,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -16245,14 +16245,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -16260,7 +16260,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -16288,7 +16288,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -16338,18 +16338,18 @@ let $STR2= query_get_value(select @v3 as I,I,1); eval INSERT INTO t1 VALUES (b'$STR2'); set @v3=repeat('10',@v2); let $STR3= query_get_value(select @v3 as I,I,1); -eval INSERT INTO t1 VALUES (b'$STR3'); +eval INSERT IGNORE INTO t1 VALUES (b'$STR3'); set @v3=repeat('1',@v1); set @v4=repeat('01',@v2); set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -16384,7 +16384,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(1) NOT NULL PRIMARY KEY, c2 BIT(1)); CREATE TABLE t6(c1 BIT(1), c2 BIT(1)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -16459,7 +16459,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(1)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -16469,7 +16469,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -16489,7 +16489,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -16517,7 +16517,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -16532,14 +16532,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -16547,7 +16547,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -16575,7 +16575,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -16632,11 +16632,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -16671,7 +16671,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(2) NOT NULL PRIMARY KEY, c2 BIT(2)); CREATE TABLE t6(c1 BIT(2), c2 BIT(2)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -16746,7 +16746,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(2)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -16756,7 +16756,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -16776,7 +16776,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints -UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; +UPDATE IGNORE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; UPDATE t6 SET c2=-1 WHERE c1=94; @@ -16804,7 +16804,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -16819,14 +16819,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -16834,7 +16834,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -16862,7 +16862,7 @@ SELECT hex(c1),hex(c2) FROM t5; TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); -INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); +INSERT IGNORE INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10); # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; @@ -16919,11 +16919,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -16958,7 +16958,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(4) NOT NULL PRIMARY KEY, c2 BIT(4)); CREATE TABLE t6(c1 BIT(4), c2 BIT(4)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -17033,7 +17033,7 @@ SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC ; SELECT hex(c1),hex(c2) FROM t5 WHERE c1 IS NOT NULL ORDER BY c1 DESC LIMIT 2 ; #Inserting different charachers CREATE TABLE t7(c1 BIT(4)); -INSERT INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); +INSERT IGNORE INTO t7 VALUES('a'),('A'),('z'),('Z'),('!'),('`'),('@'),('#'),('~'),('$'),('%'),('^'),('&'),('*'),('('),(')'),('-'),('_'),('+'),('='),('1'),('9'); --sorted_result SELECT * FROM t7; ############# UPDATE ########### @@ -17043,7 +17043,7 @@ UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations -UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; +UPDATE IGNORE t6 SET c1=c2+c1 WHERE c2 < 100; UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -17095,7 +17095,7 @@ INSERT INTO t6 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10, # Update using Const # EXPLAIN SELECT * FROM t5 WHERE c1=6 AND c2=6; -UPDATE t5 SET c2='a' WHERE c1=6 AND c2=6; +UPDATE IGNORE t5 SET c2='a' WHERE c1=6 AND c2=6; --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -17106,14 +17106,14 @@ UPDATE t5 SET c2=13 where c1 BETWEEN 5 AND 9; SELECT hex(c1),hex(c2) FROM t5; # EXPLAIN SELECT * FROM t5 WHERE c1 IN (b'001',b'101',b'111'); --disable_warnings -UPDATE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); +UPDATE IGNORE t5 SET c2=c2+10 WHERE c1 IN (b'001',b'101',b'111'); --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; # Update using eq_ref # EXPLAIN SELECT * FROM t5,t6 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; -UPDATE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t6.c2 WHERE t5.c1=t6.c1 AND t5.c2=t6.c2; ############# DELETE ########### @@ -17121,7 +17121,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -17206,11 +17206,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -17245,7 +17245,7 @@ ALTER TABLE t4 ADD PRIMARY KEY (i); CREATE TABLE t5(c1 BIT(8) NOT NULL PRIMARY KEY, c2 BIT(8)); CREATE TABLE t6(c1 BIT(8), c2 BIT(8)); INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); --sorted_result SELECT HEX(c1),HEX(c2) FROM t5; @@ -17326,13 +17326,13 @@ SELECT * FROM t7; ############# UPDATE ########### # Update order by limit -UPDATE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; +UPDATE IGNORE t6 SET c1='10' WHERE c2 > 100 ORDER BY c2 LIMIT 1; # Update with arithmetic operations UPDATE t6 SET c1=c2+c1 WHERE c2 < 100; -UPDATE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; +UPDATE IGNORE t6 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; # Update with NULL ( NULL to number & number to NULL) @@ -17352,7 +17352,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -17368,7 +17368,7 @@ SET SQL_MODE=DEFAULT; #Multi table update --disable_warnings -UPDATE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; +UPDATE IGNORE t5,t6 SET t5.c2=t6.c1+t5.c1, t6.c2=t5.c1+t6.c1 WHERE t5.c1 > 100 OR t6.c2 > 100; --enable_warnings --sorted_result SELECT hex(c1),hex(c2) FROM t5; @@ -17408,7 +17408,7 @@ TRUNCATE t5; TRUNCATE t6; INSERT IGNORE INTO t5 VALUES (95, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (69, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135); -INSERT INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); +INSERT IGNORE INTO t6 VALUES (94, 46), (31, 438), (61, 152), (78, 123), (88, 411), (122, 118), (0, 177),(75, 42), (108, 67), (79, 349), (59, 188), (68, 206), (49, 345), (118, 380),(111, 368), (94, 468), (56, 379), (77, 133), (29, 399), (9, 363), (23, 36),(116, 390), (119, 368), (87, 351), (123, 411), (24, 398), (34, 202), (28, 499),(30, 83), (5, 178), (60, 343), (4, 245), (104, 280), (106, 446), (127, 403),(44, 307), (68, 454), (57, 135),(null,23),(1,null),(null,null); # Delete by order by limit DELETE FROM t6 WHERE c2 > 100 ORDER BY c2 LIMIT 1; @@ -17493,11 +17493,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -17639,7 +17639,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -17780,11 +17780,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result @@ -17926,7 +17926,7 @@ UPDATE t6 SET c2=123 WHERE c1 IN (30,b'101',88); # Update outside range would be clipped to closest endpoints UPDATE t6 SET c1=b'1111111111111111111111111111111111111111111111111111111111111111111' WHERE c2 < 10; -UPDATE t6 SET c2=-1 WHERE c1=94; +UPDATE IGNORE t6 SET c2=-1 WHERE c1=94; # Update ignore on bad null error @@ -18067,11 +18067,11 @@ set @v5=repeat('10',@v2); let $STR0= query_get_value(select @v3 as I,I,1); let $STR2= query_get_value(select @v4 as I,I,1); let $STR3= query_get_value(select @v5 as I,I,1); -eval INSERT INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); +eval INSERT IGNORE INTO t2 VALUES ("b'$STR0'","b'$STR2","b'$STR3'"); dec $i; } -INSERT INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); -INSERT INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t1 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101'); +INSERT IGNORE INTO t2 VALUES (b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101', b'10101010101010101010101010101010101010101010101010101010101010101'); --sorted_result SELECT HEX(c1) FROM t1; --sorted_result diff --git a/mysql-test/suite/engines/iuds/t/update_decimal.test b/mysql-test/suite/engines/iuds/t/update_decimal.test index aa96665e82d..bf302e6a1e6 100644 --- a/mysql-test/suite/engines/iuds/t/update_decimal.test +++ b/mysql-test/suite/engines/iuds/t/update_decimal.test @@ -13,7 +13,7 @@ CREATE TABLE t1(c1 DECIMAL(10,5) UNSIGNED NOT NULL, c2 DECIMAL(10,5) SIGNED NULL INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); # DECIMAL := DECIMAL(10,0); Decimal values in c3 will be stripped; -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); # c1, c2, c3 will be rounded automatically INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); @@ -23,8 +23,8 @@ INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); # Test insert leading zero, +/- signs, overflow handling INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); # Inserting in scientific notations INSERT INTO t1 VALUES('1.0e+4','1.0e-5','1.0e+9',10); @@ -41,7 +41,7 @@ UPDATE t1 SET c1='10001.00001' WHERE c2 > 100 ORDER BY c2 LIMIT 1; SELECT c1,c2 FROM t1; # Update with arithmetic operations -UPDATE t1 SET c1=c2+c3 WHERE c3 < 10000; +UPDATE IGNORE t1 SET c1=c2+c3 WHERE c3 < 10000; --sorted_result SELECT * FROM t1; UPDATE t1 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -57,11 +57,11 @@ UPDATE t1 SET c2=1.0e+5 WHERE c2=NULL; SELECT * FROM t1; # Update negative value to unsigned column -UPDATE t1 SET c1=-1.0e+2 WHERE c4=2; +UPDATE IGNORE t1 SET c1=-1.0e+2 WHERE c4=2; SHOW WARNINGS; --sorted_result SELECT * FROM t1; -UPDATE t1 SET c1=1.0e+20 WHERE c4=2; +UPDATE IGNORE t1 SET c1=1.0e+20 WHERE c4=2; SHOW WARNINGS; --sorted_result SELECT * FROM t1; @@ -78,7 +78,7 @@ UPDATE t1 SET c3=1234567890 WHERE c4 IN (4,5,6); SELECT * FROM t1; # Update outside range would be clipped to closest endpoints -UPDATE t1 SET c1=99999.999999 WHERE c4=7; +UPDATE IGNORE t1 SET c1=99999.999999 WHERE c4=7; --sorted_result SELECT c1,c4 FROM t1; UPDATE t1 SET c2=-9999.0099 WHERE c4=5; @@ -158,10 +158,10 @@ INSERT INTO t3 VALUES ('11111.11111','4444444444',1),('55555.55555','5555555555' UPDATE t2,t3 SET t3.c1='22222.22222' WHERE t2.c1=t3.c1 AND t2.c3=t3.c3; #Updating with invalid values -UPDATE t1 SET c3='asdf' WHERE c1='11111.11111'; +UPDATE IGNORE t1 SET c3='asdf' WHERE c1='11111.11111'; --sorted_result SELECT c3 FROM t1; -UPDATE t1 SET c2="1 e 1" WHERE c4=2; +UPDATE IGNORE t1 SET c2="1 e 1" WHERE c4=2; --sorted_result SELECT c2 FROM t1; @@ -193,7 +193,7 @@ CREATE TABLE t1(c1 FLOAT(10,5) UNSIGNED NOT NULL, c2 FLOAT(10,5) SIGNED NULL, c3 INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); # DECIMAL := DECIMAL(10,0); Decimal values in c3 will be stripped; -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); # c1, c2, c3 will be rounded automatically INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); @@ -203,8 +203,8 @@ INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); # Test insert leading zero, +/- signs, overflow handling INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); # Inserting in scientific notations INSERT INTO t1 VALUES('1.0e+4','1.0e-5','1.0e+9',10); @@ -221,7 +221,7 @@ UPDATE t1 SET c1='10001.00001' WHERE c2 > 100 ORDER BY c2 LIMIT 1; SELECT c1,c2 FROM t1; # Update with arithmetic operations -UPDATE t1 SET c1=c2+c3 WHERE c3 < 10000; +UPDATE IGNORE t1 SET c1=c2+c3 WHERE c3 < 10000; --sorted_result SELECT * FROM t1; UPDATE t1 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -237,11 +237,11 @@ UPDATE t1 SET c2=1.0e+5 WHERE c2=NULL; SELECT * FROM t1; # Update negative value to unsigned column -UPDATE t1 SET c1=-1.0e+2 WHERE c4=2; +UPDATE IGNORE t1 SET c1=-1.0e+2 WHERE c4=2; SHOW WARNINGS; --sorted_result SELECT * FROM t1; -UPDATE t1 SET c1=1.0e+20 WHERE c4=2; +UPDATE IGNORE t1 SET c1=1.0e+20 WHERE c4=2; SHOW WARNINGS; --sorted_result SELECT * FROM t1; @@ -258,7 +258,7 @@ UPDATE t1 SET c3=1234567890 WHERE c4 IN (4,5,6); SELECT * FROM t1; # Update outside range would be clipped to closest endpoints -UPDATE t1 SET c1=99999.999999 WHERE c4=7; +UPDATE IGNORE t1 SET c1=99999.999999 WHERE c4=7; --sorted_result SELECT c1,c4 FROM t1; UPDATE t1 SET c2=-9999.0099 WHERE c4=5; @@ -347,7 +347,7 @@ UPDATE t2,t3 SET t3.c1='22222.22222' WHERE t2.c1=t3.c1 AND t2.c3=t3.c3; UPDATE t1 SET c3='asdf' WHERE c1='11111.11111'; --sorted_result SELECT c3 FROM t1; -UPDATE t1 SET c2="1 e 1" WHERE c4=2; +UPDATE IGNORE t1 SET c2="1 e 1" WHERE c4=2; --replace_result 88888.89063 88888.89062 --sorted_result SELECT c2 FROM t1; @@ -382,7 +382,7 @@ CREATE TABLE t1(c1 DOUBLE(10,5) UNSIGNED NOT NULL, c2 DOUBLE(10,5) SIGNED NULL, INSERT INTO t1 VALUES('00100.05000','-00100.05000','00100119',1),('11111.00009','-9999.99999','9999999',2); # DECIMAL := DECIMAL(10,0); Decimal values in c3 will be stripped; -INSERT INTO t1 VALUES('1000000','10000000','1000000000.0001',3); +INSERT IGNORE INTO t1 VALUES('1000000','10000000','1000000000.0001',3); # c1, c2, c3 will be rounded automatically INSERT INTO t1 values('100.000001','1000.999999','9999.999999',4); @@ -392,8 +392,8 @@ INSERT INTO t1 VALUES('99999.99999','-99999.99999','9999999999',5); # Test insert leading zero, +/- signs, overflow handling INSERT INTO t1 VALUES ("0.0","0.0","0.0",6),("01.0","01.0","01.0",7); -INSERT INTO t1 VALUES ("-.1","-.1","-.1",8); -INSERT INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); +INSERT IGNORE INTO t1 VALUES ("-.1","-.1","-.1",8); +INSERT IGNORE INTO t1 VALUES ("+111111111.11","+111111111.11","+111111111.11",9); # Inserting in scientific notations INSERT INTO t1 VALUES('1.0e+4','1.0e-5','1.0e+9',10); @@ -410,7 +410,7 @@ UPDATE t1 SET c1='10001.00001' WHERE c2 > 100 ORDER BY c2 LIMIT 1; SELECT c1,c2 FROM t1; # Update with arithmetic operations -UPDATE t1 SET c1=c2+c3 WHERE c3 < 10000; +UPDATE IGNORE t1 SET c1=c2+c3 WHERE c3 < 10000; --sorted_result SELECT * FROM t1; UPDATE t1 SET c2=c2+100 WHERE c1 >=100 ORDER BY c1 LIMIT 4; @@ -426,11 +426,11 @@ UPDATE t1 SET c2=1.0e+5 WHERE c2=NULL; SELECT * FROM t1; # Update negative value to unsigned column -UPDATE t1 SET c1=-1.0e+2 WHERE c4=2; +UPDATE IGNORE t1 SET c1=-1.0e+2 WHERE c4=2; SHOW WARNINGS; --sorted_result SELECT * FROM t1; -UPDATE t1 SET c1=1.0e+20 WHERE c4=2; +UPDATE IGNORE t1 SET c1=1.0e+20 WHERE c4=2; SHOW WARNINGS; --sorted_result SELECT * FROM t1; @@ -447,7 +447,7 @@ UPDATE t1 SET c3=1234567890 WHERE c4 IN (4,5,6); SELECT * FROM t1; # Update outside range would be clipped to closest endpoints -UPDATE t1 SET c1=99999.999999 WHERE c4=7; +UPDATE IGNORE t1 SET c1=99999.999999 WHERE c4=7; --sorted_result SELECT c1,c4 FROM t1; UPDATE t1 SET c2=-9999.0099 WHERE c4=5; @@ -527,10 +527,10 @@ INSERT INTO t3 VALUES ('11111.11111','4444444444',1),('55555.55555','5555555555' UPDATE t2,t3 SET t3.c1='22222.22222' WHERE t2.c1=t3.c1 AND t2.c3=t3.c3; #Updating with invalid values -UPDATE t1 SET c3='asdf' WHERE c1='11111.11111'; +UPDATE IGNORE t1 SET c3='asdf' WHERE c1='11111.11111'; --sorted_result SELECT c3 FROM t1; -UPDATE t1 SET c2="1 e 1" WHERE c4=2; +UPDATE IGNORE t1 SET c2="1 e 1" WHERE c4=2; --sorted_result SELECT c2 FROM t1; diff --git a/mysql-test/suite/engines/iuds/t/update_delete_number.test b/mysql-test/suite/engines/iuds/t/update_delete_number.test index b8af78606d2..c58746d59f4 100644 --- a/mysql-test/suite/engines/iuds/t/update_delete_number.test +++ b/mysql-test/suite/engines/iuds/t/update_delete_number.test @@ -26,7 +26,7 @@ UPDATE t1 SET c1=120 WHERE c2 IS NULL; SELECT c1,c2 FROM t1 WHERE c1=120; # Update negative value to unsigned col -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -43,11 +43,11 @@ SELECT * FROM t1 WHERE c2=0; # Update outside range, would be clipped to closest endpoint INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=4294967296,c2=2147483648 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=4294967296,c2=2147483648 WHERE c2 BETWEEN -108 AND -106; SELECT COUNT(*) FROM t1 WHERE c1=4294967296 AND c2=2147483648 /* no rows */; --sorted_result SELECT * FROM t1 WHERE c1=4294967295 AND c2=2147483647; -UPDATE t1 SET c2=-2147483649 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-2147483649 WHERE c1=109 ORDER BY c1; --sorted_result SELECT c1,c2 FROM t1 WHERE c1=109; @@ -60,7 +60,7 @@ UPDATE IGNORE t1 SET c1=NULL WHERE c2=-110 /* updates to default value 0 */; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-110; SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; --sorted_result SELECT * FROM t1 WHERE c1=0; @@ -94,7 +94,7 @@ SELECT c1 FROM t2 WHERE c2=13; # Update the unsigned auto_increment field UPDATE t1 SET c1=4294967295,c2=2147483647 WHERE c2=13; SELECT c1,c2 FROM t1 ORDER BY c1; -UPDATE t2 SET c1=0,c2=-2147483648 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-2147483648 WHERE c2=2; SELECT c1,c2 FROM t1 ORDER BY c1; UPDATE t2 SET c2=0 WHERE c2=5; SELECT c1,c2 FROM t1 ORDER BY c1; @@ -604,7 +604,7 @@ UPDATE t1 SET c1=120 WHERE c2 IS NULL; SELECT c1,c2 FROM t1 WHERE c1=120; # Update negative value to unsigned col -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -621,11 +621,11 @@ SELECT * FROM t1 WHERE c2=0; # Update outside range, would be clipped to closest endpoint INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=256,c2=128 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=256,c2=128 WHERE c2 BETWEEN -108 AND -106; SELECT COUNT(*) FROM t1 WHERE c1=256 AND c2=128 /* no rows */; --sorted_result SELECT * FROM t1 WHERE c1=255 AND c2=127; -UPDATE t1 SET c2=-129 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-129 WHERE c1=109 ORDER BY c1; --sorted_result SELECT c1,c2 FROM t1 WHERE c1=109; @@ -638,7 +638,7 @@ UPDATE IGNORE t1 SET c1=NULL WHERE c2=-110 /* updates to default value 0 */; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-110; SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; --sorted_result SELECT * FROM t1 WHERE c1=0; @@ -672,7 +672,7 @@ SELECT c1 FROM t2 WHERE c2=13; # Update the unsigned auto_increment field UPDATE t1 SET c1=255,c2=127 WHERE c2=13; SELECT c1,c2 FROM t1 ORDER BY c1; -UPDATE t2 SET c1=0,c2=-128 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-128 WHERE c2=2; SELECT c1,c2 FROM t1 ORDER BY c1; UPDATE t2 SET c2=0 WHERE c2=5; SELECT c1,c2 FROM t1 ORDER BY c1; @@ -787,7 +787,7 @@ update mt1,mt2 set mt1.a=mt1.a+100; --sorted_result select * from mt1; # unique key -update mt1,mt2 set mt1.a=mt1.a+100 where mt1.a=101; +update ignore mt1,mt2 set mt1.a=mt1.a+100 where mt1.a=101; --sorted_result select * from mt1; # ref key @@ -904,7 +904,7 @@ UPDATE t1 SET c1=120 WHERE c2 IS NULL; SELECT c1,c2 FROM t1 WHERE c1=120; # Update negative value to unsigned col -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -921,11 +921,11 @@ SELECT * FROM t1 WHERE c2=0; # Update outside range, would be clipped to closest endpoint INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=65536,c2=32768 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=65536,c2=32768 WHERE c2 BETWEEN -108 AND -106; SELECT COUNT(*) FROM t1 WHERE c1=65536 AND c2=32768 /* no rows */; --sorted_result SELECT * FROM t1 WHERE c1=65535 AND c2=32767; -UPDATE t1 SET c2=-32769 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-32769 WHERE c1=109 ORDER BY c1; --sorted_result SELECT c1,c2 FROM t1 WHERE c1=109; @@ -938,7 +938,7 @@ UPDATE IGNORE t1 SET c1=NULL WHERE c2=-110 /* updates to default value 0 */; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-110; SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; --sorted_result SELECT * FROM t1 WHERE c1=0; @@ -972,7 +972,7 @@ SELECT c1 FROM t2 WHERE c2=13; # Update the unsigned auto_increment field UPDATE t1 SET c1=65535,c2=32767 WHERE c2=13; SELECT c1,c2 FROM t1 ORDER BY c1; -UPDATE t2 SET c1=0,c2=-32768 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-32768 WHERE c2=2; SELECT c1,c2 FROM t1 ORDER BY c1; UPDATE t2 SET c2=0 WHERE c2=5; SELECT c1,c2 FROM t1 ORDER BY c1; @@ -1205,7 +1205,7 @@ UPDATE t1 SET c1=120 WHERE c2 IS NULL; SELECT c1,c2 FROM t1 WHERE c1=120; # Update negative value to unsigned col -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -1222,11 +1222,11 @@ SELECT * FROM t1 WHERE c2=0; # Update outside range, would be clipped to closest endpoint INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=16777216,c2=8388608 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=16777216,c2=8388608 WHERE c2 BETWEEN -108 AND -106; SELECT COUNT(*) FROM t1 WHERE c1=16777216 AND c2=8388608 /* no rows */; --sorted_result SELECT * FROM t1 WHERE c1=16777215 AND c2=8388607; -UPDATE t1 SET c2=-8388609 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-8388609 WHERE c1=109 ORDER BY c1; --sorted_result SELECT c1,c2 FROM t1 WHERE c1=109; @@ -1239,7 +1239,7 @@ UPDATE IGNORE t1 SET c1=NULL WHERE c2=-110 /* updates to default value 0 */; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-110; SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; --sorted_result SELECT * FROM t1 WHERE c1=0; @@ -1273,7 +1273,7 @@ SELECT c1 FROM t2 WHERE c2=13; # Update the unsigned auto_increment field UPDATE t1 SET c1=16777215,c2=8388607 WHERE c2=13; SELECT c1,c2 FROM t1 ORDER BY c1; -UPDATE t2 SET c1=0,c2=-8388608 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-8388608 WHERE c2=2; SELECT c1,c2 FROM t1 ORDER BY c1; UPDATE t2 SET c2=0 WHERE c2=5; SELECT c1,c2 FROM t1 ORDER BY c1; @@ -1506,7 +1506,7 @@ UPDATE t1 SET c1=120 WHERE c2 IS NULL; SELECT c1,c2 FROM t1 WHERE c1=120; # Update negative value to unsigned col -UPDATE t1 SET c1=-120 WHERE c2=-102; +UPDATE IGNORE t1 SET c1=-120 WHERE c2=-102; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-102; @@ -1523,11 +1523,11 @@ SELECT * FROM t1 WHERE c2=0; # Update outside range, would be clipped to closest endpoint INSERT INTO t1 VALUES(106,-106,9),(107,-107,10),(108,-108,11),(109,-109,12),(255,127,13); -UPDATE t1 SET c1=18446744073709551616,c2=9223372036854775808 WHERE c2 BETWEEN -108 AND -106; +UPDATE IGNORE t1 SET c1=18446744073709551616,c2=9223372036854775808 WHERE c2 BETWEEN -108 AND -106; SELECT COUNT(*) FROM t1 WHERE c1=18446744073709551616 AND c2=9223372036854775808 /* no rows */; --sorted_result SELECT * FROM t1 WHERE c1=18446744073709551615 AND c2=9223372036854775807; -UPDATE t1 SET c2=-9223372036854775809 WHERE c1=109 ORDER BY c1; +UPDATE IGNORE t1 SET c2=-9223372036854775809 WHERE c1=109 ORDER BY c1; --sorted_result SELECT c1,c2 FROM t1 WHERE c1=109; @@ -1540,7 +1540,7 @@ UPDATE IGNORE t1 SET c1=NULL WHERE c2=-110 /* updates to default value 0 */; --sorted_result SELECT c1,c2 FROM t1 WHERE c2=-110; SET SQL_MODE=DEFAULT; -UPDATE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; +UPDATE IGNORE t1 SET c1=NULL WHERE c2=-111 /* updates to default value 0 */; --sorted_result SELECT * FROM t1 WHERE c1=0; @@ -1574,7 +1574,7 @@ SELECT c1 FROM t2 WHERE c2=13; # Update the unsigned auto_increment field UPDATE t1 SET c1=18446744073709551615,c2=9223372036854775807 WHERE c2=13; SELECT c1,c2 FROM t1 ORDER BY c1; -UPDATE t2 SET c1=0,c2=-9223372036854775808 WHERE c2=2; +UPDATE IGNORE t2 SET c1=0,c2=-9223372036854775808 WHERE c2=2; SELECT c1,c2 FROM t1 ORDER BY c1; UPDATE t2 SET c2=0 WHERE c2=5; SELECT c1,c2 FROM t1 ORDER BY c1; diff --git a/mysql-test/suite/engines/iuds/t/update_time.test b/mysql-test/suite/engines/iuds/t/update_time.test index 4b5f89580be..5ce69b46986 100644 --- a/mysql-test/suite/engines/iuds/t/update_time.test +++ b/mysql-test/suite/engines/iuds/t/update_time.test @@ -119,19 +119,19 @@ UPDATE t2 SET c2='1111' WHERE c1 IN ('100:04:04',005454,'2:2:2',111111); SELECT c2 FROM t2; #Update outside range would be clipped to closest endpoints -UPDATE t4 SET c2='-838:59:60' WHERE c1='100:04:04'; +UPDATE IGNORE t4 SET c2='-838:59:60' WHERE c1='100:04:04'; --sorted_result SELECT c2 FROM t4; -UPDATE t4 SET c2='838:59:60' WHERE c1='100:04:04'; +UPDATE IGNORE t4 SET c2='838:59:60' WHERE c1='100:04:04'; --sorted_result SELECT c2 FROM t4; UPDATE t4 SET c2='00:00:00' WHERE c1='100:04:04'; --sorted_result SELECT c2 FROM t4; -UPDATE t4 SET c2='11:11:60' WHERE c1='100:04:04'; +UPDATE IGNORE t4 SET c2='11:11:60' WHERE c1='100:04:04'; --sorted_result SELECT c2 FROM t4; -UPDATE t4 SET c2='11:60:11' WHERE c1='100:04:04'; +UPDATE IGNORE t4 SET c2='11:60:11' WHERE c1='100:04:04'; --sorted_result SELECT c2 FROM t4; @@ -151,7 +151,7 @@ SET SQL_MODE=DEFAULT; UPDATE t1 SET c1=8385958 WHERE c2='34 22:59:59'; #Update with invalid values -UPDATE t1 SET c2='def' WHERE c1=59; +UPDATE IGNORE t1 SET c2='def' WHERE c1=59; --sorted_result SELECT c2 FROM t1; --error ER_PARSE_ERROR @@ -172,11 +172,11 @@ SELECT * FROM t1; # Update using range # EXPLAIN SELECT * FROM t1 WHERE c1 BETWEEN 080000 AND 100000; -UPDATE t1 SET t1.c2='99999.99999' WHERE c1 BETWEEN 080000 AND 100000; +UPDATE IGNORE t1 SET t1.c2='99999.99999' WHERE c1 BETWEEN 080000 AND 100000; --sorted_result SELECT * FROM t1; # EXPLAIN SELECT * FROM t1 WHERE c1 IN (222222,8385955,1500000); -UPDATE t1 SET c1=c1+1,c2=c2-1 WHERE c1 IN (222222,8385955,1500000) ORDER BY c1; +UPDATE IGNORE t1 SET c1=c1+1,c2=c2-1 WHERE c1 IN (222222,8385955,1500000) ORDER BY c1; --sorted_result SELECT * FROM t1; diff --git a/mysql-test/suite/engines/iuds/t/update_year.test b/mysql-test/suite/engines/iuds/t/update_year.test index d1f06293716..599c637e442 100644 --- a/mysql-test/suite/engines/iuds/t/update_year.test +++ b/mysql-test/suite/engines/iuds/t/update_year.test @@ -128,22 +128,22 @@ UPDATE t4 SET c1=99 WHERE c2 IN (01,54,65,69,null); SELECT c1 FROM t4; # Update outside range would be clipped to closest endpoints -UPDATE t1 SET c2=-1 WHERE c1=2071; +UPDATE IGNORE t1 SET c2=-1 WHERE c1=2071; --sorted_result SELECT c2 FROM t1; UPDATE t1 SET c2=0 WHERE c1=2003; --sorted_result SELECT c2 FROM t1; -UPDATE t1 SET c2=2156 WHERE c1=2001; +UPDATE IGNORE t1 SET c2=2156 WHERE c1=2001; --sorted_result SELECT c2 FROM t1; -UPDATE t4 SET c2=-1 WHERE c1=71; +UPDATE IGNORE t4 SET c2=-1 WHERE c1=71; --sorted_result SELECT c2 FROM t4; UPDATE t4 SET c2=0 WHERE c1=70; --sorted_result SELECT c2 FROM t4; -UPDATE t4 SET c2=100 WHERE c1=79; +UPDATE IGNORE t4 SET c2=100 WHERE c1=79; --sorted_result SELECT c2 FROM t4; @@ -162,7 +162,7 @@ SET SQL_MODE=DEFAULT #UPDATE t2 SET c1='def' WHERE c2=2064; #--sorted_result #SELECT c1 FROM t2; -UPDATE t4 SET c1=-70 WHERE c2=75; +UPDATE IGNORE t4 SET c1=-70 WHERE c2=75; --sorted_result SELECT c1 FROM t4; @@ -187,7 +187,7 @@ UPDATE t1 SET t1.c2=0000 WHERE c1 BETWEEN 2000 AND 2010; --sorted_result SELECT * FROM t1; # EXPLAIN SELECT * FROM t1 WHERE c1 IN (2154,2009,1979); -UPDATE t1 SET c1=c1-1,c2=c2+1 WHERE c1 IN (2154,2009,1979); +UPDATE IGNORE t1 SET c1=c1-1,c2=c2+1 WHERE c1 IN (2154,2009,1979); --sorted_result SELECT * FROM t1; diff --git a/mysql-test/suite/engines/rr_trx/r/init_innodb.result b/mysql-test/suite/engines/rr_trx/r/init_innodb.result index 516147976ce..6522adfd52b 100644 --- a/mysql-test/suite/engines/rr_trx/r/init_innodb.result +++ b/mysql-test/suite/engines/rr_trx/r/init_innodb.result @@ -43,7 +43,7 @@ t1 CREATE TABLE `t1` ( `int2_key` int(11) DEFAULT NULL, `int2_unique` int(11) DEFAULT NULL, `for_update` tinyint(1) DEFAULT 0, - `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `connection_id` int(11) DEFAULT NULL, `thread_id` int(11) DEFAULT 0, `is_uncommitted` tinyint(1) DEFAULT 0, diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result index 8b96e54eefd..6819e2356c3 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result @@ -27,7 +27,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -41,7 +41,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -73,6 +73,7 @@ Ensure that the scope of each BEGIN/END compound statement within a stored procedure definition is properly applied -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp1; +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp1( ) begin_label: BEGIN declare x char DEFAULT 'x'; @@ -713,6 +714,7 @@ DROP PROCEDURE IF EXISTS sp3; DROP PROCEDURE IF EXISTS sp4; DROP TABLE IF EXISTS temp; CREATE TABLE temp( f1 CHAR, f2 CHAR); +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp0() BEGIN set @done=0; @@ -720,6 +722,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp1() BEGIN declare continue handler for sqlstate '01000' set @done = 1; @@ -728,6 +731,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp2() BEGIN declare continue handler for sqlwarning set @done = 1; @@ -736,6 +740,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp3() BEGIN declare exit handler for sqlstate '01000' set @done = 1; @@ -744,6 +749,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp4() BEGIN declare exit handler for sqlwarning set @done = 1; diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result index fdbe03e17fc..5f3de814d9c 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result @@ -27,7 +27,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -41,7 +41,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result index 2cf079a75f8..6db6e374ca7 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result @@ -29,7 +29,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -43,7 +43,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result index a520bdfac36..cf0070144dc 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result @@ -27,7 +27,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -41,7 +41,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result index de63339ee95..4df88b53a56 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result index 0d846a019dd..405b7ab62b0 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result @@ -27,7 +27,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -41,7 +41,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_03e.result b/mysql-test/suite/funcs_1/r/innodb_trig_03e.result index 4e4716fd873..b29c0271fdc 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_03e.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_03e.result @@ -486,8 +486,8 @@ create trigger trg1_4 before UPDATE on t1 for each row set new.f1 = 'trig 1_4-yes'; show triggers; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -trg1_3 INSERT t1 set new.f1 = 'trig 1_3-yes' BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci -trg1_4 UPDATE t1 set new.f1 = 'trig 1_4-yes' BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg1_3 INSERT t1 set new.f1 = 'trig 1_3-yes' BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg1_4 UPDATE t1 set new.f1 = 'trig 1_4-yes' BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci connection no_privs; select current_user; current_user diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_09.result b/mysql-test/suite/funcs_1/r/innodb_trig_09.result index e6a10592424..6664994543b 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_09.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_09.result @@ -185,7 +185,7 @@ a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 0 0 0 0 0 0 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 0 0 0 0 0 0 -Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL +update ignore tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL where f122='Test 3.5.9.4'; Warnings: Warning 1048 Column 'f136' cannot be null diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result b/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result index 8e9a654d4ed..f4a6d75fbc0 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result @@ -163,6 +163,7 @@ Testcase 3.5.10.6: (implemented in trig_frkey.test) Testcase 3.5.10.extra: ---------------------- +set sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1_sp (var136 tinyint, var151 decimal) engine = ; create trigger trg before insert on t1_sp for each row set @counter=@counter+1; @@ -199,6 +200,7 @@ count(*) drop procedure trig_sp; drop trigger trg; drop table t1_sp; +set sql_mode = default; Testcase 3.5.11.1 (implemented in trig_perf.test) ------------------------------------------------- @@ -290,7 +292,7 @@ drop table t4; Testcase y.y.y.4: Recursive trigger/SP references ------------------------------------------------- -set @sql_mode='traditional'; +set sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1_sp ( count integer, var136 tinyint, @@ -347,6 +349,7 @@ count(*) drop procedure trig_sp; drop trigger trg; drop table t1_sp; +set sql_mode = default; Testcase y.y.y.5: Rollback of nested trigger references ------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/is_cml_innodb.result b/mysql-test/suite/funcs_1/r/is_cml_innodb.result index d8cd7a93664..58718fc5fae 100644 --- a/mysql-test/suite/funcs_1/r/is_cml_innodb.result +++ b/mysql-test/suite/funcs_1/r/is_cml_innodb.result @@ -40,6 +40,9 @@ WHERE table_schema LIKE 'test%' AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 SELECT DISTINCT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, DATA_TYPE, @@ -56,6 +59,9 @@ COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME 2.0000 text ucs2 ucs2_general_ci 2.0000 varchar ucs2 ucs2_general_ci 2.0079 tinytext ucs2 ucs2_general_ci +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 SELECT DISTINCT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, DATA_TYPE, @@ -68,6 +74,11 @@ ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME NULL char ucs2 ucs2_general_ci NULL varchar ucs2 ucs2_general_ci +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 --> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values --> are 0, which is intended behavior, and the result of 0 / 0 IS NULL SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, @@ -94,4 +105,7 @@ NULL test t1 f5 varchar 0 0 ucs2 ucs2_general_ci varchar(0) 2.0079 test t1 f9 tinytext 127 255 ucs2 ucs2_general_ci tinytext 2.0000 test t1 f10 mediumtext 8388607 16777215 ucs2 ucs2_general_ci mediumtext 2.0000 test t1 f11 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 DROP TABLE t1; diff --git a/mysql-test/suite/funcs_1/r/is_columns.result b/mysql-test/suite/funcs_1/r/is_columns.result index 89f29ff4b38..63c6e11f20a 100644 --- a/mysql-test/suite/funcs_1/r/is_columns.result +++ b/mysql-test/suite/funcs_1/r/is_columns.result @@ -430,8 +430,8 @@ TABLE_SCHEMA test TABLE_NAME t1_my_tablex COLUMN_NAME col2 ORDINAL_POSITION 2 -COLUMN_DEFAULT -IS_NULLABLE NO +COLUMN_DEFAULT NULL +IS_NULLABLE YES DATA_TYPE varchar CHARACTER_MAXIMUM_LENGTH 1 CHARACTER_OCTET_LENGTH 1 diff --git a/mysql-test/suite/funcs_1/r/is_columns_innodb.result b/mysql-test/suite/funcs_1/r/is_columns_innodb.result index a005e39b0b4..f946930bf30 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_innodb.result +++ b/mysql-test/suite/funcs_1/r/is_columns_innodb.result @@ -359,29 +359,9 @@ drop TABLE if exists t7, t8; CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = InnoDB; CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = InnoDB; LOAD DATA INFILE '/std_data/funcs_1/t7.txt' INTO TABLE t7; -Warnings: -Warning 1265 Data truncated for column 'f3' at row 1 -Warning 1265 Data truncated for column 'f3' at row 2 -Warning 1265 Data truncated for column 'f3' at row 3 -Warning 1265 Data truncated for column 'f3' at row 4 -Warning 1265 Data truncated for column 'f3' at row 5 -Warning 1265 Data truncated for column 'f3' at row 6 -Warning 1265 Data truncated for column 'f3' at row 7 -Warning 1265 Data truncated for column 'f3' at row 8 -Warning 1265 Data truncated for column 'f3' at row 9 -Warning 1265 Data truncated for column 'f3' at row 10 +ERROR 22007: Incorrect date value: '' for column 'f3' at row 1 LOAD DATA INFILE '/std_data/funcs_1/t7.txt' INTO TABLE t8; -Warnings: -Warning 1265 Data truncated for column 'f3' at row 1 -Warning 1265 Data truncated for column 'f3' at row 2 -Warning 1265 Data truncated for column 'f3' at row 3 -Warning 1265 Data truncated for column 'f3' at row 4 -Warning 1265 Data truncated for column 'f3' at row 5 -Warning 1265 Data truncated for column 'f3' at row 6 -Warning 1265 Data truncated for column 'f3' at row 7 -Warning 1265 Data truncated for column 'f3' at row 8 -Warning 1265 Data truncated for column 'f3' at row 9 -Warning 1265 Data truncated for column 'f3' at row 10 +ERROR 22007: Incorrect date value: '' for column 'f3' at row 1 drop TABLE if exists t9; CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = InnoDB; LOAD DATA INFILE '/std_data/funcs_1/t9.txt' INTO TABLE t9; @@ -743,6 +723,12 @@ COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME 1.0000 text latin1 latin1_swedish_ci 1.0000 tinytext latin1 latin1_swedish_ci 1.0000 varchar latin1 latin1_swedish_ci +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 SELECT DISTINCT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, DATA_TYPE, @@ -753,6 +739,12 @@ WHERE table_schema LIKE 'test%' AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 SELECT DISTINCT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, DATA_TYPE, @@ -779,6 +771,17 @@ NULL year NULL NULL NULL char latin1 latin1_bin NULL char latin1 latin1_swedish_ci NULL varchar latin1 latin1_swedish_ci +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 --> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values --> are 0, which is intended behavior, and the result of 0 / 0 IS NULL SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, @@ -1121,6 +1124,12 @@ NULL test4 t6 f3 date NULL NULL NULL NULL date NULL test4 t6 f4 int NULL NULL NULL NULL int(11) 1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25) NULL test4 t6 f6 int NULL NULL NULL NULL int(11) +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 DROP DATABASE test1; DROP DATABASE test4; DROP TABLE test.t1; diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_02.result b/mysql-test/suite/funcs_1/r/memory_storedproc_02.result index 0ee25154c50..fe23f9de0c5 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_02.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_02.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -74,6 +74,7 @@ Ensure that the scope of each BEGIN/END compound statement within a stored procedure definition is properly applied -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp1; +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp1( ) begin_label: BEGIN declare x char DEFAULT 'x'; @@ -714,6 +715,7 @@ DROP PROCEDURE IF EXISTS sp3; DROP PROCEDURE IF EXISTS sp4; DROP TABLE IF EXISTS temp; CREATE TABLE temp( f1 CHAR, f2 CHAR); +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp0() BEGIN set @done=0; @@ -721,6 +723,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp1() BEGIN declare continue handler for sqlstate '01000' set @done = 1; @@ -729,6 +732,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp2() BEGIN declare continue handler for sqlwarning set @done = 1; @@ -737,6 +741,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp3() BEGIN declare exit handler for sqlstate '01000' set @done = 1; @@ -745,6 +750,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp4() BEGIN declare exit handler for sqlwarning set @done = 1; diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_03.result b/mysql-test/suite/funcs_1/r/memory_storedproc_03.result index f5e40d190a6..6390cc240f9 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_03.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_03.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_06.result b/mysql-test/suite/funcs_1/r/memory_storedproc_06.result index a0a48842ef8..ce1ee82e89a 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_06.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_06.result @@ -29,7 +29,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -43,7 +43,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_07.result b/mysql-test/suite/funcs_1/r/memory_storedproc_07.result index 2b8d41f963e..751986b837e 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_07.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_07.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_08.result b/mysql-test/suite/funcs_1/r/memory_storedproc_08.result index 1188eedf6c6..1b8a571e481 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_08.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_08.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_10.result b/mysql-test/suite/funcs_1/r/memory_storedproc_10.result index bf4fcefb9db..0f5fe7cf34c 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_10.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_10.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/memory_trig_03e.result b/mysql-test/suite/funcs_1/r/memory_trig_03e.result index f9e8fc05088..83c36c6294f 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_03e.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_03e.result @@ -487,8 +487,8 @@ create trigger trg1_4 before UPDATE on t1 for each row set new.f1 = 'trig 1_4-yes'; show triggers; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -trg1_3 INSERT t1 set new.f1 = 'trig 1_3-yes' BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci -trg1_4 UPDATE t1 set new.f1 = 'trig 1_4-yes' BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg1_3 INSERT t1 set new.f1 = 'trig 1_3-yes' BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg1_4 UPDATE t1 set new.f1 = 'trig 1_4-yes' BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci connection no_privs; select current_user; current_user diff --git a/mysql-test/suite/funcs_1/r/memory_trig_09.result b/mysql-test/suite/funcs_1/r/memory_trig_09.result index 5394aa01bf6..7579418dc1f 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_09.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_09.result @@ -186,7 +186,7 @@ a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 0 0 0 0 0 0 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 0 0 0 0 0 0 -Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL +update ignore tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL where f122='Test 3.5.9.4'; Warnings: Warning 1048 Column 'f136' cannot be null diff --git a/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result b/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result index 8dd080d7ddd..63b8b643820 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result @@ -164,6 +164,7 @@ Testcase 3.5.10.6: (implemented in trig_frkey.test) Testcase 3.5.10.extra: ---------------------- +set sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1_sp (var136 tinyint, var151 decimal) engine = ; create trigger trg before insert on t1_sp for each row set @counter=@counter+1; @@ -200,6 +201,7 @@ count(*) drop procedure trig_sp; drop trigger trg; drop table t1_sp; +set sql_mode = default; Testcase 3.5.11.1 (implemented in trig_perf.test) ------------------------------------------------- @@ -295,7 +297,7 @@ drop table t4; Testcase y.y.y.4: Recursive trigger/SP references ------------------------------------------------- -set @sql_mode='traditional'; +set sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1_sp ( count integer, var136 tinyint, @@ -352,6 +354,7 @@ count(*) drop procedure trig_sp; drop trigger trg; drop table t1_sp; +set sql_mode = default; Testcase y.y.y.5: Rollback of nested trigger references ------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result index 0ee25154c50..fe23f9de0c5 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -74,6 +74,7 @@ Ensure that the scope of each BEGIN/END compound statement within a stored procedure definition is properly applied -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp1; +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp1( ) begin_label: BEGIN declare x char DEFAULT 'x'; @@ -714,6 +715,7 @@ DROP PROCEDURE IF EXISTS sp3; DROP PROCEDURE IF EXISTS sp4; DROP TABLE IF EXISTS temp; CREATE TABLE temp( f1 CHAR, f2 CHAR); +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp0() BEGIN set @done=0; @@ -721,6 +723,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp1() BEGIN declare continue handler for sqlstate '01000' set @done = 1; @@ -729,6 +732,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp2() BEGIN declare continue handler for sqlwarning set @done = 1; @@ -737,6 +741,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp3() BEGIN declare exit handler for sqlstate '01000' set @done = 1; @@ -745,6 +750,7 @@ set @x=0; insert into temp values('xxx', 'yy'); set @x=1; END// +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp4() BEGIN declare exit handler for sqlwarning set @done = 1; diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result index f5e40d190a6..6390cc240f9 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result index a0a48842ef8..ce1ee82e89a 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result @@ -29,7 +29,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -43,7 +43,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result index 2b8d41f963e..751986b837e 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result index 1188eedf6c6..1b8a571e481 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result index bf4fcefb9db..0f5fe7cf34c 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_03e.result b/mysql-test/suite/funcs_1/r/myisam_trig_03e.result index d1ab5674cb4..a4db9050c86 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_03e.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_03e.result @@ -487,8 +487,8 @@ create trigger trg1_4 before UPDATE on t1 for each row set new.f1 = 'trig 1_4-yes'; show triggers; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -trg1_3 INSERT t1 set new.f1 = 'trig 1_3-yes' BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci -trg1_4 UPDATE t1 set new.f1 = 'trig 1_4-yes' BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg1_3 INSERT t1 set new.f1 = 'trig 1_3-yes' BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg1_4 UPDATE t1 set new.f1 = 'trig 1_4-yes' BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION test_yesprivs@localhost latin1 latin1_swedish_ci latin1_swedish_ci connection no_privs; select current_user; current_user diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_09.result b/mysql-test/suite/funcs_1/r/myisam_trig_09.result index 5394aa01bf6..7579418dc1f 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_09.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_09.result @@ -186,7 +186,7 @@ a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 0 0 0 0 0 0 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 0 0 0 0 0 0 -Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL +update ignore tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL where f122='Test 3.5.9.4'; Warnings: Warning 1048 Column 'f136' cannot be null diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result b/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result index 38cbe10e64b..e73e0413469 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result @@ -164,6 +164,7 @@ Testcase 3.5.10.6: (implemented in trig_frkey.test) Testcase 3.5.10.extra: ---------------------- +set sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1_sp (var136 tinyint, var151 decimal) engine = ; create trigger trg before insert on t1_sp for each row set @counter=@counter+1; @@ -200,6 +201,7 @@ count(*) drop procedure trig_sp; drop trigger trg; drop table t1_sp; +set sql_mode = default; Testcase 3.5.11.1 (implemented in trig_perf.test) ------------------------------------------------- @@ -295,7 +297,7 @@ drop table t4; Testcase y.y.y.4: Recursive trigger/SP references ------------------------------------------------- -set @sql_mode='traditional'; +set sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1_sp ( count integer, var136 tinyint, @@ -352,6 +354,7 @@ count(*) drop procedure trig_sp; drop trigger trg; drop table t1_sp; +set sql_mode = default; Testcase y.y.y.5: Rollback of nested trigger references ------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/storedproc.result b/mysql-test/suite/funcs_1/r/storedproc.result index 7a27703a1ec..2c86e6c3e73 100644 --- a/mysql-test/suite/funcs_1/r/storedproc.result +++ b/mysql-test/suite/funcs_1/r/storedproc.result @@ -28,7 +28,7 @@ load data infile '/std_data/funcs_1/t4.txt' into table t6; USE db_storedproc; create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t7; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -42,7 +42,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = ; -load data infile '/std_data/funcs_1/t7.txt' into table t8; +load data infile '/std_data/funcs_1/t7.txt' ignore into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 diff --git a/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc b/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc index c4ae93aca6b..6f23a559ce3 100644 --- a/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc +++ b/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc @@ -70,7 +70,7 @@ create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = $engine_type; --replace_result $MYSQLTEST_VARDIR eval -load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/t7.txt' into table t7; +load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/t7.txt' ignore into table t7; --replace_result $engine_type eval @@ -78,7 +78,7 @@ create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = $engine_type; --replace_result $MYSQLTEST_VARDIR eval -load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/t7.txt' into table t8; +load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/t7.txt' ignore into table t8; --replace_result $engine_type eval diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc index 0d9548830b4..2717303ddb9 100644 --- a/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc +++ b/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc @@ -211,6 +211,7 @@ DROP PROCEDURE IF EXISTS sp1; --enable_warnings delimiter //; +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp1( ) begin_label: BEGIN declare x char DEFAULT 'x'; @@ -994,6 +995,7 @@ CREATE TABLE temp( f1 CHAR, f2 CHAR); delimiter //; # 0 - without handler +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp0() BEGIN set @done=0; @@ -1003,6 +1005,7 @@ BEGIN END// # 1st one with SQLSTATE + CONTINUE +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp1() BEGIN declare continue handler for sqlstate '01000' set @done = 1; @@ -1013,6 +1016,7 @@ BEGIN END// # 2nd one with SQLWARNING + CONTINUE +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp2() BEGIN declare continue handler for sqlwarning set @done = 1; @@ -1023,6 +1027,7 @@ BEGIN END// # 3 with SQLSTATE + EXIT +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp3() BEGIN declare exit handler for sqlstate '01000' set @done = 1; @@ -1033,6 +1038,7 @@ BEGIN END// # 4 with SQLWARNING + EXIT +SET STATEMENT sql_mode = '' FOR CREATE PROCEDURE sp4() BEGIN declare exit handler for sqlwarning set @done = 1; diff --git a/mysql-test/suite/funcs_1/triggers/triggers_09.inc b/mysql-test/suite/funcs_1/triggers/triggers_09.inc index e9e6af92994..93762b363df 100644 --- a/mysql-test/suite/funcs_1/triggers/triggers_09.inc +++ b/mysql-test/suite/funcs_1/triggers/triggers_09.inc @@ -183,7 +183,7 @@ let $message= Testcase 3.5.9.4:; @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; --enable_query_log - Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL + update ignore tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL where f122='Test 3.5.9.4'; select f118, f121, f122, f136, f151, f163 from tb3 diff --git a/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc b/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc index dd8b2a87cd8..88b04a0eefd 100644 --- a/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc +++ b/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc @@ -144,7 +144,7 @@ let $message= Testcase 3.5.10.6: (implemented in trig_frkey.test); # on the subject table from a stored procedure is indeed activated correctly let $message= Testcase 3.5.10.extra:; --source include/show_msg.inc - + set sql_mode = 'NO_ENGINE_SUBSTITUTION'; --replace_result $engine_type eval create table t1_sp (var136 tinyint, var151 decimal) engine = $engine_type; @@ -184,6 +184,7 @@ let $message= Testcase 3.5.10.extra:; drop trigger trg; drop table t1_sp; --enable_warnings + set sql_mode = default; ################################## ########## Section 3.5.11 ######## @@ -321,8 +322,7 @@ let $message= Testcase y.y.y.3: Circular trigger reference; # Testcase: create recursive trigger/storedprocedures conditions let $message= Testcase y.y.y.4: Recursive trigger/SP references; --source include/show_msg.inc - -set @sql_mode='traditional'; + set sql_mode = 'NO_ENGINE_SUBSTITUTION'; --replace_result $engine_type eval create table t1_sp ( count integer, @@ -375,6 +375,7 @@ set @sql_mode='traditional'; drop trigger trg; drop table t1_sp; --enable_warnings + set sql_mode = default; # Testcase: y.y.y.5: diff --git a/mysql-test/suite/funcs_2/include/check_charset.inc b/mysql-test/suite/funcs_2/include/check_charset.inc index 0242d4390ac..bf2f2db610b 100644 --- a/mysql-test/suite/funcs_2/include/check_charset.inc +++ b/mysql-test/suite/funcs_2/include/check_charset.inc @@ -26,7 +26,7 @@ ALTER TABLE test.t1 ADD code VARCHAR(16) NOT NULL; let $1= 221; while ($1) { - eval INSERT INTO test.t1 VALUES(CHAR(254-$1), HEX(254-$1)); + eval INSERT IGNORE INTO test.t1 VALUES(CHAR(254-$1), HEX(254-$1)); dec $1; } DELETE FROM test.t1 WHERE CHAR_LENGTH(a) <> 1; diff --git a/mysql-test/suite/galera/r/galera_create_function.result b/mysql-test/suite/galera/r/galera_create_function.result index 576ea44cce5..9118c2864f3 100644 --- a/mysql-test/suite/galera/r/galera_create_function.result +++ b/mysql-test/suite/galera/r/galera_create_function.result @@ -22,7 +22,7 @@ RETURN 123; connection node_1; SHOW CREATE FUNCTION f1; Function sql_mode Create Function character_set_client collation_connection Database Collation -f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` FUNCTION `f1`(param INTEGER) RETURNS varchar(200) CHARSET latin1 +f1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` FUNCTION `f1`(param INTEGER) RETURNS varchar(200) CHARSET latin1 MODIFIES SQL DATA COMMENT 'f1_comment' RETURN 'abc' latin1 latin1_swedish_ci latin1_swedish_ci @@ -32,14 +32,14 @@ SELECT 1 FROM DUAL; 1 SHOW CREATE FUNCTION f1; Function sql_mode Create Function character_set_client collation_connection Database Collation -f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` FUNCTION `f1`(param INTEGER) RETURNS varchar(200) CHARSET latin1 +f1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` FUNCTION `f1`(param INTEGER) RETURNS varchar(200) CHARSET latin1 MODIFIES SQL DATA COMMENT 'f1_comment' RETURN 'abc' latin1 latin1_swedish_ci latin1_swedish_ci connection node_1; SHOW CREATE FUNCTION f2; Function sql_mode Create Function character_set_client collation_connection Database Collation -f2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11) +f2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11) NO SQL DETERMINISTIC SQL SECURITY INVOKER @@ -47,7 +47,7 @@ RETURN 123 latin1 latin1_swedish_ci latin1_swedish_ci connection node_2; SHOW CREATE FUNCTION f2; Function sql_mode Create Function character_set_client collation_connection Database Collation -f2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11) +f2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f2`(param VARCHAR(100)) RETURNS int(11) NO SQL DETERMINISTIC SQL SECURITY INVOKER diff --git a/mysql-test/suite/galera/r/galera_create_procedure.result b/mysql-test/suite/galera/r/galera_create_procedure.result index 90f29ffa617..98dc4a856dc 100644 --- a/mysql-test/suite/galera/r/galera_create_procedure.result +++ b/mysql-test/suite/galera/r/galera_create_procedure.result @@ -20,7 +20,7 @@ SQL SECURITY INVOKER BEGIN END ; connection node_1; SHOW CREATE PROCEDURE p1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` PROCEDURE `p1`(IN param1 INTEGER, OUT param2 INTEGER, INOUT param3 INTEGER) +p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` PROCEDURE `p1`(IN param1 INTEGER, OUT param2 INTEGER, INOUT param3 INTEGER) MODIFIES SQL DATA COMMENT 'p1_comment' INSERT INTO t1 VALUES (1) latin1 latin1_swedish_ci latin1_swedish_ci @@ -30,14 +30,14 @@ SELECT 1 FROM DUAL; 1 SHOW CREATE PROCEDURE p1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` PROCEDURE `p1`(IN param1 INTEGER, OUT param2 INTEGER, INOUT param3 INTEGER) +p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`user1`@`%` PROCEDURE `p1`(IN param1 INTEGER, OUT param2 INTEGER, INOUT param3 INTEGER) MODIFIES SQL DATA COMMENT 'p1_comment' INSERT INTO t1 VALUES (1) latin1 latin1_swedish_ci latin1_swedish_ci connection node_1; SHOW CREATE PROCEDURE p2; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100)) +p2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100)) NO SQL DETERMINISTIC SQL SECURITY INVOKER @@ -45,7 +45,7 @@ BEGIN END latin1 latin1_swedish_ci latin1_swedish_ci connection node_2; SHOW CREATE PROCEDURE p2; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100)) +p2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(param VARCHAR(100)) NO SQL DETERMINISTIC SQL SECURITY INVOKER diff --git a/mysql-test/suite/galera/r/galera_enum.result b/mysql-test/suite/galera/r/galera_enum.result index e8ccb12b990..1bac7dc9388 100644 --- a/mysql-test/suite/galera/r/galera_enum.result +++ b/mysql-test/suite/galera/r/galera_enum.result @@ -2,7 +2,7 @@ connection node_1; CREATE TABLE t1 (f1 ENUM('', 'one', 'two'), KEY (f1)) ENGINE=InnoDB; INSERT INTO t1 VALUES (''); INSERT INTO t1 VALUES ('one'), ('two'); -INSERT INTO t1 VALUES (0), (1), (2); +INSERT IGNORE INTO t1 VALUES (0), (1), (2); Warnings: Warning 1265 Data truncated for column 'f1' at row 1 connection node_2; diff --git a/mysql-test/suite/galera/r/galera_sync_wait_show.result b/mysql-test/suite/galera/r/galera_sync_wait_show.result index 4c104eb54d8..e0783e42174 100644 --- a/mysql-test/suite/galera/r/galera_sync_wait_show.result +++ b/mysql-test/suite/galera/r/galera_sync_wait_show.result @@ -12,7 +12,7 @@ CREATE PROCEDURE p1 () SELECT 1 FROM DUAL; connection node_2; SHOW CREATE PROCEDURE p1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -p1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() SELECT 1 FROM DUAL latin1 latin1_swedish_ci latin1_swedish_ci DROP PROCEDURE p1; connection node_1; @@ -27,7 +27,7 @@ CREATE FUNCTION f1 () RETURNS INTEGER RETURN 123; connection node_2; SHOW CREATE FUNCTION f1; Function sql_mode Create Function character_set_client collation_connection Database Collation -f1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11) +f1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11) RETURN 123 latin1 latin1_swedish_ci latin1_swedish_ci DROP FUNCTION f1; connection node_1; @@ -43,12 +43,12 @@ CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET NEW.f1 = 'a'; connection node_2; SHOW CREATE TRIGGER tr1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -tr1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET NEW.f1 = 'a' latin1 latin1_swedish_ci latin1_swedish_ci # +tr1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW SET NEW.f1 = 'a' latin1 latin1_swedish_ci latin1_swedish_ci # DROP TABLE t1; connection node_1; CREATE EVENT event1 ON SCHEDULE AT '2038-01-01 23:59:59' DO SELECT 1; connection node_2; SHOW CREATE EVENT event1; Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -event1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `event1` ON SCHEDULE AT '2038-01-01 23:59:59' ON COMPLETION NOT PRESERVE DISABLE ON SLAVE DO SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci +event1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`root`@`localhost` EVENT `event1` ON SCHEDULE AT '2038-01-01 23:59:59' ON COMPLETION NOT PRESERVE DISABLE ON SLAVE DO SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci DROP EVENT event1; diff --git a/mysql-test/suite/galera/r/lp1347768.result b/mysql-test/suite/galera/r/lp1347768.result index c085059e014..7beb167d538 100644 --- a/mysql-test/suite/galera/r/lp1347768.result +++ b/mysql-test/suite/galera/r/lp1347768.result @@ -11,7 +11,7 @@ PRIMARY KEY (`id`), UNIQUE KEY `idx_link_old` (`old_url`), KEY `idx_link_modifed` (`modified_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO r8kmb_redirect_links VALUES (550,'http://mysite.com/images/download/ßуñûічýøù_ôþóþòір_þфõÑ.doc','','','',0,'2013-07-15 14:29:42','0000-00-00 00:00:00'); +INSERT IGNORE INTO r8kmb_redirect_links VALUES (550,'http://mysite.com/images/download/ßуñûічýøù_ôþóþòір_þфõÑ.doc','','','',0,'2013-07-15 14:29:42','0000-00-00 00:00:00'); Warnings: Warning 1265 Data truncated for column 'old_url' at row 1 DROP TABLE r8kmb_redirect_links; diff --git a/mysql-test/suite/galera/t/galera_enum.test b/mysql-test/suite/galera/t/galera_enum.test index ff5332486aa..2497f717ef2 100644 --- a/mysql-test/suite/galera/t/galera_enum.test +++ b/mysql-test/suite/galera/t/galera_enum.test @@ -14,7 +14,7 @@ CREATE TABLE t1 (f1 ENUM('', 'one', 'two'), KEY (f1)) ENGINE=InnoDB; INSERT INTO t1 VALUES (''); INSERT INTO t1 VALUES ('one'), ('two'); -INSERT INTO t1 VALUES (0), (1), (2); +INSERT IGNORE INTO t1 VALUES (0), (1), (2); --connection node_2 SELECT COUNT(*) = 6 FROM t1; diff --git a/mysql-test/suite/galera/t/lp1347768.test b/mysql-test/suite/galera/t/lp1347768.test index 96d42867c6a..ad5f5e9c38c 100644 --- a/mysql-test/suite/galera/t/lp1347768.test +++ b/mysql-test/suite/galera/t/lp1347768.test @@ -19,6 +19,6 @@ CREATE TABLE `r8kmb_redirect_links` ( KEY `idx_link_modifed` (`modified_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO r8kmb_redirect_links VALUES (550,'http://mysite.com/images/download/ßуñûічýøù_ôþóþòір_þфõÑ.doc','','','',0,'2013-07-15 14:29:42','0000-00-00 00:00:00'); +INSERT IGNORE INTO r8kmb_redirect_links VALUES (550,'http://mysite.com/images/download/ßуñûічýøù_ôþóþòір_þфõÑ.doc','','','',0,'2013-07-15 14:29:42','0000-00-00 00:00:00'); DROP TABLE r8kmb_redirect_links; diff --git a/mysql-test/suite/gcol/inc/gcol_column_def_options.inc b/mysql-test/suite/gcol/inc/gcol_column_def_options.inc index bd84ace62ec..f132c2f2f63 100644 --- a/mysql-test/suite/gcol/inc/gcol_column_def_options.inc +++ b/mysql-test/suite/gcol/inc/gcol_column_def_options.inc @@ -269,10 +269,12 @@ ALTER TABLE t1 DROP PRIMARY KEY , ADD KEY idx ( col5, col2 ); DROP TABLE t1; --echo # Bug#20949226:i CAN ASSIGN NON-DEFAULT() VALUE TO GENERATED COLUMN --echo # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, 5 AS c2; CREATE TABLE t2 (a int); INSERT INTO t2 values(1); DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, a AS c2 from t2; DROP TABLE t1; CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, 5; diff --git a/mysql-test/suite/gcol/inc/gcol_ins_upd.inc b/mysql-test/suite/gcol/inc/gcol_ins_upd.inc index 4b3431eea2e..7fde9c2e852 100644 --- a/mysql-test/suite/gcol/inc/gcol_ins_upd.inc +++ b/mysql-test/suite/gcol/inc/gcol_ins_upd.inc @@ -47,7 +47,7 @@ delete from t1; select * from t1; --echo # INSERT INTO tbl_name VALUES... a non-NULL value is specified against gcols -insert into t1 values (1,2,3); +insert ignore into t1 values (1,2,3); select * from t1; delete from t1; select * from t1; @@ -73,7 +73,7 @@ select * from t1; --echo # INSERT INTO tbl_name () VALUES... a non-NULL value is specified --echo # against gcols -insert into t1 (a,b) values (1,3), (2,4); +insert ignore into t1 (a,b) values (1,3), (2,4); select * from t1; delete from t1; select * from t1; @@ -131,7 +131,7 @@ select * from t1; --echo # UPDATE tbl_name SET gcol=expr WHERE non-gcol=expr insert into t1 (a) values (1), (2); select * from t1 order by a; -update t1 set c=3 where a=2; +update ignore t1 set c=3 where a=2; select * from t1 order by a; delete from t1; select * from t1; @@ -147,7 +147,7 @@ select * from t1; --echo # UPDATE tbl_name SET gcol=expr WHERE gcol=expr insert into t1 (a) values (1), (2); select * from t1 order by a; -update t1 set c=3 where b=-2; +update ignore t1 set c=3 where b=-2; select * from t1 order by a; delete from t1; select * from t1; @@ -493,7 +493,7 @@ b TIMESTAMP(4) GENERATED ALWAYS AS ('') VIRTUAL, KEY (a(183),b) ); -INSERT INTO t VALUES(), (), (); +INSERT IGNORE INTO t VALUES(), (), (); DELETE IGNORE FROM t; @@ -512,7 +512,7 @@ CREATE TABLE t ( UNIQUE(b), UNIQUE(b1) ); -INSERT INTO t VALUES(); +INSERT IGNORE INTO t VALUES(); SELECT b from t; SELECT b1 from t; SELECT * from t; diff --git a/mysql-test/suite/gcol/inc/gcol_keys.inc b/mysql-test/suite/gcol/inc/gcol_keys.inc index 7f888ef54a5..8b6712e9302 100644 --- a/mysql-test/suite/gcol/inc/gcol_keys.inc +++ b/mysql-test/suite/gcol/inc/gcol_keys.inc @@ -676,6 +676,7 @@ INSERT INTO t(a) VALUES (1); # Before index was created, this query returned the expected one match. SELECT * FROM t WHERE c = '0'; # Adding an index sometimes crashed, other times populated it with garbage ... +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD UNIQUE INDEX (c(1)); # ... so that this query found no match in the index. SELECT * FROM t WHERE c = '0'; @@ -689,8 +690,9 @@ CREATE TABLE t (a INT, b INT, h VARCHAR(10)); INSERT INTO t VALUES (12, 3, "ss"); INSERT INTO t VALUES (13, 4, "ss"); INSERT INTO t VALUES (14, 0, "ss"); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD c INT GENERATED ALWAYS AS (a/b) VIRTUAL; -#--error ER_DIVISION_BY_ZERO +--error ER_DIVISION_BY_ZERO CREATE INDEX idx ON t(c); CALL mtr.add_suppression("\\[Warning\\] InnoDB: Compute virtual column values failed"); DROP TABLE t; diff --git a/mysql-test/suite/gcol/r/gcol_column_def_options_innodb.result b/mysql-test/suite/gcol/r/gcol_column_def_options_innodb.result index 37be09b221f..c4a54999614 100644 --- a/mysql-test/suite/gcol/r/gcol_column_def_options_innodb.result +++ b/mysql-test/suite/gcol/r/gcol_column_def_options_innodb.result @@ -354,12 +354,14 @@ ERROR 42000: Can't DROP INDEX `PRIMARY`; check that it exists DROP TABLE t1; # Bug#20949226:i CAN ASSIGN NON-DEFAULT() VALUE TO GENERATED COLUMN # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, 5 AS c2; Warnings: Warning 1906 The value specified for generated column 'c2' in table 't1' ignored CREATE TABLE t2 (a int); INSERT INTO t2 values(1); DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, a AS c2 from t2; Warnings: Warning 1906 The value specified for generated column 'c2' in table 't1' ignored diff --git a/mysql-test/suite/gcol/r/gcol_column_def_options_myisam.result b/mysql-test/suite/gcol/r/gcol_column_def_options_myisam.result index f6d0830ee3d..0f66b3ad779 100644 --- a/mysql-test/suite/gcol/r/gcol_column_def_options_myisam.result +++ b/mysql-test/suite/gcol/r/gcol_column_def_options_myisam.result @@ -354,12 +354,14 @@ ERROR 42000: Can't DROP INDEX `PRIMARY`; check that it exists DROP TABLE t1; # Bug#20949226:i CAN ASSIGN NON-DEFAULT() VALUE TO GENERATED COLUMN # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, 5 AS c2; Warnings: Warning 1906 The value specified for generated column 'c2' in table 't1' ignored CREATE TABLE t2 (a int); INSERT INTO t2 values(1); DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, a AS c2 from t2; Warnings: Warning 1906 The value specified for generated column 'c2' in table 't1' ignored diff --git a/mysql-test/suite/gcol/r/gcol_ins_upd_innodb.result b/mysql-test/suite/gcol/r/gcol_ins_upd_innodb.result index 192016ba8df..3c2e4d3dd0a 100644 --- a/mysql-test/suite/gcol/r/gcol_ins_upd_innodb.result +++ b/mysql-test/suite/gcol/r/gcol_ins_upd_innodb.result @@ -23,7 +23,7 @@ delete from t1; select * from t1; a b c # INSERT INTO tbl_name VALUES... a non-NULL value is specified against gcols -insert into t1 values (1,2,3); +insert ignore into t1 values (1,2,3); Warnings: Warning 1906 The value specified for generated column 'b' in table 't1' ignored Warning 1906 The value specified for generated column 'c' in table 't1' ignored @@ -63,7 +63,7 @@ select * from t1; a b c # INSERT INTO tbl_name () VALUES... a non-NULL value is specified # against gcols -insert into t1 (a,b) values (1,3), (2,4); +insert ignore into t1 (a,b) values (1,3), (2,4); Warnings: Warning 1906 The value specified for generated column 'b' in table 't1' ignored Warning 1906 The value specified for generated column 'b' in table 't1' ignored @@ -151,7 +151,7 @@ select * from t1 order by a; a b c 1 -1 -1 2 -2 -2 -update t1 set c=3 where a=2; +update ignore t1 set c=3 where a=2; Warnings: Warning 1906 The value specified for generated column 'c' in table 't1' ignored select * from t1 order by a; @@ -181,7 +181,7 @@ select * from t1 order by a; a b c 1 -1 -1 2 -2 -2 -update t1 set c=3 where b=-2; +update ignore t1 set c=3 where b=-2; Warnings: Warning 1906 The value specified for generated column 'c' in table 't1' ignored select * from t1 order by a; diff --git a/mysql-test/suite/gcol/r/gcol_ins_upd_myisam.result b/mysql-test/suite/gcol/r/gcol_ins_upd_myisam.result index b30eb709c47..4d62a5d7a82 100644 --- a/mysql-test/suite/gcol/r/gcol_ins_upd_myisam.result +++ b/mysql-test/suite/gcol/r/gcol_ins_upd_myisam.result @@ -23,7 +23,7 @@ delete from t1; select * from t1; a b c # INSERT INTO tbl_name VALUES... a non-NULL value is specified against gcols -insert into t1 values (1,2,3); +insert ignore into t1 values (1,2,3); Warnings: Warning 1906 The value specified for generated column 'b' in table 't1' ignored Warning 1906 The value specified for generated column 'c' in table 't1' ignored @@ -63,7 +63,7 @@ select * from t1; a b c # INSERT INTO tbl_name () VALUES... a non-NULL value is specified # against gcols -insert into t1 (a,b) values (1,3), (2,4); +insert ignore into t1 (a,b) values (1,3), (2,4); Warnings: Warning 1906 The value specified for generated column 'b' in table 't1' ignored Warning 1906 The value specified for generated column 'b' in table 't1' ignored @@ -151,7 +151,7 @@ select * from t1 order by a; a b c 1 -1 -1 2 -2 -2 -update t1 set c=3 where a=2; +update ignore t1 set c=3 where a=2; Warnings: Warning 1906 The value specified for generated column 'c' in table 't1' ignored select * from t1 order by a; @@ -181,7 +181,7 @@ select * from t1 order by a; a b c 1 -1 -1 2 -2 -2 -update t1 set c=3 where b=-2; +update ignore t1 set c=3 where b=-2; Warnings: Warning 1906 The value specified for generated column 'c' in table 't1' ignored select * from t1 order by a; @@ -549,7 +549,7 @@ a BLOB GENERATED ALWAYS AS ('') VIRTUAL, b TIMESTAMP(4) GENERATED ALWAYS AS ('') VIRTUAL, KEY (a(183),b) ); -INSERT INTO t VALUES(), (), (); +INSERT IGNORE INTO t VALUES(), (), (); Warnings: Warning 1265 Data truncated for column 'b' at row 1 Warning 1265 Data truncated for column 'b' at row 2 @@ -568,7 +568,7 @@ c1 YEAR GENERATED ALWAYS AS ('aaaa') STORED, UNIQUE(b), UNIQUE(b1) ); -INSERT INTO t VALUES(); +INSERT IGNORE INTO t VALUES(); SELECT b from t; b 2000 diff --git a/mysql-test/suite/gcol/r/gcol_keys_myisam.result b/mysql-test/suite/gcol/r/gcol_keys_myisam.result index a331b1d2154..8cd871162fd 100644 --- a/mysql-test/suite/gcol/r/gcol_keys_myisam.result +++ b/mysql-test/suite/gcol/r/gcol_keys_myisam.result @@ -706,6 +706,7 @@ INSERT INTO t(a) VALUES (1); SELECT * FROM t WHERE c = '0'; a b c 1 127 0 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD UNIQUE INDEX (c(1)); Warnings: Warning 1264 Out of range value for column 'b' at row 1 @@ -721,8 +722,10 @@ CREATE TABLE t (a INT, b INT, h VARCHAR(10)); INSERT INTO t VALUES (12, 3, "ss"); INSERT INTO t VALUES (13, 4, "ss"); INSERT INTO t VALUES (14, 0, "ss"); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD c INT GENERATED ALWAYS AS (a/b) VIRTUAL; CREATE INDEX idx ON t(c); +ERROR 22012: Division by 0 CALL mtr.add_suppression("\\[Warning\\] InnoDB: Compute virtual column values failed"); DROP TABLE t; # diff --git a/mysql-test/suite/gcol/r/gcol_select_innodb.result b/mysql-test/suite/gcol/r/gcol_select_innodb.result index 24daadb0d5b..bc9bddad690 100644 --- a/mysql-test/suite/gcol/r/gcol_select_innodb.result +++ b/mysql-test/suite/gcol/r/gcol_select_innodb.result @@ -520,14 +520,12 @@ ALTER TABLE t1 ADD COLUMN d SMALLINT AS (a) VIRTUAL; ALTER TABLE t1 DROP COLUMN d; ALTER TABLE t1 ADD COLUMN c INT AS(a) VIRTUAL; ALTER TABLE t1 CHANGE c c SMALLINT AS(a) VIRTUAL; -Warnings: -Warning 1264 Out of range value for column 'c' at row 1 +ERROR 22003: Out of range value for column 'c' at row 1 ALTER TABLE t1 MODIFY c TINYINT AS(a) VIRTUAL; -Warnings: -Warning 1264 Out of range value for column 'c' at row 1 +ERROR 22003: Out of range value for column 'c' at row 1 SELECT * FROM t1; a c -2147483647 127 +2147483647 2147483647 DROP TABLE t1; CREATE TABLE t1(a INT); INSERT INTO t1 VALUES(2147483647); @@ -538,12 +536,9 @@ ERROR 0A000: LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. ALTER TABLE t1 ADD COLUMN e SMALLINT AS (a) VIRTUAL, ALGORITHM=COPY, LOCK=NONE; ERROR 0A000: LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. Try LOCK=SHARED ALTER TABLE t1 ADD COLUMN f SMALLINT AS (a) VIRTUAL, ALGORITHM=COPY, LOCK=SHARED; -Warnings: -Warning 1264 Out of range value for column 'f' at row 1 +ERROR 22003: Out of range value for column 'f' at row 1 ALTER TABLE t1 ADD COLUMN g SMALLINT AS (a) VIRTUAL, ALGORITHM=COPY, LOCK=EXCLUSIVE; -Warnings: -Warning 1264 Out of range value for column 'f' at row 1 -Warning 1264 Out of range value for column 'g' at row 1 +ERROR 22003: Out of range value for column 'g' at row 1 DROP TABLE t1; # # Bug#21980430 GCOLS: CRASHING diff --git a/mysql-test/suite/gcol/r/gcol_select_myisam.result b/mysql-test/suite/gcol/r/gcol_select_myisam.result index d5e4bdabb38..d0fe7fbd0d4 100644 --- a/mysql-test/suite/gcol/r/gcol_select_myisam.result +++ b/mysql-test/suite/gcol/r/gcol_select_myisam.result @@ -1122,27 +1122,25 @@ DROP TABLE t2, t3; CREATE TABLE t1(a INT); INSERT INTO t1 VALUES(2147483647); ALTER TABLE t1 ADD COLUMN b SMALLINT AS (a) VIRTUAL; -Warnings: -Warning 1264 Out of range value for column 'b' at row 1 +ERROR 22003: Out of range value for column 'b' at row 1 ALTER TABLE t1 DROP COLUMN b; +ERROR 42000: Can't DROP COLUMN `b`; check that it exists ALTER TABLE t1 ADD COLUMN c SMALLINT AS (a) VIRTUAL; -Warnings: -Warning 1264 Out of range value for column 'c' at row 1 +ERROR 22003: Out of range value for column 'c' at row 1 ALTER TABLE t1 DROP COLUMN c; +ERROR 42000: Can't DROP COLUMN `c`; check that it exists ALTER TABLE t1 ADD COLUMN d SMALLINT AS (a) VIRTUAL; -Warnings: -Warning 1264 Out of range value for column 'd' at row 1 +ERROR 22003: Out of range value for column 'd' at row 1 ALTER TABLE t1 DROP COLUMN d; +ERROR 42000: Can't DROP COLUMN `d`; check that it exists ALTER TABLE t1 ADD COLUMN c INT AS(a) VIRTUAL; ALTER TABLE t1 CHANGE c c SMALLINT AS(a) VIRTUAL; -Warnings: -Warning 1264 Out of range value for column 'c' at row 1 +ERROR 22003: Out of range value for column 'c' at row 1 ALTER TABLE t1 MODIFY c TINYINT AS(a) VIRTUAL; -Warnings: -Warning 1264 Out of range value for column 'c' at row 1 +ERROR 22003: Out of range value for column 'c' at row 1 SELECT * FROM t1; a c -2147483647 127 +2147483647 2147483647 DROP TABLE t1; CREATE TABLE t1(a INT); INSERT INTO t1 VALUES(2147483647); @@ -1153,12 +1151,9 @@ ERROR 0A000: LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. ALTER TABLE t1 ADD COLUMN e SMALLINT AS (a) VIRTUAL, ALGORITHM=COPY, LOCK=NONE; ERROR 0A000: LOCK=NONE is not supported. Reason: COPY algorithm requires a lock. Try LOCK=SHARED ALTER TABLE t1 ADD COLUMN f SMALLINT AS (a) VIRTUAL, ALGORITHM=COPY, LOCK=SHARED; -Warnings: -Warning 1264 Out of range value for column 'f' at row 1 +ERROR 22003: Out of range value for column 'f' at row 1 ALTER TABLE t1 ADD COLUMN g SMALLINT AS (a) VIRTUAL, ALGORITHM=COPY, LOCK=EXCLUSIVE; -Warnings: -Warning 1264 Out of range value for column 'f' at row 1 -Warning 1264 Out of range value for column 'g' at row 1 +ERROR 22003: Out of range value for column 'g' at row 1 DROP TABLE t1; # # Bug#21980430 GCOLS: CRASHING diff --git a/mysql-test/suite/gcol/r/gcol_supported_sql_funcs_innodb.result b/mysql-test/suite/gcol/r/gcol_supported_sql_funcs_innodb.result index 25e07e450d9..f8f447d493d 100644 --- a/mysql-test/suite/gcol/r/gcol_supported_sql_funcs_innodb.result +++ b/mysql-test/suite/gcol/r/gcol_supported_sql_funcs_innodb.result @@ -273,10 +273,14 @@ t1 CREATE TABLE `t1` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1 insert into t1 values (2,default); insert into t1 values (-2,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b -2 NULL 2 0.693147 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; # LOG() @@ -292,11 +296,15 @@ t1 CREATE TABLE `t1` ( insert into t1 values (2,65536,default); insert into t1 values (10,100,default); insert into t1 values (1,100,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b c 1 100 NULL 10 100 2 2 65536 16 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; set sql_warnings = 1; @@ -309,10 +317,14 @@ t1 CREATE TABLE `t1` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1 insert into t1 values (2,default); insert into t1 values (-2,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b -2 NULL 2 0.693147 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; # LOG2() @@ -326,10 +338,14 @@ t1 CREATE TABLE `t1` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1 insert into t1 values (65536,default); insert into t1 values (-100,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b -100 NULL 65536 16 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; # LOG10() @@ -344,11 +360,15 @@ t1 CREATE TABLE `t1` ( insert into t1 values (2,default); insert into t1 values (100,default); insert into t1 values (-100,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b -100 NULL 100 2 2 0.30103 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; # - @@ -2264,11 +2284,8 @@ t1 CREATE TABLE `t1` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1 insert into t1 values ('2003-02-05',default); insert into t1 values ('2003-02-32',default); -Warnings: -Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a b -0000-00-00 00:00:00 NULL 2003-02-05 00:00:00 2003-02-28 00:00:00 drop table t1; set sql_warnings = 0; diff --git a/mysql-test/suite/gcol/r/gcol_supported_sql_funcs_myisam.result b/mysql-test/suite/gcol/r/gcol_supported_sql_funcs_myisam.result index 03be01c3229..9db5f0c7c38 100644 --- a/mysql-test/suite/gcol/r/gcol_supported_sql_funcs_myisam.result +++ b/mysql-test/suite/gcol/r/gcol_supported_sql_funcs_myisam.result @@ -273,10 +273,14 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (2,default); insert into t1 values (-2,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b -2 NULL 2 0.693147 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; # LOG() @@ -292,11 +296,15 @@ t1 CREATE TABLE `t1` ( insert into t1 values (2,65536,default); insert into t1 values (10,100,default); insert into t1 values (1,100,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b c 1 100 NULL 10 100 2 2 65536 16 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; set sql_warnings = 1; @@ -309,10 +317,14 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (2,default); insert into t1 values (-2,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b -2 NULL 2 0.693147 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; # LOG2() @@ -326,10 +338,14 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (65536,default); insert into t1 values (-100,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b -100 NULL 65536 16 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; # LOG10() @@ -344,11 +360,15 @@ t1 CREATE TABLE `t1` ( insert into t1 values (2,default); insert into t1 values (100,default); insert into t1 values (-100,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b -100 NULL 100 2 2 0.30103 +Warning 1365 Division by 0 +Warnings: drop table t1; set sql_warnings = 0; # - @@ -2264,11 +2284,8 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('2003-02-05',default); insert into t1 values ('2003-02-32',default); -Warnings: -Warning 1265 Data truncated for column 'a' at row 1 select * from t1; a b -0000-00-00 00:00:00 NULL 2003-02-05 00:00:00 2003-02-28 00:00:00 drop table t1; set sql_warnings = 0; diff --git a/mysql-test/suite/gcol/r/innodb_virtual_basic.result b/mysql-test/suite/gcol/r/innodb_virtual_basic.result index f55085ce2f8..7212dbcc16f 100644 --- a/mysql-test/suite/gcol/r/innodb_virtual_basic.result +++ b/mysql-test/suite/gcol/r/innodb_virtual_basic.result @@ -927,6 +927,8 @@ INSERT INTO t VALUES (13, 4, "ss"); INSERT INTO t VALUES (14, 0, "ss"); alter table t add c INT GENERATED ALWAYS AS(a/b); create index idx on t(c); +Warnings: +Warning 1365 Division by 0 DROP TABLE t; CREATE TABLE t ( pk INTEGER AUTO_INCREMENT, diff --git a/mysql-test/suite/gcol/r/innodb_virtual_fk.result b/mysql-test/suite/gcol/r/innodb_virtual_fk.result index 38a13edd8fa..17ea0341049 100644 --- a/mysql-test/suite/gcol/r/innodb_virtual_fk.result +++ b/mysql-test/suite/gcol/r/innodb_virtual_fk.result @@ -345,7 +345,9 @@ FOREIGN KEY(fld1) REFERENCES t1(fld1) ON UPDATE CASCADE); INSERT INTO t1 VALUES(1), (2); INSERT INTO t2 VALUES(1, DEFAULT), (2, default); -UPDATE t1 SET fld1= 0 WHERE fld1= 2; +UPDATE IGNORE t1 SET fld1= 0 WHERE fld1= 2; +Warnings: +Warning 1365 Division by 0 SELECT fld2 FROM t2; fld2 NULL diff --git a/mysql-test/suite/gcol/t/innodb_virtual_fk.test b/mysql-test/suite/gcol/t/innodb_virtual_fk.test index bd8f3664839..78b2159e020 100644 --- a/mysql-test/suite/gcol/t/innodb_virtual_fk.test +++ b/mysql-test/suite/gcol/t/innodb_virtual_fk.test @@ -291,7 +291,7 @@ CREATE TABLE t2(fld1 INT NOT NULL, INSERT INTO t1 VALUES(1), (2); INSERT INTO t2 VALUES(1, DEFAULT), (2, default); #--error ER_DIVISION_BY_ZERO -UPDATE t1 SET fld1= 0 WHERE fld1= 2; +UPDATE IGNORE t1 SET fld1= 0 WHERE fld1= 2; SELECT fld2 FROM t2; DROP TABLE t2, t1; diff --git a/mysql-test/suite/heap/heap.result b/mysql-test/suite/heap/heap.result index 4b88eed4bfc..9e97d5a17fb 100644 --- a/mysql-test/suite/heap/heap.result +++ b/mysql-test/suite/heap/heap.result @@ -299,6 +299,7 @@ t1 CREATE TABLE `t1` ( `c` varchar(10) DEFAULT NULL, `t` varchar(50) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify t varchar(10); Warnings: Warning 1265 Data truncated for column 't' at row 2 diff --git a/mysql-test/suite/heap/heap.test b/mysql-test/suite/heap/heap.test index c839cc48884..ea07d020e4d 100644 --- a/mysql-test/suite/heap/heap.test +++ b/mysql-test/suite/heap/heap.test @@ -224,6 +224,7 @@ alter table t1 modify c varchar(10); show create table t1; alter table t1 modify v char(10); show create table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify t varchar(10); show create table t1; select concat('*',v,'*',c,'*',t,'*') from t1; diff --git a/mysql-test/suite/innodb/r/innodb-autoinc.result b/mysql-test/suite/innodb/r/innodb-autoinc.result index 52c5bb6157b..e276303557e 100644 --- a/mysql-test/suite/innodb/r/innodb-autoinc.result +++ b/mysql-test/suite/innodb/r/innodb-autoinc.result @@ -323,7 +323,7 @@ DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; -INSERT INTO t1 VALUES(-1); +INSERT IGNORE INTO t1 VALUES(-1); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 SELECT * FROM t1; @@ -334,7 +334,7 @@ SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 -INSERT INTO t1 VALUES (-2); +INSERT IGNORE INTO t1 VALUES (-2); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t1 VALUES (NULL); @@ -378,7 +378,7 @@ DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; -INSERT INTO t1 VALUES(-1); +INSERT IGNORE INTO t1 VALUES(-1); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 SELECT * FROM t1; @@ -389,7 +389,7 @@ SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value auto_increment_increment 100 auto_increment_offset 10 -INSERT INTO t1 VALUES (-2),(NULL),(2),(NULL); +INSERT IGNORE INTO t1 VALUES (-2),(NULL),(2),(NULL); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t1 VALUES (250),(NULL); @@ -860,6 +860,7 @@ Note 1051 Unknown table 'test.t1' DROP TABLE IF EXISTS t2; Warnings: Note 1051 Unknown table 'test.t2' +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1( c1 INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB; @@ -873,6 +874,7 @@ INSERT INTO t2 SELECT NULL FROM t1; ERROR 22003: Out of range value for column 'c1' at row 1 DROP TABLE t1; DROP TABLE t2; +SET sql_mode = DEFAULT; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=1; SHOW VARIABLES LIKE "auto_inc%"; Variable_name Value @@ -899,10 +901,10 @@ c1 c2 DROP TABLE t1; CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t1 VALUES (-127, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-127, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t1 VALUES (NULL, NULL); @@ -941,10 +943,10 @@ c1 c2 DROP TABLE t1; CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t1 VALUES (-32757, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-32757, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t1 VALUES (NULL, NULL); @@ -983,10 +985,10 @@ c1 c2 DROP TABLE t1; CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t1 VALUES (-8388607, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-8388607, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t1 VALUES (NULL, NULL); @@ -1025,10 +1027,10 @@ c1 c2 DROP TABLE t1; CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t1 VALUES (-2147483647, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-2147483647, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t1 VALUES (NULL, NULL); @@ -1067,10 +1069,10 @@ c1 c2 DROP TABLE t1; CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 -INSERT INTO t1 VALUES (-9223372036854775807, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-9223372036854775807, 'innodb'); Warnings: Warning 1264 Out of range value for column 'c1' at row 1 INSERT INTO t1 VALUES (NULL, NULL); @@ -1298,6 +1300,7 @@ t1 CREATE TABLE `t1` ( SELECT * FROM t1; c1 c2 2147483648 a +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CHANGE c1 c1 INT default 0; Warnings: Warning 1264 Out of range value for column 'c1' at row 1 diff --git a/mysql-test/suite/innodb/r/innodb-update-insert.result b/mysql-test/suite/innodb/r/innodb-update-insert.result index 333618ff7be..6265adb6e21 100644 --- a/mysql-test/suite/innodb/r/innodb-update-insert.result +++ b/mysql-test/suite/innodb/r/innodb-update-insert.result @@ -25,6 +25,7 @@ drop table t1; # create table t1 (f1 char(1), f2 longblob, f3 blob, primary key(f1)) charset=utf8 engine=innodb; +set statement sql_mode = '' for replace into t1 set f1=0xa3; Warnings: Warning 1366 Incorrect string value: '\xA3' for column 'f1' at row 1 @@ -34,7 +35,7 @@ f1 update t1 set f1=0x6a; update t1 set f3=repeat(0xb1,8103); update t1 set f1=0x4a; -update t1 set f1=0x82; +update ignore t1 set f1=0x82; Warnings: Warning 1366 Incorrect string value: '\x82' for column 'f1' at row 1 select f1 from t1; diff --git a/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result b/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result index 5cd4a0c93e4..afd0eca236e 100644 --- a/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result +++ b/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result @@ -426,7 +426,7 @@ t1 CREATE TABLE `t1` ( DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; -INSERT INTO test_wl5522.t1 VALUES +INSERT IGNORE INTO test_wl5522.t1 VALUES (100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200)); Warnings: Warning 1265 Data truncated for column 'c2' at row 1 diff --git a/mysql-test/suite/innodb/r/innodb-wl5522-debug.result b/mysql-test/suite/innodb/r/innodb-wl5522-debug.result index 698950e0d1d..765a57b89d1 100644 --- a/mysql-test/suite/innodb/r/innodb-wl5522-debug.result +++ b/mysql-test/suite/innodb/r/innodb-wl5522-debug.result @@ -811,7 +811,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; -INSERT INTO test_wl5522.t1 VALUES +INSERT IGNORE INTO test_wl5522.t1 VALUES (100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200)); Warnings: Warning 1265 Data truncated for column 'c2' at row 1 diff --git a/mysql-test/suite/innodb/r/innodb.result b/mysql-test/suite/innodb/r/innodb.result index c142042fd5a..1b62854efef 100644 --- a/mysql-test/suite/innodb/r/innodb.result +++ b/mysql-test/suite/innodb/r/innodb.result @@ -1398,7 +1398,7 @@ CREATE TABLE t1 (col1 int(1))ENGINE=InnoDB; CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP,INDEX stamp_idx (stamp))ENGINE=InnoDB; insert into t1 values (1),(2),(3); -insert into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 ),(5,20020204230000); +insert ignore into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 ),(5,20020204230000); Warnings: Warning 1265 Data truncated for column 'stamp' at row 3 SELECT col1 FROM t1 UNION SELECT col1 FROM t2 WHERE stamp < diff --git a/mysql-test/suite/innodb/r/innodb_bug53592.result b/mysql-test/suite/innodb/r/innodb_bug53592.result index ae4773de13a..8befcbd48cd 100644 --- a/mysql-test/suite/innodb/r/innodb_bug53592.result +++ b/mysql-test/suite/innodb/r/innodb_bug53592.result @@ -4,6 +4,7 @@ alter table bug53592 add column b text charset utf8; alter table bug53592 add column c blob not null; create index bug53592_b on bug53592(b(81)); create unique index bug53592_c on bug53592(c(1)); +set statement sql_mode = '' for replace into bug53592 values (),(); Warnings: Warning 1364 Field 'c' doesn't have a default value @@ -17,6 +18,7 @@ alter table bug53592 add column b text charset utf8; alter table bug53592 add column c blob not null; create index bug53592_b on bug53592(b(81)); create unique index bug53592_c on bug53592(c(1)); +set statement sql_mode = '' for replace into bug53592 values (),(); Warnings: Warning 1364 Field 'c' doesn't have a default value diff --git a/mysql-test/suite/innodb/r/innodb_ctype_ldml.result b/mysql-test/suite/innodb/r/innodb_ctype_ldml.result index 12a234a1bde..1f3b271941d 100644 --- a/mysql-test/suite/innodb/r/innodb_ctype_ldml.result +++ b/mysql-test/suite/innodb/r/innodb_ctype_ldml.result @@ -101,7 +101,7 @@ DROP TABLE t1; # Bug#43827 Server closes connections and restarts # CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_test_ci); -INSERT INTO t1 SELECT REPEAT('a',11); +INSERT IGNORE INTO t1 SELECT REPEAT('a',11); Warnings: Warning 1265 Data truncated for column 'c1' at row 1 DROP TABLE t1; diff --git a/mysql-test/suite/innodb/r/innodb_lock_wait_timeout_1.result b/mysql-test/suite/innodb/r/innodb_lock_wait_timeout_1.result index 3a17d4a273b..d43da0cb7b7 100644 --- a/mysql-test/suite/innodb/r/innodb_lock_wait_timeout_1.result +++ b/mysql-test/suite/innodb/r/innodb_lock_wait_timeout_1.result @@ -18,7 +18,7 @@ connection addconroot; BEGIN; SELECT b FROM t2 WHERE b=7 FOR UPDATE; ERROR HY000: Lock wait timeout exceeded; try restarting transaction -INSERT INTO t1 (a) VALUES ((SELECT a FROM t2 WHERE b=7)); +INSERT IGNORE INTO t1 (a) VALUES ((SELECT a FROM t2 WHERE b=7)); ERROR HY000: Lock wait timeout exceeded; try restarting transaction UPDATE t1 SET a='7000000' WHERE a=(SELECT a FROM t2 WHERE b=7); ERROR HY000: Lock wait timeout exceeded; try restarting transaction diff --git a/mysql-test/suite/innodb/r/innodb_mysql.result b/mysql-test/suite/innodb/r/innodb_mysql.result index 72e8c30f96f..8bbe562e0f6 100644 --- a/mysql-test/suite/innodb/r/innodb_mysql.result +++ b/mysql-test/suite/innodb/r/innodb_mysql.result @@ -581,14 +581,384 @@ INSERT INTO t1(stat_id,acct_id) VALUES INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; -INSERT INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +Warnings: +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 +Warning 1365 Division by 0 UPDATE t1 SET acct_id=785 WHERE MOD(stat_id,2)=0 AND MOD(id,stat_id)=MOD(acct_id,stat_id); OPTIMIZE TABLE t1; @@ -1174,6 +1544,7 @@ DROP PROCEDURE p1; DROP TABLE t1; create table t1(a text) engine=innodb default charset=utf8; insert into t1 values('aaa'); +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for alter table t1 add index(a(1024)); Warnings: Warning 1071 Specified key was too long; max key length is 767 bytes @@ -1764,6 +2135,7 @@ t2 CREATE TABLE `t2` ( DROP TABLE t2; DROP TABLE t1; create table t1 (a int auto_increment primary key) engine=innodb; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for alter table t1 order by a; Warnings: Warning 1105 ORDER BY ignored as there is a user-defined clustered index in the table 't1' diff --git a/mysql-test/suite/innodb/r/temp_table_savepoint.result b/mysql-test/suite/innodb/r/temp_table_savepoint.result index d61eef404da..c2bf70ca9ee 100644 --- a/mysql-test/suite/innodb/r/temp_table_savepoint.result +++ b/mysql-test/suite/innodb/r/temp_table_savepoint.result @@ -66,11 +66,11 @@ insert into t2 values(n,n,repeat(concat(' tc3_',n),30), repeat(concat(' tc4_',n),8),repeat(concat(' tc_',n),8), repeat(concat(' tc6_',n),8),repeat(concat(' tc7_',n),8), now(),(100.55+n)); -insert into t4 values(n,n,repeat(concat(' tc3_',n),30), +insert ignore into t4 values(n,n,repeat(concat(' tc3_',n),30), repeat(concat(' tc4_',n),800),repeat(concat(' tc_',n),800), repeat(concat(' tc6_',n),800),repeat(concat(' tc7_',n),800), now(),(100.55+n)); -insert into t5 values(n,n,repeat(concat(' tc3_',n),30), +insert ignore into t5 values(n,n,repeat(concat(' tc3_',n),30), repeat(concat(' tc4_',n),800),repeat(concat(' tc_',n),800), repeat(concat(' tc6_',n),800),repeat(concat(' tc7_',n),800), now(),(100.55+n)); @@ -98,11 +98,11 @@ insert into t2 values(n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_lo repeat(concat(' tc4_',n+inner_loop),8),repeat(concat(' tc_',n+inner_loop),8), repeat(concat(' tc6_',n+inner_loop),2),repeat(concat(' tc7_',n+inner_loop),2), now(),(100.55+n+inner_loop)); -insert into t4 values(n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), +insert ignore into t4 values(n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), repeat(concat(' tc4_',n+inner_loop),800),repeat(concat(' tc_',n+inner_loop),800), repeat(concat(' tc6_',n+inner_loop),245),repeat(concat(' tc7_',n+inner_loop),245), now(),(100.55+n+inner_loop)); -insert into t5 values(n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), +insert ignore into t5 values(n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), repeat(concat(' tc4_',n+inner_loop),800),repeat(concat(' tc_',n+inner_loop),800), repeat(concat(' tc6_',n+inner_loop),245),repeat(concat(' tc7_',n+inner_loop),245), now(),(100.55+n+inner_loop)); @@ -123,11 +123,11 @@ insert into t2 values(300+n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inne repeat(concat(' tc4_',n+inner_loop),8),repeat(concat(' tc_',n+inner_loop),8), repeat(concat(' tc6_',n+inner_loop),2),repeat(concat(' tc7_',n+inner_loop),2), now(),(100.55+n+inner_loop)); -insert into t4 values(300+n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), +insert ignore into t4 values(300+n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), repeat(concat(' tc4_',n+inner_loop),800),repeat(concat(' tc_',n+inner_loop),800), repeat(concat(' tc6_',n+inner_loop),245),repeat(concat(' tc7_',n+inner_loop),245), now(),(100.55+n+inner_loop)); -insert into t5 values(300+n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), +insert ignore into t5 values(300+n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), repeat(concat(' tc4_',n+inner_loop),800),repeat(concat(' tc_',n+inner_loop),800), repeat(concat(' tc6_',n+inner_loop),245),repeat(concat(' tc7_',n+inner_loop),245), now(),(100.55+n+inner_loop)); diff --git a/mysql-test/suite/innodb/t/innodb-autoinc.test b/mysql-test/suite/innodb/t/innodb-autoinc.test index dd4c4ae8603..9b526c7c433 100644 --- a/mysql-test/suite/innodb/t/innodb-autoinc.test +++ b/mysql-test/suite/innodb/t/innodb-autoinc.test @@ -217,11 +217,11 @@ SET @@INSERT_ID=1; SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; -INSERT INTO t1 VALUES(-1); +INSERT IGNORE INTO t1 VALUES(-1); SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; SHOW VARIABLES LIKE "auto_inc%"; -INSERT INTO t1 VALUES (-2); +INSERT IGNORE INTO t1 VALUES (-2); INSERT INTO t1 VALUES (NULL); INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (NULL); @@ -243,11 +243,11 @@ SET @@INSERT_ID=1; SHOW VARIABLES LIKE "auto_inc%"; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INT UNSIGNED AUTO_INCREMENT, PRIMARY KEY(c1)) ENGINE=InnoDB; -INSERT INTO t1 VALUES(-1); +INSERT IGNORE INTO t1 VALUES(-1); SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=100, @@SESSION.AUTO_INCREMENT_OFFSET=10; SHOW VARIABLES LIKE "auto_inc%"; -INSERT INTO t1 VALUES (-2),(NULL),(2),(NULL); +INSERT IGNORE INTO t1 VALUES (-2),(NULL),(2),(NULL); INSERT INTO t1 VALUES (250),(NULL); SELECT * FROM t1; INSERT INTO t1 VALUES (1000); @@ -429,6 +429,7 @@ DROP TABLE t2; DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2; +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1( c1 INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB; @@ -442,6 +443,7 @@ INSERT INTO t2 SELECT c1 FROM t1; INSERT INTO t2 SELECT NULL FROM t1; DROP TABLE t1; DROP TABLE t2; +SET sql_mode = DEFAULT; # If the user has specified negative values for an AUTOINC column then # InnoDB should ignore those values when setting the table's max value. @@ -459,8 +461,8 @@ DROP TABLE t1; CREATE TABLE t1 (c1 TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); -INSERT INTO t1 VALUES (-127, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-127, 'innodb'); INSERT INTO t1 VALUES (NULL, NULL); SHOW CREATE TABLE t1; SELECT * FROM t1; @@ -479,8 +481,8 @@ DROP TABLE t1; CREATE TABLE t1 (c1 SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); -INSERT INTO t1 VALUES (-32757, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-32757, 'innodb'); INSERT INTO t1 VALUES (NULL, NULL); SHOW CREATE TABLE t1; SELECT * FROM t1; @@ -499,8 +501,8 @@ DROP TABLE t1; CREATE TABLE t1 (c1 MEDIUMINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); -INSERT INTO t1 VALUES (-8388607, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-8388607, 'innodb'); INSERT INTO t1 VALUES (NULL, NULL); SHOW CREATE TABLE t1; SELECT * FROM t1; @@ -519,8 +521,8 @@ DROP TABLE t1; CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); -INSERT INTO t1 VALUES (-2147483647, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-2147483647, 'innodb'); INSERT INTO t1 VALUES (NULL, NULL); SHOW CREATE TABLE t1; SELECT * FROM t1; @@ -539,8 +541,8 @@ DROP TABLE t1; CREATE TABLE t1 (c1 BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=InnoDB; INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (-1, 'innodb'); -INSERT INTO t1 VALUES (-9223372036854775807, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-1, 'innodb'); +INSERT IGNORE INTO t1 VALUES (-9223372036854775807, 'innodb'); INSERT INTO t1 VALUES (NULL, NULL); SHOW CREATE TABLE t1; SELECT * FROM t1; @@ -660,6 +662,7 @@ CREATE TABLE t1 (c1 INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENG INSERT INTO t1 VALUES (2147483648, 'a'); SHOW CREATE TABLE t1; SELECT * FROM t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CHANGE c1 c1 INT default 0; SHOW CREATE TABLE t1; INSERT INTO t1(c2) VALUES('b'); diff --git a/mysql-test/suite/innodb/t/innodb-update-insert.test b/mysql-test/suite/innodb/t/innodb-update-insert.test index 95387e0564e..d7a706611c9 100644 --- a/mysql-test/suite/innodb/t/innodb-update-insert.test +++ b/mysql-test/suite/innodb/t/innodb-update-insert.test @@ -27,12 +27,13 @@ drop table t1; create table t1 (f1 char(1), f2 longblob, f3 blob, primary key(f1)) charset=utf8 engine=innodb; +set statement sql_mode = '' for replace into t1 set f1=0xa3; select f1 from t1; update t1 set f1=0x6a; update t1 set f3=repeat(0xb1,8103); update t1 set f1=0x4a; -update t1 set f1=0x82; +update ignore t1 set f1=0x82; select f1 from t1; drop table t1; diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test b/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test index 2e58b6e95e9..bd2b52faf3e 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test +++ b/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test @@ -436,7 +436,7 @@ DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; -INSERT INTO test_wl5522.t1 VALUES +INSERT IGNORE INTO test_wl5522.t1 VALUES (100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200)); INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test index 6a94c73e622..fd25016e065 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test +++ b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test @@ -1207,7 +1207,7 @@ DROP TABLE test_wl5522.t1; # a Btree that has several levels CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; -INSERT INTO test_wl5522.t1 VALUES +INSERT IGNORE INTO test_wl5522.t1 VALUES (100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200)); INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; @@ -1496,6 +1496,7 @@ call mtr.add_suppression("but tablespace with that id or name does not exist"); call mtr.add_suppression("Failed to find tablespace for table '\"test_wl5522\".\"t1\"' in the cache"); call mtr.add_suppression("Could not find a valid tablespace file for 'test_wl5522.*t1'"); call mtr.add_suppression("while reading index meta-data, expected to read 44 bytes but read only 0 bytes"); +call mtr.add_suppression("Index for table 't1' is corrupt; try to repair it"); --enable_query_log #cleanup diff --git a/mysql-test/suite/innodb/t/innodb.test b/mysql-test/suite/innodb/t/innodb.test index e5e4b45a861..c3908abcf34 100644 --- a/mysql-test/suite/innodb/t/innodb.test +++ b/mysql-test/suite/innodb/t/innodb.test @@ -1143,7 +1143,7 @@ CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP,INDEX stamp_idx (stamp))ENGINE=InnoDB; insert into t1 values (1),(2),(3); # Note that timestamp 3 is wrong -insert into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 ),(5,20020204230000); +insert ignore into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 ),(5,20020204230000); SELECT col1 FROM t1 UNION SELECT col1 FROM t2 WHERE stamp < '20020204120000' GROUP BY col1; drop table t1,t2; diff --git a/mysql-test/suite/innodb/t/innodb_bug53592.test b/mysql-test/suite/innodb/t/innodb_bug53592.test index 6c0f5a8422d..a809afeb5db 100644 --- a/mysql-test/suite/innodb/t/innodb_bug53592.test +++ b/mysql-test/suite/innodb/t/innodb_bug53592.test @@ -26,6 +26,7 @@ create unique index bug53592_c on bug53592(c(1)); # To get the correct index number, the code should go through index # translation table. Otherwise, it will get the wrong index # number and later trigger a server crash. +set statement sql_mode = '' for replace into bug53592 values (),(); check table bug53592; @@ -52,6 +53,7 @@ create unique index bug53592_c on bug53592(c(1)); # To get the correct index number, the code should go through index # translation table. Otherwise, it will get the wrong index # number and later trigger a server crash. +set statement sql_mode = '' for replace into bug53592 values (),(); check table bug53592; diff --git a/mysql-test/suite/innodb/t/innodb_ctype_ldml.test b/mysql-test/suite/innodb/t/innodb_ctype_ldml.test index 011271e4e22..26af717b15a 100644 --- a/mysql-test/suite/innodb/t/innodb_ctype_ldml.test +++ b/mysql-test/suite/innodb/t/innodb_ctype_ldml.test @@ -116,7 +116,7 @@ DROP TABLE t1; # Crash happened with a user-defined utf8 collation, # on attempt to insert a string longer than the column can store. CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_test_ci); -INSERT INTO t1 SELECT REPEAT('a',11); +INSERT IGNORE INTO t1 SELECT REPEAT('a',11); DROP TABLE t1; # diff --git a/mysql-test/suite/innodb/t/innodb_lock_wait_timeout_1.test b/mysql-test/suite/innodb/t/innodb_lock_wait_timeout_1.test index 3968321d7d5..23e8b40b010 100644 --- a/mysql-test/suite/innodb/t/innodb_lock_wait_timeout_1.test +++ b/mysql-test/suite/innodb/t/innodb_lock_wait_timeout_1.test @@ -28,7 +28,7 @@ BEGIN; SELECT b FROM t2 WHERE b=7 FOR UPDATE; --error ER_LOCK_WAIT_TIMEOUT -INSERT INTO t1 (a) VALUES ((SELECT a FROM t2 WHERE b=7)); +INSERT IGNORE INTO t1 (a) VALUES ((SELECT a FROM t2 WHERE b=7)); --error ER_LOCK_WAIT_TIMEOUT UPDATE t1 SET a='7000000' WHERE a=(SELECT a FROM t2 WHERE b=7); diff --git a/mysql-test/suite/innodb/t/temp_table_savepoint.test b/mysql-test/suite/innodb/t/temp_table_savepoint.test index 314ac148fca..c8a4bc870a7 100644 --- a/mysql-test/suite/innodb/t/temp_table_savepoint.test +++ b/mysql-test/suite/innodb/t/temp_table_savepoint.test @@ -97,11 +97,11 @@ create procedure populate_tables() repeat(concat(' tc4_',n),8),repeat(concat(' tc_',n),8), repeat(concat(' tc6_',n),8),repeat(concat(' tc7_',n),8), now(),(100.55+n)); - insert into t4 values(n,n,repeat(concat(' tc3_',n),30), + insert ignore into t4 values(n,n,repeat(concat(' tc3_',n),30), repeat(concat(' tc4_',n),800),repeat(concat(' tc_',n),800), repeat(concat(' tc6_',n),800),repeat(concat(' tc7_',n),800), now(),(100.55+n)); - insert into t5 values(n,n,repeat(concat(' tc3_',n),30), + insert ignore into t5 values(n,n,repeat(concat(' tc3_',n),30), repeat(concat(' tc4_',n),800),repeat(concat(' tc_',n),800), repeat(concat(' tc6_',n),800),repeat(concat(' tc7_',n),800), now(),(100.55+n)); @@ -132,11 +132,11 @@ create procedure populate_tables() repeat(concat(' tc4_',n+inner_loop),8),repeat(concat(' tc_',n+inner_loop),8), repeat(concat(' tc6_',n+inner_loop),2),repeat(concat(' tc7_',n+inner_loop),2), now(),(100.55+n+inner_loop)); - insert into t4 values(n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), + insert ignore into t4 values(n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), repeat(concat(' tc4_',n+inner_loop),800),repeat(concat(' tc_',n+inner_loop),800), repeat(concat(' tc6_',n+inner_loop),245),repeat(concat(' tc7_',n+inner_loop),245), now(),(100.55+n+inner_loop)); - insert into t5 values(n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), + insert ignore into t5 values(n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), repeat(concat(' tc4_',n+inner_loop),800),repeat(concat(' tc_',n+inner_loop),800), repeat(concat(' tc6_',n+inner_loop),245),repeat(concat(' tc7_',n+inner_loop),245), now(),(100.55+n+inner_loop)); @@ -161,11 +161,11 @@ create procedure populate_tables() repeat(concat(' tc4_',n+inner_loop),8),repeat(concat(' tc_',n+inner_loop),8), repeat(concat(' tc6_',n+inner_loop),2),repeat(concat(' tc7_',n+inner_loop),2), now(),(100.55+n+inner_loop)); - insert into t4 values(300+n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), + insert ignore into t4 values(300+n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), repeat(concat(' tc4_',n+inner_loop),800),repeat(concat(' tc_',n+inner_loop),800), repeat(concat(' tc6_',n+inner_loop),245),repeat(concat(' tc7_',n+inner_loop),245), now(),(100.55+n+inner_loop)); - insert into t5 values(300+n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), + insert ignore into t5 values(300+n+inner_loop,n+inner_loop,repeat(concat(' tc3_',n+inner_loop),30), repeat(concat(' tc4_',n+inner_loop),800),repeat(concat(' tc_',n+inner_loop),800), repeat(concat(' tc6_',n+inner_loop),245),repeat(concat(' tc7_',n+inner_loop),245), now(),(100.55+n+inner_loop)); diff --git a/mysql-test/suite/innodb_fts/r/create.result b/mysql-test/suite/innodb_fts/r/create.result index c537aa81efd..615f0368599 100644 --- a/mysql-test/suite/innodb_fts/r/create.result +++ b/mysql-test/suite/innodb_fts/r/create.result @@ -16,10 +16,10 @@ INSERT INTO t SET t=REPEAT(_utf8 0xefbc91,84); INSERT INTO t SET t=REPEAT('after',17); INSERT INTO t SET t=REPEAT(_utf8mb3 0xe794b2e9aaa8e69687, 15); # The data below is not 3-byte UTF-8, but 4-byte chars. -INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9695, 84); +INSERT IGNORE INTO t SET t=REPEAT(_utf8mb4 0xf09f9695, 84); Warnings: Warning 1366 Incorrect string value: '\xF0\x9F\x96\x95\xF0\x9F...' for column 't' at row 1 -INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9696, 85); +INSERT IGNORE INTO t SET t=REPEAT(_utf8mb4 0xf09f9696, 85); Warnings: Warning 1366 Incorrect string value: '\xF0\x9F\x96\x96\xF0\x9F...' for column 't' at row 1 SELECT COUNT(*) FROM t WHERE MATCH t AGAINST diff --git a/mysql-test/suite/innodb_fts/r/innodb_fts_stopword_charset.result b/mysql-test/suite/innodb_fts/r/innodb_fts_stopword_charset.result index 5f8d5e37680..adec37c930f 100644 --- a/mysql-test/suite/innodb_fts/r/innodb_fts_stopword_charset.result +++ b/mysql-test/suite/innodb_fts/r/innodb_fts_stopword_charset.result @@ -13,7 +13,7 @@ CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB; -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); @@ -42,7 +42,7 @@ CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci; -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); @@ -72,7 +72,7 @@ CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci; -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); @@ -233,7 +233,7 @@ CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB; -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); @@ -257,7 +257,7 @@ AGAINST ('love' IN NATURAL LANGUAGE MODE); id title # Shutdown and restart mysqld SET NAMES utf8; -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); SELECT * FROM articles WHERE MATCH (title) @@ -273,7 +273,7 @@ CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB; -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); @@ -298,7 +298,7 @@ id title DROP TABLE user_stopword; # Shutdown and restart mysqld SET NAMES utf8; -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); SELECT * FROM articles WHERE MATCH (title) diff --git a/mysql-test/suite/innodb_fts/t/create.test b/mysql-test/suite/innodb_fts/t/create.test index f0329602ed1..fe0273af750 100644 --- a/mysql-test/suite/innodb_fts/t/create.test +++ b/mysql-test/suite/innodb_fts/t/create.test @@ -26,8 +26,8 @@ INSERT INTO t SET t=REPEAT(_utf8 0xefbc91,84); INSERT INTO t SET t=REPEAT('after',17); # too long, will not be indexed INSERT INTO t SET t=REPEAT(_utf8mb3 0xe794b2e9aaa8e69687, 15); --echo # The data below is not 3-byte UTF-8, but 4-byte chars. -INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9695, 84); -INSERT INTO t SET t=REPEAT(_utf8mb4 0xf09f9696, 85); +INSERT IGNORE INTO t SET t=REPEAT(_utf8mb4 0xf09f9695, 84); +INSERT IGNORE INTO t SET t=REPEAT(_utf8mb4 0xf09f9696, 85); SELECT COUNT(*) FROM t WHERE MATCH t AGAINST (REPEAT(CONCAT(REPEAT(_utf8mb3 0xE0B987, 4), REPEAT(_utf8mb3 0xE0B989, 5)), 5)); SELECT COUNT(*) FROM t WHERE MATCH t AGAINST ('BeforeTheIndexCreation'); diff --git a/mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test b/mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test index cb49ca0e39f..4974783b9be 100644 --- a/mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test +++ b/mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test @@ -27,7 +27,7 @@ CREATE TABLE articles ( ) ENGINE=InnoDB; --disable_warnings -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); @@ -66,7 +66,7 @@ CREATE TABLE articles ( ) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci; --disable_warnings -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); @@ -106,7 +106,7 @@ CREATE TABLE articles ( ) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci; --disable_warnings -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); @@ -305,7 +305,7 @@ CREATE TABLE articles ( ) ENGINE=InnoDB; --disable_warnings -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); @@ -340,7 +340,7 @@ SET NAMES utf8; # Insert rows to check if it uses user stopword --disable_warnings -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); --enable_warnings @@ -363,7 +363,7 @@ CREATE TABLE articles ( ) ENGINE=InnoDB; --disable_warnings -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); @@ -401,7 +401,7 @@ SET NAMES utf8; # Insert rows to check if it uses user stopword --disable_warnings -INSERT INTO articles (title) VALUES +INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÃ’VE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('Lá¹’VE'); --enable_warnings diff --git a/mysql-test/suite/innodb_gis/r/1.result b/mysql-test/suite/innodb_gis/r/1.result index 94bd5f3b2e8..094ec0185f8 100644 --- a/mysql-test/suite/innodb_gis/r/1.result +++ b/mysql-test/suite/innodb_gis/r/1.result @@ -787,7 +787,7 @@ drop procedure if exists fn3; create function fn3 () returns point deterministic return ST_GeomFromText("point(1 1)"); show create function fn3; Function sql_mode Create Function character_set_client collation_connection Database Collation -fn3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point +fn3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point DETERMINISTIC return ST_GeomFromText("point(1 1)") latin1 latin1_swedish_ci latin1_swedish_ci select ST_astext(fn3()); diff --git a/mysql-test/suite/innodb_gis/r/alter_spatial_index.result b/mysql-test/suite/innodb_gis/r/alter_spatial_index.result index 78d5f79e311..b8bef9946ec 100644 --- a/mysql-test/suite/innodb_gis/r/alter_spatial_index.result +++ b/mysql-test/suite/innodb_gis/r/alter_spatial_index.result @@ -255,6 +255,7 @@ c1 ST_Astext(c2) ST_Astext(c4) INSERT INTO tab SELECT * FROM tab1; ALTER TABLE tab DROP PRIMARY KEY; ALTER TABLE tab DROP INDEX idx2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TEMPORARY TABLE temp_tab AS SELECT * FROM tab where c1 = c2; INSERT INTO temp_tab SELECT * FROM tab; CREATE SPATIAL INDEX idx2 ON temp_tab(c2); diff --git a/mysql-test/suite/innodb_gis/r/gis.result b/mysql-test/suite/innodb_gis/r/gis.result index fed7592f42b..c0a24a25feb 100644 --- a/mysql-test/suite/innodb_gis/r/gis.result +++ b/mysql-test/suite/innodb_gis/r/gis.result @@ -783,7 +783,7 @@ drop procedure if exists fn3; create function fn3 () returns point deterministic return ST_GeomFromText("point(1 1)"); show create function fn3; Function sql_mode Create Function character_set_client collation_connection Database Collation -fn3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point +fn3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `fn3`() RETURNS point DETERMINISTIC return ST_GeomFromText("point(1 1)") latin1 latin1_swedish_ci latin1_swedish_ci select ST_astext(fn3()); diff --git a/mysql-test/suite/innodb_gis/t/alter_spatial_index.test b/mysql-test/suite/innodb_gis/t/alter_spatial_index.test index efd6cb6c867..80ecf95bef9 100644 --- a/mysql-test/suite/innodb_gis/t/alter_spatial_index.test +++ b/mysql-test/suite/innodb_gis/t/alter_spatial_index.test @@ -303,7 +303,7 @@ ALTER TABLE tab DROP PRIMARY KEY; ALTER TABLE tab DROP INDEX idx2; # Check spatial index on temp tables - +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TEMPORARY TABLE temp_tab AS SELECT * FROM tab where c1 = c2; INSERT INTO temp_tab SELECT * FROM tab; diff --git a/mysql-test/suite/innodb_zip/r/16k.result b/mysql-test/suite/innodb_zip/r/16k.result index 9e8534417b7..bfef368ad15 100644 --- a/mysql-test/suite/innodb_zip/r/16k.result +++ b/mysql-test/suite/innodb_zip/r/16k.result @@ -395,7 +395,7 @@ Table Op Msg_type Msg_text test.t1 check status OK EXPLAIN SELECT * FROM t1 WHERE b LIKE 'adfd%'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL b NULL NULL NULL 15 Using where +1 SIMPLE t1 range b b 769 NULL 12 Using where DROP TABLE t1; # Test 8) Test creating a table that could lead to undo log overflow. CREATE TABLE t1(a blob,b blob,c blob,d blob,e blob,f blob,g blob, diff --git a/mysql-test/suite/innodb_zip/r/index_large_prefix.result b/mysql-test/suite/innodb_zip/r/index_large_prefix.result index f7591462803..4e57b27dec8 100644 --- a/mysql-test/suite/innodb_zip/r/index_large_prefix.result +++ b/mysql-test/suite/innodb_zip/r/index_large_prefix.result @@ -101,7 +101,7 @@ create index idx1 on worklog5743_1(a2(4000)); Got one of the listed errors show warnings; Level Code Message -Warning 1071 Specified key was too long; max key length is 767 bytes +Error 1071 Specified key was too long; max key length is 767 bytes Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs set global innodb_large_prefix=1; Warnings: @@ -110,7 +110,7 @@ create index idx2 on worklog5743_1(a2(4000)); Got one of the listed errors show warnings; Level Code Message -Warning 1071 Specified key was too long; max key length is 3072 bytes +Error 1071 Specified key was too long; max key length is 3072 bytes Error 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs create index idx3 on worklog5743_1(a2(436)); ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs @@ -419,7 +419,7 @@ create index idx4 on worklog5743(a1, a2); ERROR 42000: Specified key was too long; max key length is 3072 bytes show warnings; Level Code Message -Warning 1071 Specified key was too long; max key length is 3072 bytes +Error 1071 Specified key was too long; max key length is 3072 bytes Error 1071 Specified key was too long; max key length is 3072 bytes create index idx5 on worklog5743(a1, a5); ERROR 42000: Specified key was too long; max key length is 3072 bytes diff --git a/mysql-test/suite/innodb_zip/r/innodb_bug52745.result b/mysql-test/suite/innodb_zip/r/innodb_bug52745.result index 7ae3cc4bb71..1556c313994 100644 --- a/mysql-test/suite/innodb_zip/r/innodb_bug52745.result +++ b/mysql-test/suite/innodb_zip/r/innodb_bug52745.result @@ -1,3 +1,4 @@ +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE bug52745 ( a2 int(10) unsigned DEFAULT NULL, col37 time DEFAULT NULL, @@ -59,7 +60,7 @@ Warnings: Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead Note 1291 Column 'col82' has duplicated value '' in ENUM Note 1291 Column 'col82' has duplicated value '' in ENUM -INSERT INTO bug52745 SET +INSERT IGNORE INTO bug52745 SET col40='0000-00-00 00:00:00', col51=16547, col53='7711484', diff --git a/mysql-test/suite/innodb_zip/r/innodb_index_large_prefix.result b/mysql-test/suite/innodb_zip/r/innodb_index_large_prefix.result index b599716905d..20deee57d46 100644 --- a/mysql-test/suite/innodb_zip/r/innodb_index_large_prefix.result +++ b/mysql-test/suite/innodb_zip/r/innodb_index_large_prefix.result @@ -98,6 +98,7 @@ create table worklog5743_2(a1 int, a2 TEXT not null) KEY_BLOCK_SIZE=2; create table worklog5743_4(a1 int, a2 TEXT not null) KEY_BLOCK_SIZE=4; create table worklog5743_8(a1 int, a2 TEXT, a3 TEXT) KEY_BLOCK_SIZE=8; create table worklog5743_16(a1 int, a2 TEXT, a3 TEXT) KEY_BLOCK_SIZE=16; +set sql_mode=''; set global innodb_large_prefix=0; Warnings: Warning 131 Using innodb_large_prefix is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html @@ -280,6 +281,7 @@ Error 1071 Specified key was too long; max key length is 3072 bytes create index idx7 on worklog5743_16(a1, a2(2000), a3(1068)); show warnings; Level Code Message +set sql_mode=default; insert into worklog5743_1 values(9, repeat("a", 10000)); insert into worklog5743_2 values(9, repeat("a", 10000)); insert into worklog5743_4 values(9, repeat("a", 10000)); @@ -406,6 +408,7 @@ a4 varchar(3072), a5 varchar(3069), a6 varchar(3068)) ROW_FORMAT=DYNAMIC; +set sql_mode=''; create index idx1 on worklog5743(a2); Warnings: Warning 1071 Specified key was too long; max key length is 3072 bytes @@ -443,6 +446,7 @@ worklog5743 CREATE TABLE `worklog5743` ( KEY `idx3` (`a4`), KEY `idx6` (`a1`,`a6`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC +set sql_mode=default; insert into worklog5743 values(9, repeat("a", 20000), repeat("a", 3073), repeat("a", 3072), repeat("a", 3069), @@ -503,6 +507,7 @@ rollback; drop table worklog5743; ### Test 7 ### create table worklog5743(a TEXT not null) ROW_FORMAT=DYNAMIC; +set statement sql_mode = '' for create index idx1 on worklog5743(a(3073)); Warnings: Warning 1071 Specified key was too long; max key length is 3072 bytes diff --git a/mysql-test/suite/innodb_zip/t/innodb_bug52745.test b/mysql-test/suite/innodb_zip/t/innodb_bug52745.test index fe7bdbae42d..5882278ab9b 100644 --- a/mysql-test/suite/innodb_zip/t/innodb_bug52745.test +++ b/mysql-test/suite/innodb_zip/t/innodb_bug52745.test @@ -1,5 +1,6 @@ -- source include/have_innodb.inc +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE bug52745 ( a2 int(10) unsigned DEFAULT NULL, col37 time DEFAULT NULL, @@ -58,7 +59,7 @@ CREATE TABLE bug52745 ( col90 tinyblob ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; -INSERT INTO bug52745 SET +INSERT IGNORE INTO bug52745 SET col40='0000-00-00 00:00:00', col51=16547, col53='7711484', diff --git a/mysql-test/suite/innodb_zip/t/innodb_index_large_prefix.test b/mysql-test/suite/innodb_zip/t/innodb_index_large_prefix.test index 72890a933f2..d071e3833e9 100644 --- a/mysql-test/suite/innodb_zip/t/innodb_index_large_prefix.test +++ b/mysql-test/suite/innodb_zip/t/innodb_index_large_prefix.test @@ -136,6 +136,7 @@ create table worklog5743_16(a1 int, a2 TEXT, a3 TEXT) KEY_BLOCK_SIZE=16; # See page_zip_empty_size() and Bug #47495 for more detail. # Test edge cases for indexes using key_block_size=1 +set sql_mode=''; set global innodb_large_prefix=0; -- error ER_TOO_BIG_ROWSIZE create index idx1 on worklog5743_1(a2(4000)); @@ -238,6 +239,7 @@ create index idx6 on worklog5743_16(a1, a2(2000), a3(1069)); show warnings; create index idx7 on worklog5743_16(a1, a2(2000), a3(1068)); show warnings; +set sql_mode=default; # Insert a large record into each of these tables. insert into worklog5743_1 values(9, repeat("a", 10000)); @@ -321,6 +323,7 @@ create table worklog5743(a1 int, a5 varchar(3069), a6 varchar(3068)) ROW_FORMAT=DYNAMIC; +set sql_mode=''; create index idx1 on worklog5743(a2); create index idx2 on worklog5743(a3); create index idx3 on worklog5743(a4); @@ -334,6 +337,7 @@ show warnings; create index idx6 on worklog5743(a1, a6); show warnings; show create table worklog5743; +set sql_mode=default; insert into worklog5743 values(9, repeat("a", 20000), repeat("a", 3073), @@ -407,6 +411,7 @@ create table worklog5743(a TEXT not null) ROW_FORMAT=DYNAMIC; # Length exceeds maximum supported key length # It will be auto-truncated to 3072 +set statement sql_mode = '' for create index idx1 on worklog5743(a(3073)); create index idx2 on worklog5743(a(3072)); show create table worklog5743; diff --git a/mysql-test/suite/jp/r/jp_convert_ucs2.result b/mysql-test/suite/jp/r/jp_convert_ucs2.result index 842ddfa2ea7..aa97d30f745 100644 --- a/mysql-test/suite/jp/r/jp_convert_ucs2.result +++ b/mysql-test/suite/jp/r/jp_convert_ucs2.result @@ -153,13 +153,13 @@ SELECT ` íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ SELECT `£Ã£±`, CONVERT(`£Ã£±` using sjis) FROM `£Ô£³`; £Ã£± CONVERT(`£Ã£±` using sjis) -¡¦¢µ¢¶~¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ ¡¦??~??¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦???¡¦¡¦¡¦ -¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ ¡¦??????????????????? -°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç ???????????????????? -°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û ???????????????????? -°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï ???????????????????? -í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ ???????????????????? -íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ ???????????????????? +¡¦¢µ¢¶~¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ NULL +¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ NULL +°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç NULL +°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û NULL +°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï NULL +í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ NULL +íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ NULL Warnings: Warning 1977 Cannot convert 'ucs2' character 0x02DB to 'sjis' Warning 1977 Cannot convert 'ucs2' character 0x9EF8 to 'sjis' @@ -236,13 +236,13 @@ SELECT ` íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ SELECT `£Ã£±`, CONVERT(`£Ã£±` using sjis) FROM `£Ô£¶`; £Ã£± CONVERT(`£Ã£±` using sjis) -¡¦¢µ¢¶~¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ ¡¦??~??¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦???¡¦¡¦¡¦ -¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ ¡¦??????????????????? -°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç ???????????????????? -°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û ???????????????????? -°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï ???????????????????? -í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ ???????????????????? -íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ ???????????????????? +¡¦¢µ¢¶~¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ NULL +¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ NULL +°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç NULL +°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û NULL +°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï NULL +í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ NULL +íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ NULL Warnings: Warning 1977 Cannot convert 'ucs2' character 0x02DB to 'sjis' Warning 1977 Cannot convert 'ucs2' character 0x9EF8 to 'sjis' @@ -319,13 +319,13 @@ SELECT ` íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ SELECT `£Ã£±`, CONVERT(`£Ã£±` using sjis) FROM `£Ô£¹`; £Ã£± CONVERT(`£Ã£±` using sjis) -¡¦¢µ¢¶~¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ ¡¦??~??¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦???¡¦¡¦¡¦ -°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç ???????????????????? -°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û ???????????????????? -°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï ???????????????????? -¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ ¡¦??????????????????? -í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ ???????????????????? -íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ ???????????????????? +¡¦¢µ¢¶~¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ NULL +°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç NULL +°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û NULL +°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï NULL +¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ NULL +í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ NULL +íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ NULL Warnings: Warning 1977 Cannot convert 'ucs2' character 0x02DB to 'sjis' Warning 1977 Cannot convert 'ucs2' character 0x4E5A to 'sjis' diff --git a/mysql-test/suite/jp/r/jp_convert_ujis.result b/mysql-test/suite/jp/r/jp_convert_ujis.result index d47f6b4ef25..afbc985df64 100644 --- a/mysql-test/suite/jp/r/jp_convert_ujis.result +++ b/mysql-test/suite/jp/r/jp_convert_ujis.result @@ -353,37 +353,37 @@ SELECT ` ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ SELECT `£Ã£±`, CONVERT(`£Ã£±` using sjis) FROM `£Ô£³`; £Ã£± CONVERT(`£Ã£±` using sjis) -¢ð¢ñ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ??¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -§È§É§Ê§Ë§Ì§Í§Î¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ???????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -©È©É©Ê©Ë©Ì©Í©Î©Ï©Ð¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ?????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -ª´ªµª¶ª·ª¸¡¦ªºª»ª¼ª½ª¾ª¿ªÀªÁªÂªÃªÄªÅªÆªÇ ?????¡¦?????????????? -ªÈªÉªÊªËªÌªÍªÎªÏªÐªÑªÒªÓªÔªÕªÖª×ªØªÙªÚªÛ ???????????????????? -ªÜªÝªÞªßªàªáªâªãªäªåªæªçªèªéªêªëªìªíªîªï ???????????????????? -ªðªñªòªóªôªõªöª÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -«´«µ«¶«·«¸«¹«º«»¡¦«½«¾«¿«À«Á«Â«Ã¡¦«Å«Æ«Ç ????????¡¦???????¡¦??? -«È«É«Ê«Ë«Ì«Í«Î«Ï«Ð«Ñ«Ò«Ó«Ô«Õ«Ö«×«Ø«Ù«Ú«Û ???????????????????? -«Ü«Ý«Þ«ß«à«á«â«ã«ä«å«æ«ç«è«é«ê«ë«ì«í«î«ï ???????????????????? -«ð«ñ«ò«ó«ô«õ«ö«÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç ???????????????????? -°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û ???????????????????? -°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï ???????????????????? -°ð°ñ°ò°ó°ô°õ°ö°÷°ø°ù°ú°û°ü°ý°þ¡¦¡¦¡¦¡¦¡¦ ???????????????¡¦¡¦¡¦¡¦¡¦ -í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ ???????????????????? -íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ ???????????????????? -íÜíÝíÞíßíàíáíâí㡦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦¢µ¢¶¢·¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ ¡¦??~??¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦???¡¦¡¦¡¦ -¡¦¦ñ¦ò¦ó¦ô¦õ¦ö¦÷¦ø¦ù¦ú¦û¦ü¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦????????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦©¡©¢¡¦©¤¡¦©¦¡¦©¨©©¡¦©«©¬©­¡¦©¯©°¡¦¡¦¡¦ ¡¦??¡¦?¡¦?¡¦??¡¦???¡¦??¡¦¡¦¡¦ -¡¦ª¡ª¢ª£ª¤ª¥ª¦ª§ª¨ª©ªªª«ª¬ª­ª®ª¯ª°ª±ª²ª³ ¡¦??????????????????? -¡¦«¡«¢«£«¤«¥«¦«§«¨«©«ª«««¬«­«®«¯«°«±«²«³ ¡¦??????????????????? -¡¦°¡°¢°£°¤°¥°¦°§°¨°©°ª°«°¬°­°®°¯°°°±°²°³ ¡¦??????????????????? -¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ ¡¦??????????????????? -¡¦¡¦§ò§ó§ô§õ§ö§÷§ø§ù§ú§û§ü§ý§þ¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦?????????????¡¦¡¦¡¦¡¦¡¦ -¡¦¡¦¡¦¡¦¡¦¦á¦â¦ã¦ä¦å¡¦¦ç¡¦¦é¦ê¡¦¦ì¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦?????¡¦?¡¦??¡¦?¡¦¡¦¡¦ -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦©Á©Â©Ã©Ä©Å©Æ©Ç ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦??????? -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦§Â§Ã§Ä§Å§Æ§Ç ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦?????? -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢¯¢°¢±¢²¢³ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦????? -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢ë¢ì¢í¢î¢ï ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦????? +¢ð¢ñ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +§È§É§Ê§Ë§Ì§Í§Î¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +©È©É©Ê©Ë©Ì©Í©Î©Ï©Ð¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +ª´ªµª¶ª·ª¸¡¦ªºª»ª¼ª½ª¾ª¿ªÀªÁªÂªÃªÄªÅªÆªÇ NULL +ªÈªÉªÊªËªÌªÍªÎªÏªÐªÑªÒªÓªÔªÕªÖª×ªØªÙªÚªÛ NULL +ªÜªÝªÞªßªàªáªâªãªäªåªæªçªèªéªêªëªìªíªîªï NULL +ªðªñªòªóªôªõªöª÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +«´«µ«¶«·«¸«¹«º«»¡¦«½«¾«¿«À«Á«Â«Ã¡¦«Å«Æ«Ç NULL +«È«É«Ê«Ë«Ì«Í«Î«Ï«Ð«Ñ«Ò«Ó«Ô«Õ«Ö«×«Ø«Ù«Ú«Û NULL +«Ü«Ý«Þ«ß«à«á«â«ã«ä«å«æ«ç«è«é«ê«ë«ì«í«î«ï NULL +«ð«ñ«ò«ó«ô«õ«ö«÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç NULL +°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û NULL +°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï NULL +°ð°ñ°ò°ó°ô°õ°ö°÷°ø°ù°ú°û°ü°ý°þ¡¦¡¦¡¦¡¦¡¦ NULL +í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ NULL +íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ NULL +íÜíÝíÞíßíàíáíâí㡦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +¡¦¢µ¢¶¢·¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ NULL +¡¦¦ñ¦ò¦ó¦ô¦õ¦ö¦÷¦ø¦ù¦ú¦û¦ü¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +¡¦©¡©¢¡¦©¤¡¦©¦¡¦©¨©©¡¦©«©¬©­¡¦©¯©°¡¦¡¦¡¦ NULL +¡¦ª¡ª¢ª£ª¤ª¥ª¦ª§ª¨ª©ªªª«ª¬ª­ª®ª¯ª°ª±ª²ª³ NULL +¡¦«¡«¢«£«¤«¥«¦«§«¨«©«ª«««¬«­«®«¯«°«±«²«³ NULL +¡¦°¡°¢°£°¤°¥°¦°§°¨°©°ª°«°¬°­°®°¯°°°±°²°³ NULL +¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ NULL +¡¦¡¦§ò§ó§ô§õ§ö§÷§ø§ù§ú§û§ü§ý§þ¡¦¡¦¡¦¡¦¡¦ NULL +¡¦¡¦¡¦¡¦¡¦¦á¦â¦ã¦ä¦å¡¦¦ç¡¦¦é¦ê¡¦¦ì¡¦¡¦¡¦ NULL +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦©Á©Â©Ã©Ä©Å©Æ©Ç NULL +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦§Â§Ã§Ä§Å§Æ§Ç NULL +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢¯¢°¢±¢²¢³ NULL +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢ë¢ì¢í¢î¢ï NULL ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ @@ -751,37 +751,37 @@ SELECT ` ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ SELECT `£Ã£±`, CONVERT(`£Ã£±` using sjis) FROM `£Ô£¶`; £Ã£± CONVERT(`£Ã£±` using sjis) -¢ð¢ñ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ??¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -§È§É§Ê§Ë§Ì§Í§Î¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ???????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -©È©É©Ê©Ë©Ì©Í©Î©Ï©Ð¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ?????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -ª´ªµª¶ª·ª¸¡¦ªºª»ª¼ª½ª¾ª¿ªÀªÁªÂªÃªÄªÅªÆªÇ ?????¡¦?????????????? -ªÈªÉªÊªËªÌªÍªÎªÏªÐªÑªÒªÓªÔªÕªÖª×ªØªÙªÚªÛ ???????????????????? -ªÜªÝªÞªßªàªáªâªãªäªåªæªçªèªéªêªëªìªíªîªï ???????????????????? -ªðªñªòªóªôªõªöª÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -«´«µ«¶«·«¸«¹«º«»¡¦«½«¾«¿«À«Á«Â«Ã¡¦«Å«Æ«Ç ????????¡¦???????¡¦??? -«È«É«Ê«Ë«Ì«Í«Î«Ï«Ð«Ñ«Ò«Ó«Ô«Õ«Ö«×«Ø«Ù«Ú«Û ???????????????????? -«Ü«Ý«Þ«ß«à«á«â«ã«ä«å«æ«ç«è«é«ê«ë«ì«í«î«ï ???????????????????? -«ð«ñ«ò«ó«ô«õ«ö«÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç ???????????????????? -°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û ???????????????????? -°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï ???????????????????? -°ð°ñ°ò°ó°ô°õ°ö°÷°ø°ù°ú°û°ü°ý°þ¡¦¡¦¡¦¡¦¡¦ ???????????????¡¦¡¦¡¦¡¦¡¦ -í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ ???????????????????? -íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ ???????????????????? -íÜíÝíÞíßíàíáíâí㡦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦¢µ¢¶¢·¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ ¡¦??~??¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦???¡¦¡¦¡¦ -¡¦¦ñ¦ò¦ó¦ô¦õ¦ö¦÷¦ø¦ù¦ú¦û¦ü¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦????????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦©¡©¢¡¦©¤¡¦©¦¡¦©¨©©¡¦©«©¬©­¡¦©¯©°¡¦¡¦¡¦ ¡¦??¡¦?¡¦?¡¦??¡¦???¡¦??¡¦¡¦¡¦ -¡¦ª¡ª¢ª£ª¤ª¥ª¦ª§ª¨ª©ªªª«ª¬ª­ª®ª¯ª°ª±ª²ª³ ¡¦??????????????????? -¡¦«¡«¢«£«¤«¥«¦«§«¨«©«ª«««¬«­«®«¯«°«±«²«³ ¡¦??????????????????? -¡¦°¡°¢°£°¤°¥°¦°§°¨°©°ª°«°¬°­°®°¯°°°±°²°³ ¡¦??????????????????? -¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ ¡¦??????????????????? -¡¦¡¦§ò§ó§ô§õ§ö§÷§ø§ù§ú§û§ü§ý§þ¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦?????????????¡¦¡¦¡¦¡¦¡¦ -¡¦¡¦¡¦¡¦¡¦¦á¦â¦ã¦ä¦å¡¦¦ç¡¦¦é¦ê¡¦¦ì¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦?????¡¦?¡¦??¡¦?¡¦¡¦¡¦ -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦©Á©Â©Ã©Ä©Å©Æ©Ç ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦??????? -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦§Â§Ã§Ä§Å§Æ§Ç ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦?????? -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢¯¢°¢±¢²¢³ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦????? -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢ë¢ì¢í¢î¢ï ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦????? +¢ð¢ñ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +§È§É§Ê§Ë§Ì§Í§Î¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +©È©É©Ê©Ë©Ì©Í©Î©Ï©Ð¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +ª´ªµª¶ª·ª¸¡¦ªºª»ª¼ª½ª¾ª¿ªÀªÁªÂªÃªÄªÅªÆªÇ NULL +ªÈªÉªÊªËªÌªÍªÎªÏªÐªÑªÒªÓªÔªÕªÖª×ªØªÙªÚªÛ NULL +ªÜªÝªÞªßªàªáªâªãªäªåªæªçªèªéªêªëªìªíªîªï NULL +ªðªñªòªóªôªõªöª÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +«´«µ«¶«·«¸«¹«º«»¡¦«½«¾«¿«À«Á«Â«Ã¡¦«Å«Æ«Ç NULL +«È«É«Ê«Ë«Ì«Í«Î«Ï«Ð«Ñ«Ò«Ó«Ô«Õ«Ö«×«Ø«Ù«Ú«Û NULL +«Ü«Ý«Þ«ß«à«á«â«ã«ä«å«æ«ç«è«é«ê«ë«ì«í«î«ï NULL +«ð«ñ«ò«ó«ô«õ«ö«÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç NULL +°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û NULL +°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï NULL +°ð°ñ°ò°ó°ô°õ°ö°÷°ø°ù°ú°û°ü°ý°þ¡¦¡¦¡¦¡¦¡¦ NULL +í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ NULL +íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ NULL +íÜíÝíÞíßíàíáíâí㡦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +¡¦¢µ¢¶¢·¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ NULL +¡¦¦ñ¦ò¦ó¦ô¦õ¦ö¦÷¦ø¦ù¦ú¦û¦ü¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +¡¦©¡©¢¡¦©¤¡¦©¦¡¦©¨©©¡¦©«©¬©­¡¦©¯©°¡¦¡¦¡¦ NULL +¡¦ª¡ª¢ª£ª¤ª¥ª¦ª§ª¨ª©ªªª«ª¬ª­ª®ª¯ª°ª±ª²ª³ NULL +¡¦«¡«¢«£«¤«¥«¦«§«¨«©«ª«««¬«­«®«¯«°«±«²«³ NULL +¡¦°¡°¢°£°¤°¥°¦°§°¨°©°ª°«°¬°­°®°¯°°°±°²°³ NULL +¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ NULL +¡¦¡¦§ò§ó§ô§õ§ö§÷§ø§ù§ú§û§ü§ý§þ¡¦¡¦¡¦¡¦¡¦ NULL +¡¦¡¦¡¦¡¦¡¦¦á¦â¦ã¦ä¦å¡¦¦ç¡¦¦é¦ê¡¦¦ì¡¦¡¦¡¦ NULL +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦©Á©Â©Ã©Ä©Å©Æ©Ç NULL +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦§Â§Ã§Ä§Å§Æ§Ç NULL +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢¯¢°¢±¢²¢³ NULL +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢ë¢ì¢í¢î¢ï NULL ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ @@ -1149,45 +1149,45 @@ SELECT ` ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ SELECT `£Ã£±`, CONVERT(`£Ã£±` using sjis) FROM `£Ô£¹`; £Ã£± CONVERT(`£Ã£±` using sjis) -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢¯¢°¢±¢²¢³ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦????? -¡¦¢µ¢¶¢·¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ ¡¦??~??¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦???¡¦¡¦¡¦ +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢¯¢°¢±¢²¢³ NULL +¡¦¢µ¢¶¢·¢¸¢¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢Â¢Ã¢Ä¡¦¡¦¡¦ NULL ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢ë¢ì¢í¢î¢ï ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦????? -¢ð¢ñ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ??¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¢ë¢ì¢í¢î¢ï NULL +¢ð¢ñ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦¡¦¡¦¡¦¡¦¦á¦â¦ã¦ä¦å¡¦¦ç¡¦¦é¦ê¡¦¦ì¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦?????¡¦?¡¦??¡¦?¡¦¡¦¡¦ -¡¦¦ñ¦ò¦ó¦ô¦õ¦ö¦÷¦ø¦ù¦ú¦û¦ü¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦????????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦ +¡¦¡¦¡¦¡¦¡¦¦á¦â¦ã¦ä¦å¡¦¦ç¡¦¦é¦ê¡¦¦ì¡¦¡¦¡¦ NULL +¡¦¦ñ¦ò¦ó¦ô¦õ¦ö¦÷¦ø¦ù¦ú¦û¦ü¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦§Â§Ã§Ä§Å§Æ§Ç ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦?????? -§È§É§Ê§Ë§Ì§Í§Î¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ???????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦§Â§Ã§Ä§Å§Æ§Ç NULL +§È§É§Ê§Ë§Ì§Í§Î¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦¡¦§ò§ó§ô§õ§ö§÷§ø§ù§ú§û§ü§ý§þ¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦?????????????¡¦¡¦¡¦¡¦¡¦ -¡¦©¡©¢¡¦©¤¡¦©¦¡¦©¨©©¡¦©«©¬©­¡¦©¯©°¡¦¡¦¡¦ ¡¦??¡¦?¡¦?¡¦??¡¦???¡¦??¡¦¡¦¡¦ -¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦©Á©Â©Ã©Ä©Å©Æ©Ç ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦??????? -©È©É©Ê©Ë©Ì©Í©Î©Ï©Ð¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ?????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ +¡¦¡¦§ò§ó§ô§õ§ö§÷§ø§ù§ú§û§ü§ý§þ¡¦¡¦¡¦¡¦¡¦ NULL +¡¦©¡©¢¡¦©¤¡¦©¦¡¦©¨©©¡¦©«©¬©­¡¦©¯©°¡¦¡¦¡¦ NULL +¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦©Á©Â©Ã©Ä©Å©Æ©Ç NULL +©È©É©Ê©Ë©Ì©Í©Î©Ï©Ð¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦ª¡ª¢ª£ª¤ª¥ª¦ª§ª¨ª©ªªª«ª¬ª­ª®ª¯ª°ª±ª²ª³ ¡¦??????????????????? -ª´ªµª¶ª·ª¸¡¦ªºª»ª¼ª½ª¾ª¿ªÀªÁªÂªÃªÄªÅªÆªÇ ?????¡¦?????????????? -ªÈªÉªÊªËªÌªÍªÎªÏªÐªÑªÒªÓªÔªÕªÖª×ªØªÙªÚªÛ ???????????????????? -ªÜªÝªÞªßªàªáªâªãªäªåªæªçªèªéªêªëªìªíªîªï ???????????????????? -ªðªñªòªóªôªõªöª÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦«¡«¢«£«¤«¥«¦«§«¨«©«ª«««¬«­«®«¯«°«±«²«³ ¡¦??????????????????? -«´«µ«¶«·«¸«¹«º«»¡¦«½«¾«¿«À«Á«Â«Ã¡¦«Å«Æ«Ç ????????¡¦???????¡¦??? -«È«É«Ê«Ë«Ì«Í«Î«Ï«Ð«Ñ«Ò«Ó«Ô«Õ«Ö«×«Ø«Ù«Ú«Û ???????????????????? -«Ü«Ý«Þ«ß«à«á«â«ã«ä«å«æ«ç«è«é«ê«ë«ì«í«î«ï ???????????????????? -«ð«ñ«ò«ó«ô«õ«ö«÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ -¡¦°¡°¢°£°¤°¥°¦°§°¨°©°ª°«°¬°­°®°¯°°°±°²°³ ¡¦??????????????????? -°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç ???????????????????? -°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û ???????????????????? -°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï ???????????????????? -°ð°ñ°ò°ó°ô°õ°ö°÷°ø°ù°ú°û°ü°ý°þ¡¦¡¦¡¦¡¦¡¦ ???????????????¡¦¡¦¡¦¡¦¡¦ -¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ ¡¦??????????????????? -í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ ???????????????????? -íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ ???????????????????? -íÜíÝíÞíßíàíáíâí㡦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ????????¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ +¡¦ª¡ª¢ª£ª¤ª¥ª¦ª§ª¨ª©ªªª«ª¬ª­ª®ª¯ª°ª±ª²ª³ NULL +ª´ªµª¶ª·ª¸¡¦ªºª»ª¼ª½ª¾ª¿ªÀªÁªÂªÃªÄªÅªÆªÇ NULL +ªÈªÉªÊªËªÌªÍªÎªÏªÐªÑªÒªÓªÔªÕªÖª×ªØªÙªÚªÛ NULL +ªÜªÝªÞªßªàªáªâªãªäªåªæªçªèªéªêªëªìªíªîªï NULL +ªðªñªòªóªôªõªöª÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +¡¦«¡«¢«£«¤«¥«¦«§«¨«©«ª«««¬«­«®«¯«°«±«²«³ NULL +«´«µ«¶«·«¸«¹«º«»¡¦«½«¾«¿«À«Á«Â«Ã¡¦«Å«Æ«Ç NULL +«È«É«Ê«Ë«Ì«Í«Î«Ï«Ð«Ñ«Ò«Ó«Ô«Õ«Ö«×«Ø«Ù«Ú«Û NULL +«Ü«Ý«Þ«ß«à«á«â«ã«ä«å«æ«ç«è«é«ê«ë«ì«í«î«ï NULL +«ð«ñ«ò«ó«ô«õ«ö«÷¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL +¡¦°¡°¢°£°¤°¥°¦°§°¨°©°ª°«°¬°­°®°¯°°°±°²°³ NULL +°´°µ°¶°·°¸°¹°º°»°¼°½°¾°¿°À°Á°Â°Ã°Ä°Å°Æ°Ç NULL +°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û NULL +°Ü°Ý°Þ°ß°à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï NULL +°ð°ñ°ò°ó°ô°õ°ö°÷°ø°ù°ú°û°ü°ý°þ¡¦¡¦¡¦¡¦¡¦ NULL +¡¦í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³ NULL +í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇ NULL +íÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛ NULL +íÜíÝíÞíßíàíáíâí㡦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ NULL ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ ¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ Warnings: Warning 1977 Cannot convert 'ujis' character 0x8FA2AF to 'sjis' diff --git a/mysql-test/suite/jp/r/jp_convert_utf8.result b/mysql-test/suite/jp/r/jp_convert_utf8.result index e33edfb1c3f..89c8b582c40 100644 --- a/mysql-test/suite/jp/r/jp_convert_utf8.result +++ b/mysql-test/suite/jp/r/jp_convert_utf8.result @@ -111,7 +111,7 @@ SELECT `C1`, CONVERT(`C1` using ujis) FROM `ï¼´ï¼’`; ・弌ä¸ä¸•个丱丶丼丿乂乖乘亂亅豫亊舒å¼äºŽäºž ・弌ä¸ä¸•个丱丶丼丿乂乖乘亂亅豫亊舒å¼äºŽäºž ・蓮連錬呂魯櫓炉賂路露労å©å»Šå¼„æœ—æ¥¼æ¦”æµªæ¼ ãƒ»è“®é€£éŒ¬å‘‚é­¯æ«“ç‚‰è³‚è·¯éœ²åŠ´å©å»Šå¼„æœ—æ¥¼æ¦”æµªæ¼ ãƒ»éµéµžéµ¤éµ‘éµéµ™éµ²é¶‰é¶‡é¶«éµ¯éµºé¶šé¶¤é¶©é¶²é·„é·é¶» ・éµéµžéµ¤éµ‘éµéµ™éµ²é¶‰é¶‡é¶«éµ¯éµºé¶šé¶¤é¶©é¶²é·„é·é¶» -ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼?〜‖|…‥‘’ +ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ NULL 亟亠亢亰亳亶从ä»ä»„仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从ä»ä»„仆仂仗仞仭仟价伉佚估佛 ä½ä½—佇佶侈ä¾ä¾˜ä½»ä½©ä½°ä¾‘佯來侖儘俔俟俎俘俛 ä½ä½—佇佶侈ä¾ä¾˜ä½»ä½©ä½°ä¾‘佯來侖儘俔俟俎俘俛 俑俚ä¿ä¿¤ä¿¥å€šå€¨å€”倪倥倅伜俶倡倩倬俾俯們倆 俑俚ä¿ä¿¤ä¿¥å€šå€¨å€”倪倥倅伜俶倡倩倬俾俯們倆 @@ -249,7 +249,7 @@ SELECT `C1`, CONVERT(`C1` using sjis) FROM `ï¼´ï¼’`; ・弌ä¸ä¸•个丱丶丼丿乂乖乘亂亅豫亊舒å¼äºŽäºž ・弌ä¸ä¸•个丱丶丼丿乂乖乘亂亅豫亊舒å¼äºŽäºž ・蓮連錬呂魯櫓炉賂路露労å©å»Šå¼„æœ—æ¥¼æ¦”æµªæ¼ ãƒ»è“®é€£éŒ¬å‘‚é­¯æ«“ç‚‰è³‚è·¯éœ²åŠ´å©å»Šå¼„æœ—æ¥¼æ¦”æµªæ¼ ãƒ»éµéµžéµ¤éµ‘éµéµ™éµ²é¶‰é¶‡é¶«éµ¯éµºé¶šé¶¤é¶©é¶²é·„é·é¶» ・éµéµžéµ¤éµ‘éµéµ™éµ²é¶‰é¶‡é¶«éµ¯éµºé¶šé¶¤é¶©é¶²é·„é·é¶» -ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼?〜‖|…‥‘’ +ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ NULL 亟亠亢亰亳亶从ä»ä»„仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从ä»ä»„仆仂仗仞仭仟价伉佚估佛 ä½ä½—佇佶侈ä¾ä¾˜ä½»ä½©ä½°ä¾‘佯來侖儘俔俟俎俘俛 ä½ä½—佇佶侈ä¾ä¾˜ä½»ä½©ä½°ä¾‘佯來侖儘俔俟俎俘俛 俑俚ä¿ä¿¤ä¿¥å€šå€¨å€”倪倥倅伜俶倡倩倬俾俯們倆 俑俚ä¿ä¿¤ä¿¥å€šå€¨å€”倪倥倅伜俶倡倩倬俾俯們倆 @@ -287,7 +287,7 @@ SELECT `C1`, CONVERT(`C1` using ujis) FROM `T3`; ・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË ・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË ・áàäâăǎÄąåãćĉÄçċÄéèë ・áàäâăǎÄąåãćĉÄçċÄéèë ・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ ・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ -・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚?΄΅・・・・・・・・¡¦¿・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ NULL ・άέήίϊÎόςÏϋΰώ・・・・・・・ ・άέήίϊÎόςÏϋΰώ・・・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ @@ -359,28 +359,28 @@ SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T3`; 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ SELECT `C1`, CONVERT(`C1` using sjis) FROM `T3`; C1 CONVERT(`C1` using sjis) -êěėēęǵÄğ・ġĥíìïîÇ・īįĩ ????????・???????・??? -ÊĚĖĒĘ・ĜĞĢĠĤÃÃŒÃÃŽÇİĪĮĨ ?????・?????????????? -ĴĶĹĽĻŃŇŅÑÓÒÖÔǑÅŌÕŔŘŖ ???????????????????? -ĵķĺľļńňņñóòöôǒőÅõŕřŗ ???????????????????? -ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ???????????????????? -śŚşťţúùüûŭǔűūųůũǘǜǚ ???????????????????? -ǕŴßŶŹŽŻ・・・・・・・・・・・・ ????????・・・・・・・・・・・・ -ǖŵýÿŷźžż・・・・・・・・・・・・ ????????・・・・・・・・・・・・ -¤№・・・・・・・・・・・・・・・・・・ ??・・・・・・・・・・・・・・・・・・ -łŀʼnŋøœßŧþ・・・・・・・・・・・ ?????????・・・・・・・・・・・ -ЈЉЊЋЌЎÐ・・・・・・・・・・・・・ ???????・・・・・・・・・・・・・ -・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË ・??????????????????? -・áàäâăǎÄąåãćĉÄçċÄéèë ・??????????????????? -・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ ・??・?・?・??・???・??・・・ -・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・?????・・・・・・・・???・・・ -・άέήίϊÎόςÏϋΰώ・・・・・・・ ・????????????・・・・・・・ -・・ђѓєѕіїјљњћќўџ・・・・・ ・・?????????????・・・・・ -・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ ・・・・・?????・?・??・?・・・ -・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・??????? -・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・?????? -・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・????? -ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»Ë˜Ë‡Â¸Ë™Ë ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»????? +êěėēęǵÄğ・ġĥíìïîÇ・īįĩ NULL +ÊĚĖĒĘ・ĜĞĢĠĤÃÃŒÃÃŽÇİĪĮĨ NULL +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑÅŌÕŔŘŖ NULL +ĵķĺľļńňņñóòöôǒőÅõŕřŗ NULL +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ NULL +śŚşťţúùüûŭǔűūųůũǘǜǚ NULL +ǕŴßŶŹŽŻ・・・・・・・・・・・・ NULL +ǖŵýÿŷźžż・・・・・・・・・・・・ NULL +¤№・・・・・・・・・・・・・・・・・・ NULL +łŀʼnŋøœßŧþ・・・・・・・・・・・ NULL +ЈЉЊЋЌЎÐ・・・・・・・・・・・・・ NULL +・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË NULL +・áàäâăǎÄąåãćĉÄçċÄéèë NULL +・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ NULL +・˛˚~΄΅・・・・・・・・¡¦¿・・・ NULL +・άέήίϊÎόςÏϋΰώ・・・・・・・ NULL +・・ђѓєѕіїјљњћќўџ・・・・・ NULL +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ NULL +・・・・・・・・・・・・・æđðħıijĸ NULL +・・・・・・・・・・・・・・ЂЃЄЅІЇ NULL +・・・・・・・・・・・・・・・ºª©®™ NULL +ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»Ë˜Ë‡Â¸Ë™Ë NULL ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ @@ -390,15 +390,15 @@ SELECT `C1`, CONVERT(`C1` using sjis) FROM `T3`; ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ -・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀ä¹ä¹„乇乑 ・??????????????????? -・黸黿鼂鼃鼉é¼é¼é¼‘鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・??????????????????? -乚乜乣乨乩乴乵乹乿äºäº–亗äºäº¯äº¹ä»ƒä»ä»šä»›ä»  ???????????????????? -仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 ???????????????????? -伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 ???????????????????? -佟佣佪佬佮佱佷佸佹佺佽佾ä¾ä¾‚侄・・・・・ ???????????????・・・・・ -鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿é½é½ƒé½„齅齆齇齓齕齖 ???????????????????? -齗齘齚é½é½žé½¨é½©é½­é½®é½¯é½°é½±é½³é½µé½ºé½½é¾é¾é¾‘é¾’ ???????????????????? -龔龖龗龞龡龢龣龥・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀ä¹ä¹„乇乑 NULL +・黸黿鼂鼃鼉é¼é¼é¼‘鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 NULL +乚乜乣乨乩乴乵乹乿äºäº–亗äºäº¯äº¹ä»ƒä»ä»šä»›ä»  NULL +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 NULL +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 NULL +佟佣佪佬佮佱佷佸佹佺佽佾ä¾ä¾‚侄・・・・・ NULL +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿é½é½ƒé½„齅齆齇齓齕齖 NULL +齗齘齚é½é½žé½¨é½©é½­é½®é½¯é½°é½±é½³é½µé½ºé½½é¾é¾é¾‘é¾’ NULL +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ NULL Warnings: Warning 1977 Cannot convert 'utf8' character 0xC3AA to 'sjis' Warning 1977 Cannot convert 'utf8' character 0xC38A to 'sjis' @@ -515,7 +515,7 @@ SELECT `C1`, CONVERT(`C1` using ujis) FROM `T5`; ・弌ä¸ä¸•个丱丶丼丿乂乖乘亂亅豫亊舒å¼äºŽäºž ・弌ä¸ä¸•个丱丶丼丿乂乖乘亂亅豫亊舒å¼äºŽäºž ・蓮連錬呂魯櫓炉賂路露労å©å»Šå¼„æœ—æ¥¼æ¦”æµªæ¼ ãƒ»è“®é€£éŒ¬å‘‚é­¯æ«“ç‚‰è³‚è·¯éœ²åŠ´å©å»Šå¼„æœ—æ¥¼æ¦”æµªæ¼ ãƒ»éµéµžéµ¤éµ‘éµéµ™éµ²é¶‰é¶‡é¶«éµ¯éµºé¶šé¶¤é¶©é¶²é·„é·é¶» ・éµéµžéµ¤éµ‘éµéµ™éµ²é¶‰é¶‡é¶«éµ¯éµºé¶šé¶¤é¶©é¶²é·„é·é¶» -ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼?〜‖|…‥‘’ +ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ NULL 亟亠亢亰亳亶从ä»ä»„仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从ä»ä»„仆仂仗仞仭仟价伉佚估佛 ä½ä½—佇佶侈ä¾ä¾˜ä½»ä½©ä½°ä¾‘佯來侖儘俔俟俎俘俛 ä½ä½—佇佶侈ä¾ä¾˜ä½»ä½©ä½°ä¾‘佯來侖儘俔俟俎俘俛 俑俚ä¿ä¿¤ä¿¥å€šå€¨å€”倪倥倅伜俶倡倩倬俾俯們倆 俑俚ä¿ä¿¤ä¿¥å€šå€¨å€”倪倥倅伜俶倡倩倬俾俯們倆 @@ -653,7 +653,7 @@ SELECT `C1`, CONVERT(`C1` using sjis) FROM `T5`; ・弌ä¸ä¸•个丱丶丼丿乂乖乘亂亅豫亊舒å¼äºŽäºž ・弌ä¸ä¸•个丱丶丼丿乂乖乘亂亅豫亊舒å¼äºŽäºž ・蓮連錬呂魯櫓炉賂路露労å©å»Šå¼„æœ—æ¥¼æ¦”æµªæ¼ ãƒ»è“®é€£éŒ¬å‘‚é­¯æ«“ç‚‰è³‚è·¯éœ²åŠ´å©å»Šå¼„æœ—æ¥¼æ¦”æµªæ¼ ãƒ»éµéµžéµ¤éµ‘éµéµ™éµ²é¶‰é¶‡é¶«éµ¯éµºé¶šé¶¤é¶©é¶²é·„é·é¶» ・éµéµžéµ¤éµ‘éµéµ™éµ²é¶‰é¶‡é¶«éµ¯éµºé¶šé¶¤é¶©é¶²é·„é·é¶» -ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼?〜‖|…‥‘’ +ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ NULL 亟亠亢亰亳亶从ä»ä»„仆仂仗仞仭仟价伉佚估佛 亟亠亢亰亳亶从ä»ä»„仆仂仗仞仭仟价伉佚估佛 ä½ä½—佇佶侈ä¾ä¾˜ä½»ä½©ä½°ä¾‘佯來侖儘俔俟俎俘俛 ä½ä½—佇佶侈ä¾ä¾˜ä½»ä½©ä½°ä¾‘佯來侖儘俔俟俎俘俛 俑俚ä¿ä¿¤ä¿¥å€šå€¨å€”倪倥倅伜俶倡倩倬俾俯們倆 俑俚ä¿ä¿¤ä¿¥å€šå€¨å€”倪倥倅伜俶倡倩倬俾俯們倆 @@ -691,7 +691,7 @@ SELECT `C1`, CONVERT(`C1` using ujis) FROM `ï¼´ï¼–`; ・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË ・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË ・áàäâăǎÄąåãćĉÄçċÄéèë ・áàäâăǎÄąåãćĉÄçċÄéèë ・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ ・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ -・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚?΄΅・・・・・・・・¡¦¿・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ NULL ・άέήίϊÎόςÏϋΰώ・・・・・・・ ・άέήίϊÎόςÏϋΰώ・・・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ ・・ђѓєѕіїјљњћќўџ・・・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ ・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ @@ -763,28 +763,28 @@ SELECT `C1`, CONVERT(`C1` using ucs2) FROM `ï¼´ï¼–`; 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ 龔龖龗龞龡龢龣龥・・・・・・・・・・・・ SELECT `C1`, CONVERT(`C1` using sjis) FROM `ï¼´ï¼–`; C1 CONVERT(`C1` using sjis) -êěėēęǵÄğ・ġĥíìïîÇ・īįĩ ????????・???????・??? -ÊĚĖĒĘ・ĜĞĢĠĤÃÃŒÃÃŽÇİĪĮĨ ?????・?????????????? -ĴĶĹĽĻŃŇŅÑÓÒÖÔǑÅŌÕŔŘŖ ???????????????????? -ĵķĺľļńňņñóòöôǒőÅõŕřŗ ???????????????????? -ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ???????????????????? -śŚşťţúùüûŭǔűūųůũǘǜǚ ???????????????????? -ǕŴßŶŹŽŻ・・・・・・・・・・・・ ????????・・・・・・・・・・・・ -ǖŵýÿŷźžż・・・・・・・・・・・・ ????????・・・・・・・・・・・・ -¤№・・・・・・・・・・・・・・・・・・ ??・・・・・・・・・・・・・・・・・・ -łŀʼnŋøœßŧþ・・・・・・・・・・・ ?????????・・・・・・・・・・・ -ЈЉЊЋЌЎÐ・・・・・・・・・・・・・ ???????・・・・・・・・・・・・・ -・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË ・??????????????????? -・áàäâăǎÄąåãćĉÄçċÄéèë ・??????????????????? -・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ ・??・?・?・??・???・??・・・ -・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・?????・・・・・・・・???・・・ -・άέήίϊÎόςÏϋΰώ・・・・・・・ ・????????????・・・・・・・ -・・ђѓєѕіїјљњћќўџ・・・・・ ・・?????????????・・・・・ -・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ ・・・・・?????・?・??・?・・・ -・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・??????? -・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・?????? -・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・????? -ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»Ë˜Ë‡Â¸Ë™Ë ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»????? +êěėēęǵÄğ・ġĥíìïîÇ・īįĩ NULL +ÊĚĖĒĘ・ĜĞĢĠĤÃÃŒÃÃŽÇİĪĮĨ NULL +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑÅŌÕŔŘŖ NULL +ĵķĺľļńňņñóòöôǒőÅõŕřŗ NULL +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ NULL +śŚşťţúùüûŭǔűūųůũǘǜǚ NULL +ǕŴßŶŹŽŻ・・・・・・・・・・・・ NULL +ǖŵýÿŷźžż・・・・・・・・・・・・ NULL +¤№・・・・・・・・・・・・・・・・・・ NULL +łŀʼnŋøœßŧþ・・・・・・・・・・・ NULL +ЈЉЊЋЌЎÐ・・・・・・・・・・・・・ NULL +・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË NULL +・áàäâăǎÄąåãćĉÄçċÄéèë NULL +・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ NULL +・˛˚~΄΅・・・・・・・・¡¦¿・・・ NULL +・άέήίϊÎόςÏϋΰώ・・・・・・・ NULL +・・ђѓєѕіїјљњћќўџ・・・・・ NULL +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ NULL +・・・・・・・・・・・・・æđðħıijĸ NULL +・・・・・・・・・・・・・・ЂЃЄЅІЇ NULL +・・・・・・・・・・・・・・・ºª©®™ NULL +ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»Ë˜Ë‡Â¸Ë™Ë NULL ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ @@ -794,15 +794,15 @@ SELECT `C1`, CONVERT(`C1` using sjis) FROM `ï¼´ï¼–`; ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ -・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀ä¹ä¹„乇乑 ・??????????????????? -・黸黿鼂鼃鼉é¼é¼é¼‘鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・??????????????????? -乚乜乣乨乩乴乵乹乿äºäº–亗äºäº¯äº¹ä»ƒä»ä»šä»›ä»  ???????????????????? -仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 ???????????????????? -伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 ???????????????????? -佟佣佪佬佮佱佷佸佹佺佽佾ä¾ä¾‚侄・・・・・ ???????????????・・・・・ -鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿é½é½ƒé½„齅齆齇齓齕齖 ???????????????????? -齗齘齚é½é½žé½¨é½©é½­é½®é½¯é½°é½±é½³é½µé½ºé½½é¾é¾é¾‘é¾’ ???????????????????? -龔龖龗龞龡龢龣龥・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀ä¹ä¹„乇乑 NULL +・黸黿鼂鼃鼉é¼é¼é¼‘鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 NULL +乚乜乣乨乩乴乵乹乿äºäº–亗äºäº¯äº¹ä»ƒä»ä»šä»›ä»  NULL +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 NULL +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 NULL +佟佣佪佬佮佱佷佸佹佺佽佾ä¾ä¾‚侄・・・・・ NULL +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿é½é½ƒé½„齅齆齇齓齕齖 NULL +齗齘齚é½é½žé½¨é½©é½­é½®é½¯é½°é½±é½³é½µé½ºé½½é¾é¾é¾‘é¾’ NULL +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ NULL Warnings: Warning 1977 Cannot convert 'utf8' character 0xC3AA to 'sjis' Warning 1977 Cannot convert 'utf8' character 0xC38A to 'sjis' @@ -874,7 +874,7 @@ pqrstuvwxyz{|}~ pqrstuvwxyz{|}~ SELECT `C1`, CONVERT(`C1` using ujis) FROM `T8`; C1 CONVERT(`C1` using ujis)   ã€ã€‚,.・:;?ï¼ã‚›ã‚œÂ´ï½€Â¨ï¼¾ï¿£ï¼¿ãƒ½   ã€ã€‚,.・:;?ï¼ã‚›ã‚œÂ´ï½€Â¨ï¼¾ï¿£ï¼¿ãƒ½ -ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼?〜‖|…‥‘’ +ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ NULL “â€ï¼ˆï¼‰ã€”〕[]{ï½ã€ˆã€‰ã€Šã€‹ã€Œã€ã€Žã€ã€ã€‘ “â€ï¼ˆï¼‰ã€”〕[]{ï½ã€ˆã€‰ã€Šã€‹ã€Œã€ã€Žã€ã€ã€‘ +â€Â±Ã—÷ï¼â‰ ï¼œï¼žâ‰¦â‰§âˆžâˆ´â™‚♀°′″℃¥ +â€Â±Ã—÷ï¼â‰ ï¼œï¼žâ‰¦â‰§âˆžâˆ´â™‚♀°′″℃¥ $¢£%#&*@§☆★○â—◎◇・・・・・ $¢£%#&*@§☆★○â—◎◇・・・・・ @@ -1012,7 +1012,7 @@ SELECT `C1`, CONVERT(`C1` using ucs2) FROM `T8`; SELECT `C1`, CONVERT(`C1` using sjis) FROM `T8`; C1 CONVERT(`C1` using sjis)   ã€ã€‚,.・:;?ï¼ã‚›ã‚œÂ´ï½€Â¨ï¼¾ï¿£ï¼¿ãƒ½   ã€ã€‚,.・:;?ï¼ã‚›ã‚œÂ´ï½€Â¨ï¼¾ï¿£ï¼¿ãƒ½ -ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼?〜‖|…‥‘’ +ヾã‚ゞ〃ä»ã€…〆〇ー―â€ï¼ï¼¼ã€œâ€–|…‥‘’ NULL “â€ï¼ˆï¼‰ã€”〕[]{ï½ã€ˆã€‰ã€Šã€‹ã€Œã€ã€Žã€ã€ã€‘ “â€ï¼ˆï¼‰ã€”〕[]{ï½ã€ˆã€‰ã€Šã€‹ã€Œã€ã€Žã€ã€ã€‘ +â€Â±Ã—÷ï¼â‰ ï¼œï¼žâ‰¦â‰§âˆžâˆ´â™‚♀°′″℃¥ +â€Â±Ã—÷ï¼â‰ ï¼œï¼žâ‰¦â‰§âˆžâˆ´â™‚♀°′″℃¥ $¢£%#&*@§☆★○â—◎◇・・・・・ $¢£%#&*@§☆★○â—◎◇・・・・・ @@ -1082,7 +1082,7 @@ Warning 1977 Cannot convert 'utf8' character 0xEFBCBC to 'sjis' SELECT `C1`, CONVERT(`C1` using ujis) FROM `ï¼´ï¼™`; C1 CONVERT(`C1` using ujis) ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»Ë˜Ë‡Â¸Ë™Ë ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»Ë˜Ë‡Â¸Ë™Ë -・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・˛˚?΄΅・・・・・・・・¡¦¿・・・ +・˛˚~΄΅・・・・・・・・¡¦¿・・・ NULL ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・ºª©®™ ¤№・・・・・・・・・・・・・・・・・・ ¤№・・・・・・・・・・・・・・・・・・ @@ -1167,45 +1167,45 @@ SELECT `C1`, CONVERT(`C1` using ucs2) FROM `ï¼´ï¼™`; ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ SELECT `C1`, CONVERT(`C1` using sjis) FROM `ï¼´ï¼™`; C1 CONVERT(`C1` using sjis) -ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»Ë˜Ë‡Â¸Ë™Ë ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»????? -・˛˚~΄΅・・・・・・・・¡¦¿・・・ ・?????・・・・・・・・???・・・ +ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»ãƒ»Ë˜Ë‡Â¸Ë™Ë NULL +・˛˚~΄΅・・・・・・・・¡¦¿・・・ NULL ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ -・・・・・・・・・・・・・・・ºª©®™ ・・・・・・・・・・・・・・・????? -¤№・・・・・・・・・・・・・・・・・・ ??・・・・・・・・・・・・・・・・・・ +・・・・・・・・・・・・・・・ºª©®™ NULL +¤№・・・・・・・・・・・・・・・・・・ NULL ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ -・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ ・・・・・?????・?・??・?・・・ -・άέήίϊÎόςÏϋΰώ・・・・・・・ ・????????????・・・・・・・ +・・・・・ΆΈΉΊΪ・Ό・ΎΫ・Î・・・ NULL +・άέήίϊÎόςÏϋΰώ・・・・・・・ NULL ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ -・・・・・・・・・・・・・・ЂЃЄЅІЇ ・・・・・・・・・・・・・・?????? -ЈЉЊЋЌЎÐ・・・・・・・・・・・・・ ???????・・・・・・・・・・・・・ +・・・・・・・・・・・・・・ЂЃЄЅІЇ NULL +ЈЉЊЋЌЎÐ・・・・・・・・・・・・・ NULL ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ -・・ђѓєѕіїјљњћќўџ・・・・・ ・・?????????????・・・・・ -・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ ・??・?・?・??・???・??・・・ -・・・・・・・・・・・・・æđðħıijĸ ・・・・・・・・・・・・・??????? -łŀʼnŋøœßŧþ・・・・・・・・・・・ ?????????・・・・・・・・・・・ +・・ђѓєѕіїјљњћќўџ・・・・・ NULL +・ÆÄ・Ħ・IJ・ÅĿ・ŊØŒ・ŦÞ・・・ NULL +・・・・・・・・・・・・・æđðħıijĸ NULL +łŀʼnŋøœßŧþ・・・・・・・・・・・ NULL ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ -・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË ・??????????????????? -ÊĚĖĒĘ・ĜĞĢĠĤÃÃŒÃÃŽÇİĪĮĨ ?????・?????????????? -ĴĶĹĽĻŃŇŅÑÓÒÖÔǑÅŌÕŔŘŖ ???????????????????? -ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ ???????????????????? -ǕŴßŶŹŽŻ・・・・・・・・・・・・ ????????・・・・・・・・・・・・ -・áàäâăǎÄąåãćĉÄçċÄéèë ・??????????????????? -êěėēęǵÄğ・ġĥíìïîÇ・īįĩ ????????・???????・??? -ĵķĺľļńňņñóòöôǒőÅõŕřŗ ???????????????????? -śŚşťţúùüûŭǔűūųůũǘǜǚ ???????????????????? -ǖŵýÿŷźžż・・・・・・・・・・・・ ????????・・・・・・・・・・・・ -・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀ä¹ä¹„乇乑 ・??????????????????? -乚乜乣乨乩乴乵乹乿äºäº–亗äºäº¯äº¹ä»ƒä»ä»šä»›ä»  ???????????????????? -仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 ???????????????????? -伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 ???????????????????? -佟佣佪佬佮佱佷佸佹佺佽佾ä¾ä¾‚侄・・・・・ ???????????????・・・・・ -・黸黿鼂鼃鼉é¼é¼é¼‘鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 ・??????????????????? -鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿é½é½ƒé½„齅齆齇齓齕齖 ???????????????????? -齗齘齚é½é½žé½¨é½©é½­é½®é½¯é½°é½±é½³é½µé½ºé½½é¾é¾é¾‘é¾’ ???????????????????? -龔龖龗龞龡龢龣龥・・・・・・・・・・・・ ????????・・・・・・・・・・・・ +・ÃÀÄÂĂÇĀĄÅÃĆĈČÇĊĎÉÈË NULL +ÊĚĖĒĘ・ĜĞĢĠĤÃÃŒÃÃŽÇİĪĮĨ NULL +ĴĶĹĽĻŃŇŅÑÓÒÖÔǑÅŌÕŔŘŖ NULL +ŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙ NULL +ǕŴßŶŹŽŻ・・・・・・・・・・・・ NULL +・áàäâăǎÄąåãćĉÄçċÄéèë NULL +êěėēęǵÄğ・ġĥíìïîÇ・īįĩ NULL +ĵķĺľļńňņñóòöôǒőÅõŕřŗ NULL +śŚşťţúùüûŭǔűūųůũǘǜǚ NULL +ǖŵýÿŷźžż・・・・・・・・・・・・ NULL +・丂丄丅丌丒丟丣两丨丫丮丯丰丵乀ä¹ä¹„乇乑 NULL +乚乜乣乨乩乴乵乹乿äºäº–亗äºäº¯äº¹ä»ƒä»ä»šä»›ä»  NULL +仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众 NULL +伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘 NULL +佟佣佪佬佮佱佷佸佹佺佽佾ä¾ä¾‚侄・・・・・ NULL +・黸黿鼂鼃鼉é¼é¼é¼‘鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪 NULL +鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿é½é½ƒé½„齅齆齇齓齕齖 NULL +齗齘齚é½é½žé½¨é½©é½­é½®é½¯é½°é½±é½³é½µé½ºé½½é¾é¾é¾‘é¾’ NULL +龔龖龗龞龡龢龣龥・・・・・・・・・・・・ NULL ・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・ Warnings: Warning 1977 Cannot convert 'utf8' character 0xCB98 to 'sjis' diff --git a/mysql-test/suite/json/r/json_no_table.result b/mysql-test/suite/json/r/json_no_table.result index 9ea5e94c96e..7265c4a9f30 100644 --- a/mysql-test/suite/json/r/json_no_table.result +++ b/mysql-test/suite/json/r/json_no_table.result @@ -1220,7 +1220,9 @@ Warning 4042 Syntax error in JSON path in argument 2 to function 'json_keys' at error ER_INVALID_JSON_PATH SELECT JSON_KEYS('{"a":1}', '1010') IS NULL; JSON_KEYS('{"a":1}', '1010') IS NULL -0 +1 +Warnings: +Warning 4042 Syntax error in JSON path in argument 2 to function 'json_keys' at position 1 SELECT JSON_KEYS ( '{ "a" : "foo", "b" : [ true, { "c" : "123" } ] }' @@ -3181,7 +3183,9 @@ json_remove( '[ 1, { "a": true, "b": false, "c": null }, 5 ]', null ) is null error ER_INVALID_JSON_PATH select json_remove( '[ 1, { "a": true, "b": false, "c": null }, 5 ]', '$.' ) is null; json_remove( '[ 1, { "a": true, "b": false, "c": null }, 5 ]', '$.' ) is null -0 +1 +Warnings: +Warning 4041 Unexpected end of JSON path in argument 2 to function 'json_remove' error ER_INVALID_JSON_PATH prepare stmt1 from 'select json_remove( ''[ 1, { "a": true, "b": false, "c": null }, 5 ]'', ''$.'' ) is null'; # ---------------------------------------------------------------------- diff --git a/mysql-test/suite/maria/icp.result b/mysql-test/suite/maria/icp.result index 64ae4f5e057..0ebdd726b4e 100644 --- a/mysql-test/suite/maria/icp.result +++ b/mysql-test/suite/maria/icp.result @@ -474,7 +474,7 @@ CREATE TABLE t2 ( t2_int int PRIMARY KEY, t2_int2 INT ); -INSERT INTO t2 VALUES (); +INSERT IGNORE INTO t2 VALUES (); INSERT INTO t1 VALUES (); SELECT * FROM t1 AS t1a WHERE NOT EXISTS (SELECT * FROM t1 AS t1b @@ -568,7 +568,7 @@ COL1000 VARBINARY(179) NOT NULL, col1003 DATE DEFAULT NULL, KEY idx4267 (col1000, col1003) ); -INSERT INTO t1 VALUES (),(); +INSERT IGNORE INTO t1 VALUES (),(); Warnings: Warning 1364 Field 'col999' doesn't have a default value Warning 1364 Field 'COL1000' doesn't have a default value @@ -849,7 +849,7 @@ Handler_icp_attempts 2 Handler_icp_match 1 DROP TABLE t1; create table t1 (a int,b char(5),primary key (a), key (b(1))); -insert into t1 values ('a','b'); +insert ignore into t1 values ('a','b'); Warnings: Warning 1366 Incorrect integer value: 'a' for column 'a' at row 1 select 1 from t1 where a and b >= 'aa'; diff --git a/mysql-test/suite/maria/maria-gis-rtree-dynamic.result b/mysql-test/suite/maria/maria-gis-rtree-dynamic.result index 024b929646a..a0535026722 100644 --- a/mysql-test/suite/maria/maria-gis-rtree-dynamic.result +++ b/mysql-test/suite/maria/maria-gis-rtree-dynamic.result @@ -801,7 +801,7 @@ drop table t1; CREATE TABLE t1 (st varchar(100)); INSERT INTO t1 VALUES ("Fake string"); CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)) row_format=dynamic; -INSERT INTO t2 SELECT GeomFromText(st) FROM t1; +INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field drop table t1, t2; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) row_format=dynamic DEFAULT CHARSET=latin1; @@ -1463,7 +1463,7 @@ drop table t1; CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ) row_format=dynamic; INSERT INTO t1(foo) VALUES (NULL); ERROR 23000: Column 'foo' cannot be null -INSERT INTO t1() VALUES (); +INSERT IGNORE INTO t1() VALUES (); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field INSERT INTO t1(foo) VALUES (''); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field diff --git a/mysql-test/suite/maria/maria-gis-rtree-dynamic.test b/mysql-test/suite/maria/maria-gis-rtree-dynamic.test index 668d393d0b8..473f787db53 100644 --- a/mysql-test/suite/maria/maria-gis-rtree-dynamic.test +++ b/mysql-test/suite/maria/maria-gis-rtree-dynamic.test @@ -173,7 +173,7 @@ CREATE TABLE t1 (st varchar(100)); INSERT INTO t1 VALUES ("Fake string"); CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)) row_format=dynamic; --error 1416 -INSERT INTO t2 SELECT GeomFromText(st) FROM t1; +INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; drop table t1, t2; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) row_format=dynamic DEFAULT CHARSET=latin1; @@ -849,7 +849,7 @@ CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ) row_format=dynamic; --error 1048 INSERT INTO t1(foo) VALUES (NULL); --error 1416 -INSERT INTO t1() VALUES (); +INSERT IGNORE INTO t1() VALUES (); --error 1416 INSERT INTO t1(foo) VALUES (''); DROP TABLE t1; diff --git a/mysql-test/suite/maria/maria-gis-rtree-trans.result b/mysql-test/suite/maria/maria-gis-rtree-trans.result index 2b94bc0ffad..dbcbdeb1661 100644 --- a/mysql-test/suite/maria/maria-gis-rtree-trans.result +++ b/mysql-test/suite/maria/maria-gis-rtree-trans.result @@ -801,7 +801,7 @@ drop table t1; CREATE TABLE t1 (st varchar(100)); INSERT INTO t1 VALUES ("Fake string"); CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)) transactional=1 row_format=page; -INSERT INTO t2 SELECT GeomFromText(st) FROM t1; +INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field drop table t1, t2; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) transactional=1 row_format=page DEFAULT CHARSET=latin1; @@ -1454,7 +1454,7 @@ drop table t1; CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ) transactional=1 row_format=page; INSERT INTO t1(foo) VALUES (NULL); ERROR 23000: Column 'foo' cannot be null -INSERT INTO t1() VALUES (); +INSERT IGNORE INTO t1() VALUES (); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field INSERT INTO t1(foo) VALUES (''); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field diff --git a/mysql-test/suite/maria/maria-gis-rtree-trans.test b/mysql-test/suite/maria/maria-gis-rtree-trans.test index 73f129d8df9..84678b68693 100644 --- a/mysql-test/suite/maria/maria-gis-rtree-trans.test +++ b/mysql-test/suite/maria/maria-gis-rtree-trans.test @@ -176,7 +176,7 @@ CREATE TABLE t1 (st varchar(100)); INSERT INTO t1 VALUES ("Fake string"); CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)) transactional=1 row_format=page; --error 1416 -INSERT INTO t2 SELECT GeomFromText(st) FROM t1; +INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; drop table t1, t2; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) transactional=1 row_format=page DEFAULT CHARSET=latin1; @@ -849,7 +849,7 @@ CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ) transactional=1 row_ --error 1048 INSERT INTO t1(foo) VALUES (NULL); --error 1416 -INSERT INTO t1() VALUES (); +INSERT IGNORE INTO t1() VALUES (); --error 1416 INSERT INTO t1(foo) VALUES (''); DROP TABLE t1; diff --git a/mysql-test/suite/maria/maria-gis-rtree.result b/mysql-test/suite/maria/maria-gis-rtree.result index 826aee5fbc2..3ecdcc64928 100644 --- a/mysql-test/suite/maria/maria-gis-rtree.result +++ b/mysql-test/suite/maria/maria-gis-rtree.result @@ -801,7 +801,7 @@ drop table t1; CREATE TABLE t1 (st varchar(100)); INSERT INTO t1 VALUES ("Fake string"); CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)) transactional=0 row_format=page; -INSERT INTO t2 SELECT GeomFromText(st) FROM t1; +INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field drop table t1, t2; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) transactional=0 row_format=page DEFAULT CHARSET=latin1; @@ -1454,7 +1454,7 @@ drop table t1; CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ) transactional=0 row_format=page; INSERT INTO t1(foo) VALUES (NULL); ERROR 23000: Column 'foo' cannot be null -INSERT INTO t1() VALUES (); +INSERT IGNORE INTO t1() VALUES (); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field INSERT INTO t1(foo) VALUES (''); ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field diff --git a/mysql-test/suite/maria/maria-gis-rtree.test b/mysql-test/suite/maria/maria-gis-rtree.test index a3845adb7b9..5c68e570fca 100644 --- a/mysql-test/suite/maria/maria-gis-rtree.test +++ b/mysql-test/suite/maria/maria-gis-rtree.test @@ -173,7 +173,7 @@ CREATE TABLE t1 (st varchar(100)); INSERT INTO t1 VALUES ("Fake string"); CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)) transactional=0 row_format=page; --error 1416 -INSERT INTO t2 SELECT GeomFromText(st) FROM t1; +INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; drop table t1, t2; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) transactional=0 row_format=page DEFAULT CHARSET=latin1; @@ -846,7 +846,7 @@ CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ) transactional=0 row_ --error 1048 INSERT INTO t1(foo) VALUES (NULL); --error 1416 -INSERT INTO t1() VALUES (); +INSERT IGNORE INTO t1() VALUES (); --error 1416 INSERT INTO t1(foo) VALUES (''); DROP TABLE t1; diff --git a/mysql-test/suite/maria/maria-ucs2.result b/mysql-test/suite/maria/maria-ucs2.result index fab640f703a..7499b37279b 100644 --- a/mysql-test/suite/maria/maria-ucs2.result +++ b/mysql-test/suite/maria/maria-ucs2.result @@ -14,6 +14,7 @@ INSERT INTO t1 SELECT * FROM t1; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a VARCHAR(800) CHARSET `ucs2`; Warnings: Warning 1071 Specified key was too long; max key length is 1000 bytes diff --git a/mysql-test/suite/maria/maria-ucs2.test b/mysql-test/suite/maria/maria-ucs2.test index fed67d780e9..e4f8bc8dd27 100644 --- a/mysql-test/suite/maria/maria-ucs2.test +++ b/mysql-test/suite/maria/maria-ucs2.test @@ -26,6 +26,7 @@ INSERT INTO t1 SELECT * FROM t1; # check table is not needed to reproduce the problem, # but shows that by this time the table appears to be okay. CHECK TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a VARCHAR(800) CHARSET `ucs2`; CHECK TABLE t1; SHOW CREATE table t1; diff --git a/mysql-test/suite/maria/maria.result b/mysql-test/suite/maria/maria.result index a8c3f6d2d88..04b042059fb 100644 --- a/mysql-test/suite/maria/maria.result +++ b/mysql-test/suite/maria/maria.result @@ -1584,6 +1584,7 @@ create table t1 (v varchar(65530), key(v)); Warnings: Warning 1071 Specified key was too long; max key length is 1000 bytes drop table if exists t1; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for create table t1 (v varchar(65536)); Warnings: Note 1246 Converting column 'v' from VARCHAR to TEXT @@ -1593,6 +1594,7 @@ t1 CREATE TABLE `t1` ( `v` mediumtext DEFAULT NULL ) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 drop table t1; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for create table t1 (v varchar(65530) character set utf8); Warnings: Note 1246 Converting column 'v' from VARCHAR to TEXT @@ -2643,11 +2645,13 @@ alter table t1 partition by list (s1) (partition p1 values in (2)); ERROR HY000: Table has no partition for value 1 drop table t1; create table t1(a int primary key, b blob, c blob) engine=aria; +set sql_mode=''; insert into t1 values(1,repeat('a',100), repeat('b',657860)); Warnings: Warning 1265 Data truncated for column 'c' at row 1 insert into t1 values(1,repeat('a',100), repeat('b',657860)); ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +set sql_mode=default; check table t1; Table Op Msg_type Msg_text test.t1 check status OK diff --git a/mysql-test/suite/maria/maria.test b/mysql-test/suite/maria/maria.test index 68276fc507d..1b930a22c35 100644 --- a/mysql-test/suite/maria/maria.test +++ b/mysql-test/suite/maria/maria.test @@ -65,7 +65,7 @@ disable_query_log; SET SQL_WARNINGS=0; while ($1) { - eval insert into t1 (b) values(repeat(char(65+$1),65550-$1)); + eval insert ignore into t1 (b) values(repeat(char(65+$1),65550-$1)); dec $1; } SET SQL_WARNINGS=1; @@ -921,9 +921,11 @@ source include/varchar.inc; create table t1 (v varchar(65530), key(v)); drop table if exists t1; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for create table t1 (v varchar(65536)); show create table t1; drop table t1; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for create table t1 (v varchar(65530) character set utf8); show create table t1; drop table t1; @@ -1880,9 +1882,11 @@ drop table t1; # create table t1(a int primary key, b blob, c blob) engine=aria; +set sql_mode=''; insert into t1 values(1,repeat('a',100), repeat('b',657860)); --error ER_DUP_ENTRY insert into t1 values(1,repeat('a',100), repeat('b',657860)); +set sql_mode=default; check table t1; drop table t1; diff --git a/mysql-test/suite/maria/ps_maria.result b/mysql-test/suite/maria/ps_maria.result index 6ce10fc2bce..bc03e40a717 100644 --- a/mysql-test/suite/maria/ps_maria.result +++ b/mysql-test/suite/maria/ps_maria.result @@ -1303,9 +1303,11 @@ a b 2 two set @arg00=NULL; set @arg01=2; +set sql_mode = ''; execute stmt1 using @arg00, @arg01; Warnings: Warning 1048 Column 'a' cannot be null +set sql_mode = default; select a,b from t1 order by a; a b 0 two @@ -1784,7 +1786,7 @@ t5 CREATE TABLE `t5` ( `param03` double DEFAULT NULL, `const04` varchar(3) NOT NULL, `param04` longtext DEFAULT NULL, - `const05` varbinary(3) NOT NULL, + `const05` varbinary(3) DEFAULT NULL, `param05` longblob DEFAULT NULL, `const06` varchar(10) NOT NULL, `param06` longtext DEFAULT NULL, @@ -1814,7 +1816,7 @@ def test t5 t5 const03 const03 5 17 1 N 36865 31 63 def test t5 t5 param03 param03 5 23 1 Y 32768 31 63 def test t5 t5 const04 const04 253 3 3 N 4097 0 8 def test t5 t5 param04 param04 252 4294967295 3 Y 16 0 8 -def test t5 t5 const05 const05 253 3 3 N 4225 0 63 +def test t5 t5 const05 const05 253 3 3 Y 128 0 63 def test t5 t5 param05 param05 252 4294967295 3 Y 144 0 63 def test t5 t5 const06 const06 253 10 10 N 4097 0 8 def test t5 t5 param06 param06 252 4294967295 10 Y 16 0 8 @@ -2570,6 +2572,7 @@ prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 from t9 where c21 = 'O' "; prepare my_delete from "delete from t9 where c21 = 'O' "; set @arg00= 9223372036854775807 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2593,6 +2596,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= '9223372036854775807' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2616,6 +2620,7 @@ c10 9.223372036854776e18 c12 9999.9999 execute my_delete ; set @arg00= -9223372036854775808 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2639,6 +2644,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= '-9223372036854775808' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2662,6 +2668,7 @@ c10 -9.223372036854776e18 c12 -9999.9999 execute my_delete ; set @arg00= 1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2687,6 +2694,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= '1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2712,6 +2720,7 @@ c10 1.111111111111111e50 c12 9999.9999 execute my_delete ; set @arg00= -1.11111111111111111111e+50 ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2737,6 +2746,7 @@ c10 -1.111111111111111e50 c12 -9999.9999 execute my_delete ; set @arg00= '-1.11111111111111111111e+50' ; +set statement sql_mode = '' for execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: @@ -2763,6 +2773,7 @@ c12 -9999.9999 execute my_delete ; test_sequence -- insert into string columns -- +set sql_mode = ''; insert into t9 ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) values @@ -2921,6 +2932,7 @@ execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00 ; Warnings: Warning 1265 Data truncated for column 'c20' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 @@ -3127,6 +3139,7 @@ true delete from t9 ; test_sequence -- insert into date/time columns -- +set sql_mode = ''; set @arg00= '1991-01-01 01:01:01' ; insert into t9 ( c1, c13, c14, c15, c16, c17 ) @@ -3285,6 +3298,7 @@ Warnings: Warning 1265 Data truncated for column 'c15' at row 1 Note 1265 Data truncated for column 'c16' at row 1 Warning 1264 Out of range value for column 'c17' at row 1 +set sql_mode = default; set @arg00= 'abc' ; set @arg00= NULL ; insert into t9 diff --git a/mysql-test/suite/optimizer_unfixed_bugs/r/bug43360.result b/mysql-test/suite/optimizer_unfixed_bugs/r/bug43360.result index 33a4d5c2f30..899bf04e635 100644 --- a/mysql-test/suite/optimizer_unfixed_bugs/r/bug43360.result +++ b/mysql-test/suite/optimizer_unfixed_bugs/r/bug43360.result @@ -18,7 +18,7 @@ INSERT INTO t1 VALUES ('MS','Microsoft'), ('IB','IBM- Inc.'), ('GO','Google Inc.'); -INSERT INTO t2 VALUES +INSERT IGNORE INTO t2 VALUES ('AB','Sweden'), ('JA','USA'), ('MS','United States of America'), diff --git a/mysql-test/suite/optimizer_unfixed_bugs/r/bug43617.result b/mysql-test/suite/optimizer_unfixed_bugs/r/bug43617.result index 505dd587d0b..0d88ff3d2cb 100644 --- a/mysql-test/suite/optimizer_unfixed_bugs/r/bug43617.result +++ b/mysql-test/suite/optimizer_unfixed_bugs/r/bug43617.result @@ -20,7 +20,7 @@ Note 1265 Data truncated for column 'c3' at row 1 INSERT INTO t1 VALUES('2008-01-01',NULL,'08-01-02','08/01/03'); INSERT INTO t1(c1,c2) VALUES('08/01/17',NULL); DELETE FROM t1 WHERE c1='08/01/17' AND c2 IS NULL; -INSERT INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; +INSERT IGNORE INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 diff --git a/mysql-test/suite/optimizer_unfixed_bugs/r/bug43618.result b/mysql-test/suite/optimizer_unfixed_bugs/r/bug43618.result index 35cbe35bc7e..d3d04cbf260 100644 --- a/mysql-test/suite/optimizer_unfixed_bugs/r/bug43618.result +++ b/mysql-test/suite/optimizer_unfixed_bugs/r/bug43618.result @@ -18,7 +18,7 @@ Note 1265 Data truncated for column 'c3' at row 1 INSERT INTO t1 VALUES('2008-01-01',NULL,'08-01-02','08/01/03'); INSERT INTO t1(c1,c2) VALUES('08/01/17',NULL); DELETE FROM t1 WHERE c1='08/01/17' AND c2 IS NULL; -INSERT INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; +INSERT IGNORE INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; Warnings: Warning 1265 Data truncated for column 'c1' at row 1 Warning 1265 Data truncated for column 'c2' at row 1 diff --git a/mysql-test/suite/optimizer_unfixed_bugs/t/bug43360.test b/mysql-test/suite/optimizer_unfixed_bugs/t/bug43360.test index d8b8b1f64a3..9bfff0ccdb7 100644 --- a/mysql-test/suite/optimizer_unfixed_bugs/t/bug43360.test +++ b/mysql-test/suite/optimizer_unfixed_bugs/t/bug43360.test @@ -28,7 +28,7 @@ INSERT INTO t1 VALUES ('IB','IBM- Inc.'), ('GO','Google Inc.'); -INSERT INTO t2 VALUES +INSERT IGNORE INTO t2 VALUES ('AB','Sweden'), ('JA','USA'), ('MS','United States of America'), diff --git a/mysql-test/suite/optimizer_unfixed_bugs/t/bug43617.test b/mysql-test/suite/optimizer_unfixed_bugs/t/bug43617.test index 4a3544958d2..2b5b5fd96dd 100644 --- a/mysql-test/suite/optimizer_unfixed_bugs/t/bug43617.test +++ b/mysql-test/suite/optimizer_unfixed_bugs/t/bug43617.test @@ -36,7 +36,7 @@ INSERT INTO t1(c1,c2) VALUES('08/01/17',NULL); DELETE FROM t1 WHERE c1='08/01/17' AND c2 IS NULL; # Insert empty string '', would be converted to zero value of the appropriate type -INSERT INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; +INSERT IGNORE INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; --sorted_result SELECT * FROM t1; diff --git a/mysql-test/suite/optimizer_unfixed_bugs/t/bug43618.test b/mysql-test/suite/optimizer_unfixed_bugs/t/bug43618.test index 02e93cdf01a..3d9430ba34f 100644 --- a/mysql-test/suite/optimizer_unfixed_bugs/t/bug43618.test +++ b/mysql-test/suite/optimizer_unfixed_bugs/t/bug43618.test @@ -36,7 +36,7 @@ INSERT INTO t1(c1,c2) VALUES('08/01/17',NULL); DELETE FROM t1 WHERE c1='08/01/17' AND c2 IS NULL; # Insert empty string '', would be converted to zero value of the appropriate type -INSERT INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; +INSERT IGNORE INTO t1 VALUES('','','08-01-04','08/01/05') /* Inserts zero dates for '' strings */; INSERT INTO t1 VALUES('1971-01-01 00:00:01','1980-01-01 00:00:01','2009-01-01','2009-01-02'),('1990-01-01 00:00:01','2000-01-01 00:00:01','2009-01-03','2009-01-04'),('2038-01-09 03:14:07','2038-01-09 03:14:07','2009-01-05','2009-01-06'); diff --git a/mysql-test/suite/parts/inc/partition_enum.inc b/mysql-test/suite/parts/inc/partition_enum.inc index 87e88983055..f056162e89e 100644 --- a/mysql-test/suite/parts/inc/partition_enum.inc +++ b/mysql-test/suite/parts/inc/partition_enum.inc @@ -32,7 +32,7 @@ let $letter=26; begin; while ($letter) { -eval insert into t2 values (char(ascii('A')+$letter)); +eval insert ignore into t2 values (char(ascii('A')+$letter)); dec $letter; } commit; diff --git a/mysql-test/suite/parts/inc/partition_year.inc b/mysql-test/suite/parts/inc/partition_year.inc index 2be9d158090..ff221d05b95 100644 --- a/mysql-test/suite/parts/inc/partition_year.inc +++ b/mysql-test/suite/parts/inc/partition_year.inc @@ -27,7 +27,7 @@ let $count=255; begin; while ($count) { -eval insert into t2 values (1901+$count); +eval insert ignore into t2 values (1901+$count); dec $count; } commit; diff --git a/mysql-test/suite/perfschema/include/digest_execution.inc b/mysql-test/suite/perfschema/include/digest_execution.inc index 5483cca61d7..cf83bf9f51b 100644 --- a/mysql-test/suite/perfschema/include/digest_execution.inc +++ b/mysql-test/suite/perfschema/include/digest_execution.inc @@ -96,7 +96,7 @@ CREATE TABLE dup_table (c char(4)); --ERROR ER_TABLE_EXISTS_ERROR CREATE TABLE dup_table (c char(4)); DROP TABLE dup_table; -INSERT INTO t11 VALUES("MySQL"); +INSERT IGNORE INTO t11 VALUES("MySQL"); # ----------------------------------------------------------------------- # Tests to show sub-statements for following statements are not diff --git a/mysql-test/suite/perfschema/r/digest_table_full.result b/mysql-test/suite/perfschema/r/digest_table_full.result index f52b78c9f7d..5c8d2eb23d1 100644 --- a/mysql-test/suite/perfschema/r/digest_table_full.result +++ b/mysql-test/suite/perfschema/r/digest_table_full.result @@ -79,7 +79,7 @@ CREATE TABLE dup_table (c char(4)); CREATE TABLE dup_table (c char(4)); ERROR 42S01: Table 'dup_table' already exists DROP TABLE dup_table; -INSERT INTO t11 VALUES("MySQL"); +INSERT IGNORE INTO t11 VALUES("MySQL"); Warnings: Warning 1265 Data truncated for column 'c' at row 1 PREPARE stmt FROM "SELECT * FROM t12"; diff --git a/mysql-test/suite/perfschema/r/dml_setup_objects.result b/mysql-test/suite/perfschema/r/dml_setup_objects.result index b5681706d46..a505501c8b6 100644 --- a/mysql-test/suite/perfschema/r/dml_setup_objects.result +++ b/mysql-test/suite/perfschema/r/dml_setup_objects.result @@ -14,10 +14,12 @@ OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED select * from performance_schema.setup_objects order by object_type, object_schema, object_name; OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED +set sql_mode= ''; insert into performance_schema.setup_objects set object_type='ILLEGAL', object_schema='FOO', object_name='BAR', enabled='YES', timed='YES'; ERROR 23000: Cannot add or update a child row: a foreign key constraint fails +set sql_mode= DEFAULT; insert into performance_schema.setup_objects set object_type='TABLE', object_schema='FOO', object_name='BAR', enabled='YES', timed='YES'; @@ -37,6 +39,7 @@ select * from performance_schema.setup_objects order by object_type, object_schema, object_name; OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED TABLE FOO BAR NO YES +set statement sql_mode = '' for update performance_schema.setup_objects set object_type='ILLEGAL'; ERROR HY000: Invalid performance_schema usage diff --git a/mysql-test/suite/perfschema/r/setup_objects.result b/mysql-test/suite/perfschema/r/setup_objects.result index 94ef4baab29..c29aaa2114f 100644 --- a/mysql-test/suite/perfschema/r/setup_objects.result +++ b/mysql-test/suite/perfschema/r/setup_objects.result @@ -25,6 +25,7 @@ insert into performance_schema.setup_objects values ('TABLE', 'db4', 't1', 'NO', 'YES'); insert into performance_schema.setup_objects values ('TABLE', 'db4', '%', 'YES', 'NO'); +set sql_mode= ''; insert into performance_schema.setup_objects values ('SOMETHING', 'bad1', 'bad1', 'YES', 'NO'); ERROR 23000: Cannot add or update a child row: a foreign key constraint fails @@ -81,6 +82,7 @@ TABLE db3 t1 YES YES TABLE db3 t2 NO NO TABLE db4 % YES NO TABLE db4 t1 NO YES +set sql_mode= DEFAULT; drop database if exists db1; drop database if exists db2; drop database if exists db3; diff --git a/mysql-test/suite/perfschema/r/start_server_no_digests.result b/mysql-test/suite/perfschema/r/start_server_no_digests.result index e4b389716a9..f8301e62a7f 100644 --- a/mysql-test/suite/perfschema/r/start_server_no_digests.result +++ b/mysql-test/suite/perfschema/r/start_server_no_digests.result @@ -79,7 +79,7 @@ CREATE TABLE dup_table (c char(4)); CREATE TABLE dup_table (c char(4)); ERROR 42S01: Table 'dup_table' already exists DROP TABLE dup_table; -INSERT INTO t11 VALUES("MySQL"); +INSERT IGNORE INTO t11 VALUES("MySQL"); Warnings: Warning 1265 Data truncated for column 'c' at row 1 PREPARE stmt FROM "SELECT * FROM t12"; diff --git a/mysql-test/suite/perfschema/r/statement_digest.result b/mysql-test/suite/perfschema/r/statement_digest.result index 6abe865f1aa..ba2e5069c9a 100644 --- a/mysql-test/suite/perfschema/r/statement_digest.result +++ b/mysql-test/suite/perfschema/r/statement_digest.result @@ -79,7 +79,7 @@ CREATE TABLE dup_table (c char(4)); CREATE TABLE dup_table (c char(4)); ERROR 42S01: Table 'dup_table' already exists DROP TABLE dup_table; -INSERT INTO t11 VALUES("MySQL"); +INSERT IGNORE INTO t11 VALUES("MySQL"); Warnings: Warning 1265 Data truncated for column 'c' at row 1 PREPARE stmt FROM "SELECT * FROM t12"; @@ -133,7 +133,7 @@ statements_digest DROP SCHEMA `statements_digest_temp` 2 0 0 0 statements_digest SELECT ? FROM `no_such_table` 1 0 0 1 statements_digest CREATE TABLE `dup_table` ( `c` CHARACTER (?) ) 2 0 0 1 statements_digest DROP TABLE `dup_table` 1 0 0 0 -statements_digest INSERT INTO `t11` VALUES (?) 1 1 1 0 +statements_digest INSERT IGNORE INTO `t11` VALUES (?) 1 1 1 0 statements_digest SHOW WARNINGS 1 0 0 0 statements_digest PREPARE `stmt` FROM ? 1 0 0 0 statements_digest EXECUTE `stmt` 2 0 0 0 diff --git a/mysql-test/suite/perfschema/r/statement_digest_consumers.result b/mysql-test/suite/perfschema/r/statement_digest_consumers.result index db60362dd92..140c26f4edd 100644 --- a/mysql-test/suite/perfschema/r/statement_digest_consumers.result +++ b/mysql-test/suite/perfschema/r/statement_digest_consumers.result @@ -93,7 +93,7 @@ CREATE TABLE dup_table (c char(4)); CREATE TABLE dup_table (c char(4)); ERROR 42S01: Table 'dup_table' already exists DROP TABLE dup_table; -INSERT INTO t11 VALUES("MySQL"); +INSERT IGNORE INTO t11 VALUES("MySQL"); Warnings: Warning 1265 Data truncated for column 'c' at row 1 PREPARE stmt FROM "SELECT * FROM t12"; @@ -146,7 +146,7 @@ statements_digest DROP SCHEMA `statements_digest_temp` 2 statements_digest SELECT ? FROM `no_such_table` 1 statements_digest CREATE TABLE `dup_table` ( `c` CHARACTER (?) ) 2 statements_digest DROP TABLE `dup_table` 1 -statements_digest INSERT INTO `t11` VALUES (?) 1 +statements_digest INSERT IGNORE INTO `t11` VALUES (?) 1 statements_digest SHOW WARNINGS 1 statements_digest PREPARE `stmt` FROM ? 1 statements_digest EXECUTE `stmt` 2 diff --git a/mysql-test/suite/perfschema/r/statement_digest_consumers2.result b/mysql-test/suite/perfschema/r/statement_digest_consumers2.result index 434914c65e7..54eba51c1ed 100644 --- a/mysql-test/suite/perfschema/r/statement_digest_consumers2.result +++ b/mysql-test/suite/perfschema/r/statement_digest_consumers2.result @@ -93,7 +93,7 @@ CREATE TABLE dup_table (c char(4)); CREATE TABLE dup_table (c char(4)); ERROR 42S01: Table 'dup_table' already exists DROP TABLE dup_table; -INSERT INTO t11 VALUES("MySQL"); +INSERT IGNORE INTO t11 VALUES("MySQL"); Warnings: Warning 1265 Data truncated for column 'c' at row 1 PREPARE stmt FROM "SELECT * FROM t12"; diff --git a/mysql-test/suite/perfschema/t/dml_setup_objects.test b/mysql-test/suite/perfschema/t/dml_setup_objects.test index 29594bf32f9..ac7b5fd35bb 100644 --- a/mysql-test/suite/perfschema/t/dml_setup_objects.test +++ b/mysql-test/suite/perfschema/t/dml_setup_objects.test @@ -26,10 +26,12 @@ select * from performance_schema.setup_objects select * from performance_schema.setup_objects order by object_type, object_schema, object_name; +set sql_mode= ''; --error ER_NO_REFERENCED_ROW_2 insert into performance_schema.setup_objects set object_type='ILLEGAL', object_schema='FOO', object_name='BAR', enabled='YES', timed='YES'; +set sql_mode= DEFAULT; insert into performance_schema.setup_objects set object_type='TABLE', object_schema='FOO', object_name='BAR', @@ -54,6 +56,7 @@ select * from performance_schema.setup_objects order by object_type, object_schema, object_name; --error ER_WRONG_PERFSCHEMA_USAGE +set statement sql_mode = '' for update performance_schema.setup_objects set object_type='ILLEGAL'; diff --git a/mysql-test/suite/perfschema/t/setup_objects.test b/mysql-test/suite/perfschema/t/setup_objects.test index cd1b4ce80e0..eb22953b1a6 100644 --- a/mysql-test/suite/perfschema/t/setup_objects.test +++ b/mysql-test/suite/perfschema/t/setup_objects.test @@ -49,6 +49,7 @@ insert into performance_schema.setup_objects # Also test insert of invalid enum values +set sql_mode= ''; --error ER_NO_REFERENCED_ROW_2 insert into performance_schema.setup_objects values ('SOMETHING', 'bad1', 'bad1', 'YES', 'NO'); @@ -88,6 +89,7 @@ update performance_schema.setup_objects select * from performance_schema.setup_objects order by OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME; +set sql_mode= DEFAULT; --disable_warnings drop database if exists db1; diff --git a/mysql-test/suite/plugins/r/qc_info.result b/mysql-test/suite/plugins/r/qc_info.result index 2f518a7ef65..f9192d1dfec 100644 --- a/mysql-test/suite/plugins/r/qc_info.result +++ b/mysql-test/suite/plugins/r/qc_info.result @@ -28,7 +28,7 @@ set time_zone= @time_zone, default_week_format= @default_week_format, character_ select * from information_schema.query_cache_info; STATEMENT_SCHEMA STATEMENT_TEXT RESULT_BLOCKS_COUNT RESULT_BLOCKS_SIZE RESULT_BLOCKS_SIZE_USED LIMIT MAX_SORT_LENGTH GROUP_CONCAT_MAX_LENGTH CHARACTER_SET_CLIENT CHARACTER_SET_RESULT COLLATION TIMEZONE DEFAULT_WEEK_FORMAT DIV_PRECISION_INCREMENT SQL_MODE LC_TIME_NAMES CLIENT_LONG_FLAG CLIENT_PROTOCOL_41 PROTOCOL_TYPE MORE_RESULTS_EXISTS IN_TRANS AUTOCOMMIT PACKET_NUMBER test select * from t1 1 512 # -1 1011 513 binary utf32 utf32_bin Europe/Moscow 4 7 STRICT_ALL_TABLES ar_SD 1 1 # 0 0 0 # -test select * from t1 1 512 # -1 1024 1048576 latin1 latin1 latin1_swedish_ci SYSTEM 0 4 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION en_US 1 1 # 0 0 1 # +test select * from t1 1 512 # -1 1024 1048576 latin1 latin1 latin1_swedish_ci SYSTEM 0 4 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION en_US 1 1 # 0 0 1 # drop table t1; select statement_schema, statement_text, result_blocks_count, result_blocks_size from information_schema.query_cache_info; statement_schema statement_text result_blocks_count result_blocks_size diff --git a/mysql-test/suite/plugins/r/qc_info_priv.result b/mysql-test/suite/plugins/r/qc_info_priv.result index ade6901dec5..93fee5837f6 100644 --- a/mysql-test/suite/plugins/r/qc_info_priv.result +++ b/mysql-test/suite/plugins/r/qc_info_priv.result @@ -28,7 +28,7 @@ set time_zone= @time_zone, default_week_format= @default_week_format, character_ select * from information_schema.query_cache_info; STATEMENT_SCHEMA STATEMENT_TEXT RESULT_BLOCKS_COUNT RESULT_BLOCKS_SIZE RESULT_BLOCKS_SIZE_USED LIMIT MAX_SORT_LENGTH GROUP_CONCAT_MAX_LENGTH CHARACTER_SET_CLIENT CHARACTER_SET_RESULT COLLATION TIMEZONE DEFAULT_WEEK_FORMAT DIV_PRECISION_INCREMENT SQL_MODE LC_TIME_NAMES CLIENT_LONG_FLAG CLIENT_PROTOCOL_41 PROTOCOL_TYPE MORE_RESULTS_EXISTS IN_TRANS AUTOCOMMIT PACKET_NUMBER test select * from t1 1 512 # -1 1011 513 binary utf32 utf32_bin Europe/Moscow 4 7 STRICT_ALL_TABLES ar_SD 1 1 # 0 0 0 # -test select * from t1 1 512 # -1 1024 1048576 latin1 latin1 latin1_swedish_ci SYSTEM 0 4 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION en_US 1 1 # 0 0 1 # +test select * from t1 1 512 # -1 1024 1048576 latin1 latin1 latin1_swedish_ci SYSTEM 0 4 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION en_US 1 1 # 0 0 1 # create user mysqltest; connect conn1,localhost,mysqltest,,; connection conn1; diff --git a/mysql-test/suite/roles/definer.result b/mysql-test/suite/roles/definer.result index 8346171ba3f..f7f3e946809 100644 --- a/mysql-test/suite/roles/definer.result +++ b/mysql-test/suite/roles/definer.result @@ -109,7 +109,7 @@ create definer=current_role trigger tr1 before insert on t2 for each row insert t1 values (111, 222, 333); show create trigger tr1; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -tr1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` trigger tr1 before insert on t2 for each row +tr1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` trigger tr1 before insert on t2 for each row insert t1 values (111, 222, 333) latin1 latin1_swedish_ci latin1_swedish_ci # set role none; insert t2 values (11,22,33); @@ -126,7 +126,7 @@ create definer=role2 trigger tr2 before delete on t2 for each row insert t1 values (111, 222, 333); show create trigger tr2; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -tr2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role2` trigger tr2 before delete on t2 for each row +tr2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role2` trigger tr2 before delete on t2 for each row insert t1 values (111, 222, 333) latin1 latin1_swedish_ci latin1_swedish_ci # delete from t2 where a=1; select * from t1; @@ -144,7 +144,7 @@ Warnings: Note 1449 The user specified as a definer ('role3'@'%') does not exist show create trigger tr3; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -tr3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role3`@`%` trigger tr3 before update on t2 for each row +tr3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role3`@`%` trigger tr3 before update on t2 for each row insert t1 values (111, 222, 333) latin1 latin1_swedish_ci latin1_swedish_ci # update t2 set b=2 where a=2; ERROR HY000: The user specified as a definer ('role3'@'%') does not exist @@ -158,7 +158,7 @@ a b c flush tables; show create trigger tr2; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created -tr2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role2`@`` trigger tr2 before delete on t2 for each row +tr2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role2`@`` trigger tr2 before delete on t2 for each row insert t1 values (111, 222, 333) latin1 latin1_swedish_ci latin1_swedish_ci # delete from t2 where a=2; ERROR HY000: The user specified as a definer ('role2'@'%') does not exist @@ -175,7 +175,7 @@ set role role1; create definer=current_role procedure pr1() insert t1 values (111, 222, 333); show create procedure pr1; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pr1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pr1`() +pr1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pr1`() insert t1 values (111, 222, 333) latin1 latin1_swedish_ci latin1_swedish_ci set role none; call pr1(); @@ -187,7 +187,7 @@ a b c create definer=role2 procedure pr2() insert t1 values (111, 222, 333); show create procedure pr2; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pr2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role2` PROCEDURE `pr2`() +pr2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role2` PROCEDURE `pr2`() insert t1 values (111, 222, 333) latin1 latin1_swedish_ci latin1_swedish_ci call pr2(); select * from t1; @@ -201,7 +201,7 @@ Warnings: Note 1449 The user specified as a definer ('role3'@'%') does not exist show create procedure pr3; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pr3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role3`@`%` PROCEDURE `pr3`() +pr3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role3`@`%` PROCEDURE `pr3`() insert t1 values (111, 222, 333) latin1 latin1_swedish_ci latin1_swedish_ci call pr3(); ERROR HY000: The user specified as a definer ('role3'@'%') does not exist @@ -218,7 +218,7 @@ set role role1; create definer=current_role function fn1() returns int return (select sum(a+b) from t1); show create function fn1; Function sql_mode Create Function character_set_client collation_connection Database Collation -fn1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` FUNCTION `fn1`() RETURNS int(11) +fn1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` FUNCTION `fn1`() RETURNS int(11) return (select sum(a+b) from t1) latin1 latin1_swedish_ci latin1_swedish_ci set role none; select fn1(); @@ -230,7 +230,7 @@ a b c create definer=role2 function fn2() returns int return (select sum(a+b) from t1); show create function fn2; Function sql_mode Create Function character_set_client collation_connection Database Collation -fn2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role2` FUNCTION `fn2`() RETURNS int(11) +fn2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role2` FUNCTION `fn2`() RETURNS int(11) return (select sum(a+b) from t1) latin1 latin1_swedish_ci latin1_swedish_ci select fn2(); fn2() @@ -240,7 +240,7 @@ Warnings: Note 1449 The user specified as a definer ('role3'@'%') does not exist show create function fn3; Function sql_mode Create Function character_set_client collation_connection Database Collation -fn3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role3`@`%` FUNCTION `fn3`() RETURNS int(11) +fn3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role3`@`%` FUNCTION `fn3`() RETURNS int(11) return (select sum(a+b) from t1) latin1 latin1_swedish_ci latin1_swedish_ci select fn3(); ERROR HY000: The user specified as a definer ('role3'@'%') does not exist @@ -253,7 +253,7 @@ create definer=current_role event e1 on schedule every 1 second starts '2000-01- insert t1 values (111, 2, 0); show create event e1; Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -e1 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`role1` EVENT `e1` ON SCHEDULE EVERY 1 SECOND STARTS '2000-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO insert t1 values (111, 2, 0) latin1 latin1_swedish_ci latin1_swedish_ci +e1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`role1` EVENT `e1` ON SCHEDULE EVERY 1 SECOND STARTS '2000-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO insert t1 values (111, 2, 0) latin1 latin1_swedish_ci latin1_swedish_ci set role none; create definer=role3 event e3 on schedule every 1 second starts '2000-01-01' do insert t1 values (111, 3, 0); @@ -261,12 +261,12 @@ Warnings: Note 1449 The user specified as a definer ('role3'@'%') does not exist show create event e3; Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -e3 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`role3`@`%` EVENT `e3` ON SCHEDULE EVERY 1 SECOND STARTS '2000-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO insert t1 values (111, 3, 0) latin1 latin1_swedish_ci latin1_swedish_ci +e3 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`role3`@`%` EVENT `e3` ON SCHEDULE EVERY 1 SECOND STARTS '2000-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO insert t1 values (111, 3, 0) latin1 latin1_swedish_ci latin1_swedish_ci create definer=role2 event e2 on schedule every 1 second starts '2000-01-01' do insert t1 values (111, 4, 0); show create event e2; Event sql_mode time_zone Create Event character_set_client collation_connection Database Collation -e2 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`role2` EVENT `e2` ON SCHEDULE EVERY 1 SECOND STARTS '2000-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO insert t1 values (111, 4, 0) latin1 latin1_swedish_ci latin1_swedish_ci +e2 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SYSTEM CREATE DEFINER=`role2` EVENT `e2` ON SCHEDULE EVERY 1 SECOND STARTS '2000-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO insert t1 values (111, 4, 0) latin1 latin1_swedish_ci latin1_swedish_ci set global event_scheduler=off; select distinct * from t1; a b c @@ -343,7 +343,7 @@ INSERT INTO `t2` VALUES (2,20,200); /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`role1`*/ /*!50003 trigger tr1 before insert on t2 for each row insert t1 values (111, 222, 333) */;; @@ -359,7 +359,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`role3`@`%`*/ /*!50003 trigger tr3 before update on t2 for each row insert t1 values (111, 222, 333) */;; @@ -375,7 +375,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`role2`@``*/ /*!50003 trigger tr2 before delete on t2 for each row insert t1 values (111, 222, 333) */;; @@ -393,7 +393,7 @@ DELIMITER ;; /*!50003 SET character_set_results = latin1 */ ;; /*!50003 SET collation_connection = latin1_swedish_ci */ ;; /*!50003 SET @saved_sql_mode = @@sql_mode */ ;; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; /*!50106 CREATE*/ /*!50117 DEFINER=`role1`*/ /*!50106 EVENT `e1` ON SCHEDULE EVERY 1 SECOND STARTS '2000-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO insert t1 values (111, 2, 0) */ ;; @@ -410,7 +410,7 @@ DELIMITER ;; /*!50003 SET character_set_results = latin1 */ ;; /*!50003 SET collation_connection = latin1_swedish_ci */ ;; /*!50003 SET @saved_sql_mode = @@sql_mode */ ;; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; /*!50106 CREATE*/ /*!50117 DEFINER=`role2`*/ /*!50106 EVENT `e2` ON SCHEDULE EVERY 1 SECOND STARTS '2000-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO insert t1 values (111, 4, 0) */ ;; @@ -427,7 +427,7 @@ DELIMITER ;; /*!50003 SET character_set_results = latin1 */ ;; /*!50003 SET collation_connection = latin1_swedish_ci */ ;; /*!50003 SET @saved_sql_mode = @@sql_mode */ ;; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;; /*!50003 SET @saved_time_zone = @@time_zone */ ;; /*!50003 SET time_zone = 'SYSTEM' */ ;; /*!50106 CREATE*/ /*!50117 DEFINER=`role3`@`%`*/ /*!50106 EVENT `e3` ON SCHEDULE EVERY 1 SECOND STARTS '2000-01-01 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO insert t1 values (111, 3, 0) */ ;; @@ -445,7 +445,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`role1` FUNCTION `fn1`() RETURNS int(11) return (select sum(a+b) from t1) ;; @@ -461,7 +461,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`role2` FUNCTION `fn2`() RETURNS int(11) return (select sum(a+b) from t1) ;; @@ -477,7 +477,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`role3`@`%` FUNCTION `fn3`() RETURNS int(11) return (select sum(a+b) from t1) ;; @@ -493,7 +493,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`role1` PROCEDURE `pr1`() insert t1 values (111, 222, 333) ;; @@ -509,7 +509,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`role2`@`%` PROCEDURE `pr2`() insert t1 values (111, 222, 333) ;; @@ -525,7 +525,7 @@ DELIMITER ; /*!50003 SET character_set_results = latin1 */ ; /*!50003 SET collation_connection = latin1_swedish_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`role3`@`%` PROCEDURE `pr3`() insert t1 values (111, 222, 333) ;; diff --git a/mysql-test/suite/roles/none_public.result b/mysql-test/suite/roles/none_public.result index 9e2c680aad1..5dd1480e8c3 100644 --- a/mysql-test/suite/roles/none_public.result +++ b/mysql-test/suite/roles/none_public.result @@ -43,7 +43,7 @@ drop role role1; optimize table mysql.user; Table Op Msg_type Msg_text mysql.user optimize status OK -insert mysql.user (user, is_role) values ('none', 'Y'), ('public', 'Y'); +insert ignore mysql.user (user, is_role) values ('none', 'Y'), ('public', 'Y'); Warnings: Warning 1364 Field 'ssl_cipher' doesn't have a default value Warning 1364 Field 'x509_issuer' doesn't have a default value diff --git a/mysql-test/suite/roles/none_public.test b/mysql-test/suite/roles/none_public.test index 8e370d80007..838a4955df5 100644 --- a/mysql-test/suite/roles/none_public.test +++ b/mysql-test/suite/roles/none_public.test @@ -51,7 +51,7 @@ create definer=public view test.v1 as select 1; drop role role1; optimize table mysql.user; # to remove deleted rows and have stable row order -insert mysql.user (user, is_role) values ('none', 'Y'), ('public', 'Y'); +insert ignore mysql.user (user, is_role) values ('none', 'Y'), ('public', 'Y'); flush privileges; delete from mysql.user where is_role='Y'; diff --git a/mysql-test/suite/roles/rpl_definer.result b/mysql-test/suite/roles/rpl_definer.result index f4cc5dad39e..2d10dc6cd7a 100644 --- a/mysql-test/suite/roles/rpl_definer.result +++ b/mysql-test/suite/roles/rpl_definer.result @@ -21,19 +21,19 @@ create definer=current_role procedure pcr() select current_role; create definer=role1 procedure pr() select "role1"; show create procedure pcu; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pcu NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `pcu`() +pcu STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `pcu`() select current_user latin1 latin1_swedish_ci latin1_swedish_ci show create procedure pu; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pu NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `pu`() +pu STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `pu`() select "root@localhost" latin1 latin1_swedish_ci latin1_swedish_ci show create procedure pcr; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pcr NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pcr`() +pcr STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pcr`() select current_role latin1 latin1_swedish_ci latin1_swedish_ci show create procedure pr; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pr NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pr`() +pr STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pr`() select "role1" latin1 latin1_swedish_ci latin1_swedish_ci connection slave; set role role1; @@ -49,19 +49,19 @@ GRANT role2 TO 'role1' GRANT role2 TO 'root'@'localhost' WITH ADMIN OPTION show create procedure pcu; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pcu NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `pcu`() +pcu STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `pcu`() select current_user latin1 latin1_swedish_ci latin1_swedish_ci show create procedure pu; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pu NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `pu`() +pu STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `pu`() select "root@localhost" latin1 latin1_swedish_ci latin1_swedish_ci show create procedure pcr; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pcr NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pcr`() +pcr STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pcr`() select current_role latin1 latin1_swedish_ci latin1_swedish_ci show create procedure pr; Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -pr NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pr`() +pr STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`role1` PROCEDURE `pr`() select "role1" latin1 latin1_swedish_ci latin1_swedish_ci connection master; drop procedure pcu; diff --git a/mysql-test/suite/roles/set_default_role_for.result b/mysql-test/suite/roles/set_default_role_for.result index 947275dadab..9880671ba09 100644 --- a/mysql-test/suite/roles/set_default_role_for.result +++ b/mysql-test/suite/roles/set_default_role_for.result @@ -44,7 +44,7 @@ GRANT USAGE ON *.* TO 'user_b'@'localhost' GRANT INSERT, UPDATE ON *.* TO 'role_b' select user, host, default_role from mysql.user where user like 'user_%'; ERROR 42000: SELECT command denied to user 'user_b'@'localhost' for table 'user' -insert into mysql.user (user, host) values ('someuser', 'somehost'); +insert ignore into mysql.user (user, host) values ('someuser', 'somehost'); Warnings: Warning 1364 Field 'ssl_cipher' doesn't have a default value Warning 1364 Field 'x509_issuer' doesn't have a default value diff --git a/mysql-test/suite/roles/set_default_role_for.test b/mysql-test/suite/roles/set_default_role_for.test index de35b529ce6..985eaa16e3d 100644 --- a/mysql-test/suite/roles/set_default_role_for.test +++ b/mysql-test/suite/roles/set_default_role_for.test @@ -66,7 +66,7 @@ show grants; select user, host, default_role from mysql.user where user like 'user_%'; # Make sure the default role setting worked from root. -insert into mysql.user (user, host) values ('someuser', 'somehost'); +insert ignore into mysql.user (user, host) values ('someuser', 'somehost'); # Since we have update privileges on the mysql.user table, we should # be able to set a default role for a different user. set default role NONE for user_a@localhost; diff --git a/mysql-test/suite/rpl/r/rpl_checksum_cache.result b/mysql-test/suite/rpl/r/rpl_checksum_cache.result index d3167496249..e8f221cc181 100644 --- a/mysql-test/suite/rpl/r/rpl_checksum_cache.result +++ b/mysql-test/suite/rpl/r/rpl_checksum_cache.result @@ -1,7 +1,7 @@ include/master-slave.inc [connection master] -call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave. Statement: insert into t2 set data=repeat.*'a', @act_size.*"); -call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave. Statement: insert into t1 values.* NAME_CONST.*'n',.*, @data .*"); +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. .*Statement: insert into t2 set data=repeat.*'a', @act_size.*"); +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. .*Statement: insert into t1 values.* NAME_CONST.*'n',.*, @data .*"); connection master; set @save_binlog_cache_size = @@global.binlog_cache_size; set @save_binlog_checksum = @@global.binlog_checksum; diff --git a/mysql-test/suite/rpl/r/rpl_concurrency_error.result b/mysql-test/suite/rpl/r/rpl_concurrency_error.result index b95654d2245..c7f2d58e426 100644 --- a/mysql-test/suite/rpl/r/rpl_concurrency_error.result +++ b/mysql-test/suite/rpl/r/rpl_concurrency_error.result @@ -26,7 +26,7 @@ Note 1592 Unsafe statement written to the binary log using statement format sinc connection conn2; SET AUTOCOMMIT = 1; BEGIN; -UPDATE t SET f = 'magenta 2' WHERE f = 'red'; +UPDATE IGNORE t SET f = 'magenta 2' WHERE f = 'red'; ERROR HY000: Lock wait timeout exceeded; try restarting transaction INSERT INTO t VALUES (5 + (2 * 10),"brown"); INSERT INTO n VALUES (now(),"brown"); @@ -45,7 +45,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'yellow 2' WHERE i = 3 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'magenta 2' WHERE f = 'red' +master-bin.000001 # Query # # use `test`; UPDATE IGNORE t SET f = 'magenta 2' WHERE f = 'red' master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (5 + (2 * 10),"brown") master-bin.000001 # Query # # ROLLBACK connection conn1; @@ -57,7 +57,7 @@ Note 1592 Unsafe statement written to the binary log using statement format sinc connection conn2; SET AUTOCOMMIT = 1; BEGIN; -UPDATE t SET f = 'dark blue 2' WHERE f = 'red'; +UPDATE IGNORE t SET f = 'dark blue 2' WHERE f = 'red'; ERROR HY000: Lock wait timeout exceeded; try restarting transaction INSERT INTO t VALUES (6 + (2 * 10),"brown"); INSERT INTO n VALUES (now(),"brown"); @@ -74,7 +74,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'gray 2' WHERE i = 3 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'dark blue 2' WHERE f = 'red' +master-bin.000001 # Query # # use `test`; UPDATE IGNORE t SET f = 'dark blue 2' WHERE f = 'red' master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (6 + (2 * 10),"brown") master-bin.000001 # Xid # # COMMIT /* XID */ connection conn1; @@ -84,7 +84,7 @@ Warnings: Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them connection conn2; SET AUTOCOMMIT = 0; -UPDATE t SET f = 'magenta 1' WHERE f = 'red'; +UPDATE IGNORE t SET f = 'magenta 1' WHERE f = 'red'; ERROR HY000: Lock wait timeout exceeded; try restarting transaction INSERT INTO t VALUES (5 + (1 * 10),"brown"); INSERT INTO n VALUES (now(),"brown"); @@ -103,7 +103,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'yellow 1' WHERE i = 3 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'magenta 1' WHERE f = 'red' +master-bin.000001 # Query # # use `test`; UPDATE IGNORE t SET f = 'magenta 1' WHERE f = 'red' master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (5 + (1 * 10),"brown") master-bin.000001 # Query # # ROLLBACK connection conn1; @@ -113,7 +113,7 @@ Warnings: Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them connection conn2; SET AUTOCOMMIT = 0; -UPDATE t SET f = 'dark blue 1' WHERE f = 'red'; +UPDATE IGNORE t SET f = 'dark blue 1' WHERE f = 'red'; ERROR HY000: Lock wait timeout exceeded; try restarting transaction INSERT INTO t VALUES (6 + (1 * 10),"brown"); INSERT INTO n VALUES (now(),"brown"); @@ -130,7 +130,7 @@ master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'gray 1' WHERE i = 3 master-bin.000001 # Xid # # COMMIT /* XID */ master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Query # # use `test`; UPDATE t SET f = 'dark blue 1' WHERE f = 'red' +master-bin.000001 # Query # # use `test`; UPDATE IGNORE t SET f = 'dark blue 1' WHERE f = 'red' master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (6 + (1 * 10),"brown") master-bin.000001 # Xid # # COMMIT /* XID */ connection master; diff --git a/mysql-test/suite/rpl/r/rpl_create_drop_function.result b/mysql-test/suite/rpl/r/rpl_create_drop_function.result index 744e747134d..312175fcf04 100644 --- a/mysql-test/suite/rpl/r/rpl_create_drop_function.result +++ b/mysql-test/suite/rpl/r/rpl_create_drop_function.result @@ -9,7 +9,7 @@ ERROR 42000: FUNCTION hello already exists connection slave; SHOW CREATE FUNCTION hello; Function sql_mode Create Function character_set_client collation_connection Database Collation -hello NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `hello`(str CHAR(20)) RETURNS char(50) CHARSET latin1 +hello STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `hello`(str CHAR(20)) RETURNS char(50) CHARSET latin1 DETERMINISTIC RETURN CONCAT('Hello, ', str, '!') latin1 latin1_swedish_ci latin1_swedish_ci diff --git a/mysql-test/suite/rpl/r/rpl_do_grant.result b/mysql-test/suite/rpl/r/rpl_do_grant.result index 67d1b51559b..aed8bba3bc0 100644 --- a/mysql-test/suite/rpl/r/rpl_do_grant.result +++ b/mysql-test/suite/rpl/r/rpl_do_grant.result @@ -148,7 +148,7 @@ GRANT EXECUTE, ALTER ROUTINE ON FUNCTION `bug42217_db`.`upgrade_del_func` TO 'cr USE bug42217_db; SHOW CREATE FUNCTION upgrade_del_func; Function sql_mode Create Function character_set_client collation_connection Database Collation -upgrade_del_func NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_del_func`() RETURNS char(30) CHARSET latin1 +upgrade_del_func STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_del_func`() RETURNS char(30) CHARSET latin1 BEGIN RETURN "INSIDE upgrade_del_func()"; END latin1 latin1_swedish_ci latin1_swedish_ci @@ -160,7 +160,7 @@ connection create_rout_db_slave; USE bug42217_db; SHOW CREATE FUNCTION upgrade_del_func; Function sql_mode Create Function character_set_client collation_connection Database Collation -upgrade_del_func NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_del_func`() RETURNS char(30) CHARSET latin1 +upgrade_del_func STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_del_func`() RETURNS char(30) CHARSET latin1 BEGIN RETURN "INSIDE upgrade_del_func()"; END latin1 latin1_swedish_ci latin1_swedish_ci @@ -189,7 +189,7 @@ INSIDE upgrade_alter_func() connection slave; SHOW CREATE FUNCTION upgrade_alter_func; Function sql_mode Create Function character_set_client collation_connection Database Collation -upgrade_alter_func NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_alter_func`() RETURNS char(30) CHARSET latin1 +upgrade_alter_func STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_alter_func`() RETURNS char(30) CHARSET latin1 BEGIN RETURN "INSIDE upgrade_alter_func()"; END latin1 latin1_swedish_ci latin1_swedish_ci diff --git a/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result b/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result index 81302266d82..b59c21724b2 100644 --- a/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result +++ b/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result @@ -191,11 +191,11 @@ INSERT into t3 set f1=1, f2=1, f3=1, f4='first', f10='f10: some var char'; INSERT into t4 set f1=1, f2=1, f3=1, f4='first', f7='f7: medium size blob', f10='f10: binary data'; INSERT into t31 set f1=1, f2=1, f3=1, f4='first'; -INSERT into t31 set f1=1, f2=1, f3=2, f4='second', +insert ignore into t31 set f1=1, f2=1, f3=2, f4='second', f9=2.2, f10='seven samurai', f28=222.222, f35='222'; Warnings: Warning 1366 Incorrect integer value: 'seven samurai' for column 'f10' at row 1 -INSERT into t31 values (1, 1, 3, 'third', +insert ignore into t31 values (1, 1, 3, 'third', /* f5 BIGINT, */ 333333333333333333333333, /* f6 BLOB, */ '3333333333333333333333', /* f7 DATE, */ '2007-07-18', @@ -231,7 +231,7 @@ INSERT into t31 values (1, 1, 3, 'third', Warnings: Warning 1264 Out of range value for column 'f5' at row 1 Warning 1264 Out of range value for column 'f24' at row 1 -INSERT into t31 values (1, 1, 4, 'fourth', +insert ignore into t31 values (1, 1, 4, 'fourth', /* f5 BIGINT, */ 333333333333333333333333, /* f6 BLOB, */ '3333333333333333333333', /* f7 DATE, */ '2007-07-18', @@ -409,7 +409,7 @@ connection master; update t31 set f5=555555555555555 where f3=6; update t31 set f2=2 where f3=2; update t31 set f1=NULL where f3=1; -update t31 set f3=NULL, f27=NULL, f35='f35 new value' where f3=3; +update ignore t31 set f3=NULL, f27=NULL, f35='f35 new value' where f3=3; Warnings: Warning 1048 Column 'f3' cannot be null diff --git a/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result b/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result index 12567f89af9..b9d254e1b42 100644 --- a/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result +++ b/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result @@ -191,11 +191,11 @@ INSERT into t3 set f1=1, f2=1, f3=1, f4='first', f10='f10: some var char'; INSERT into t4 set f1=1, f2=1, f3=1, f4='first', f7='f7: medium size blob', f10='f10: binary data'; INSERT into t31 set f1=1, f2=1, f3=1, f4='first'; -INSERT into t31 set f1=1, f2=1, f3=2, f4='second', +insert ignore into t31 set f1=1, f2=1, f3=2, f4='second', f9=2.2, f10='seven samurai', f28=222.222, f35='222'; Warnings: Warning 1366 Incorrect integer value: 'seven samurai' for column 'f10' at row 1 -INSERT into t31 values (1, 1, 3, 'third', +insert ignore into t31 values (1, 1, 3, 'third', /* f5 BIGINT, */ 333333333333333333333333, /* f6 BLOB, */ '3333333333333333333333', /* f7 DATE, */ '2007-07-18', @@ -231,7 +231,7 @@ INSERT into t31 values (1, 1, 3, 'third', Warnings: Warning 1264 Out of range value for column 'f5' at row 1 Warning 1264 Out of range value for column 'f24' at row 1 -INSERT into t31 values (1, 1, 4, 'fourth', +insert ignore into t31 values (1, 1, 4, 'fourth', /* f5 BIGINT, */ 333333333333333333333333, /* f6 BLOB, */ '3333333333333333333333', /* f7 DATE, */ '2007-07-18', @@ -409,7 +409,7 @@ connection master; update t31 set f5=555555555555555 where f3=6; update t31 set f2=2 where f3=2; update t31 set f1=NULL where f3=1; -update t31 set f3=NULL, f27=NULL, f35='f35 new value' where f3=3; +update ignore t31 set f3=NULL, f27=NULL, f35='f35 new value' where f3=3; Warnings: Warning 1048 Column 'f3' cannot be null diff --git a/mysql-test/suite/rpl/r/rpl_hrtime.result b/mysql-test/suite/rpl/r/rpl_hrtime.result index eb470fa2274..7717dcf6700 100644 --- a/mysql-test/suite/rpl/r/rpl_hrtime.result +++ b/mysql-test/suite/rpl/r/rpl_hrtime.result @@ -38,7 +38,7 @@ use `test`/*!*/; SET TIMESTAMP=1293832861/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/suite/rpl/r/rpl_mdev382.result b/mysql-test/suite/rpl/r/rpl_mdev382.result index 0d75d1c2000..ee9377906ad 100644 --- a/mysql-test/suite/rpl/r/rpl_mdev382.result +++ b/mysql-test/suite/rpl/r/rpl_mdev382.result @@ -389,7 +389,7 @@ use `ts``et`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1342177280/*!*/; +SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; diff --git a/mysql-test/suite/rpl/r/rpl_replicate_do.result b/mysql-test/suite/rpl/r/rpl_replicate_do.result index 115c27d9387..f560f78be45 100644 --- a/mysql-test/suite/rpl/r/rpl_replicate_do.result +++ b/mysql-test/suite/rpl/r/rpl_replicate_do.result @@ -39,8 +39,8 @@ t1 t2 show triggers; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -trg1 INSERT t1 set new.b=2 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci -trg2 INSERT t2 set new.b=2 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg1 INSERT t1 set new.b=2 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg2 INSERT t2 set new.b=2 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci connection slave; connection slave; show tables; @@ -48,7 +48,7 @@ Tables_in_test t1 show triggers; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -trg1 INSERT t1 set new.b=2 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +trg1 INSERT t1 set new.b=2 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci connection master; drop trigger trg1; drop trigger trg2; diff --git a/mysql-test/suite/rpl/r/rpl_rewrt_db.result b/mysql-test/suite/rpl/r/rpl_rewrt_db.result index 4ae20824b22..f6c7e4ad54e 100644 --- a/mysql-test/suite/rpl/r/rpl_rewrt_db.result +++ b/mysql-test/suite/rpl/r/rpl_rewrt_db.result @@ -25,7 +25,7 @@ create database rewrite; connection master; use test; create table t1 (a date, b date, c date not null, d date); -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ','; +load data infile '../../std_data/loaddata1.dat' ignore into table t1 fields terminated by ','; Warnings: Warning 1265 Data truncated for column 'a' at row 1 Warning 1265 Data truncated for column 'c' at row 1 @@ -44,7 +44,7 @@ a b c d 2003-03-03 2003-03-03 2003-03-03 NULL connection master; truncate table t1; -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); +load data infile '../../std_data/loaddata1.dat' ignore into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); Warnings: Warning 1265 Data truncated for column 'c' at row 1 Warning 1265 Data truncated for column 'd' at row 1 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 ed3035299c1..1d4b31a4a87 100644 --- a/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result +++ b/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result @@ -673,33 +673,33 @@ CREATE TABLE t1 (a bit) ENGINE='MYISAM' ; INSERT IGNORE INTO t1 VALUES (NULL); INSERT INTO t1 ( a ) VALUES ( 0 ); UPDATE t1 SET a = 0 WHERE a = 1 LIMIT 3; -INSERT INTO t1 ( a ) VALUES ( 5 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); DELETE FROM t1 WHERE a < 2 LIMIT 4; DELETE FROM t1 WHERE a < 9 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 9 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 9 ); UPDATE t1 SET a = 8 WHERE a = 0 LIMIT 6; -INSERT INTO t1 ( a ) VALUES ( 8 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 8 ); UPDATE t1 SET a = 0 WHERE a < 6 LIMIT 0; -INSERT INTO t1 ( a ) VALUES ( 4 ); -INSERT INTO t1 ( a ) VALUES ( 3 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 4 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 3 ); UPDATE t1 SET a = 0 WHERE a = 7 LIMIT 6; DELETE FROM t1 WHERE a = 4 LIMIT 7; -UPDATE t1 SET a = 9 WHERE a < 2 LIMIT 9; +UPDATE IGNORE t1 SET a = 9 WHERE a < 2 LIMIT 9; UPDATE t1 SET a = 0 WHERE a < 9 LIMIT 2; DELETE FROM t1 WHERE a < 0 LIMIT 5; -INSERT INTO t1 ( a ) VALUES ( 5 ); -UPDATE t1 SET a = 4 WHERE a < 6 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 5 ); -UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 8; +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); +UPDATE IGNORE t1 SET a = 4 WHERE a < 6 LIMIT 4; +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); +UPDATE IGNORE t1 SET a = 9 WHERE a < 5 LIMIT 8; DELETE FROM t1 WHERE a < 8 LIMIT 8; -INSERT INTO t1 ( a ) VALUES ( 6 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 6 ); DELETE FROM t1 WHERE a < 6 LIMIT 7; UPDATE t1 SET a = 7 WHERE a = 3 LIMIT 7; UPDATE t1 SET a = 8 WHERE a = 0 LIMIT 6; -INSERT INTO t1 ( a ) VALUES ( 7 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 7 ); DELETE FROM t1 WHERE a < 9 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 7 ); -INSERT INTO t1 ( a ) VALUES ( 6 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 7 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 6 ); UPDATE t1 SET a = 8 WHERE a = 3 LIMIT 4; DELETE FROM t1 WHERE a = 2 LIMIT 9; DELETE FROM t1 WHERE a = 1 LIMIT 4; @@ -708,7 +708,7 @@ INSERT INTO t1 ( a ) VALUES ( 0 ); DELETE FROM t1 WHERE a < 3 LIMIT 0; UPDATE t1 SET a = 8 WHERE a = 5 LIMIT 2; INSERT INTO t1 ( a ) VALUES ( 1 ); -UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 3; +UPDATE IGNORE t1 SET a = 9 WHERE a < 5 LIMIT 3; connection slave; include/diff_tables.inc [master:t1, slave:t1] connection master; 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 2194d8855d4..1e3ddd4f289 100644 --- a/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result +++ b/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result @@ -681,33 +681,33 @@ CREATE TABLE t1 (a bit) ENGINE='INNODB' ; INSERT IGNORE INTO t1 VALUES (NULL); INSERT INTO t1 ( a ) VALUES ( 0 ); UPDATE t1 SET a = 0 WHERE a = 1 LIMIT 3; -INSERT INTO t1 ( a ) VALUES ( 5 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); DELETE FROM t1 WHERE a < 2 LIMIT 4; DELETE FROM t1 WHERE a < 9 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 9 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 9 ); UPDATE t1 SET a = 8 WHERE a = 0 LIMIT 6; -INSERT INTO t1 ( a ) VALUES ( 8 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 8 ); UPDATE t1 SET a = 0 WHERE a < 6 LIMIT 0; -INSERT INTO t1 ( a ) VALUES ( 4 ); -INSERT INTO t1 ( a ) VALUES ( 3 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 4 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 3 ); UPDATE t1 SET a = 0 WHERE a = 7 LIMIT 6; DELETE FROM t1 WHERE a = 4 LIMIT 7; -UPDATE t1 SET a = 9 WHERE a < 2 LIMIT 9; +UPDATE IGNORE t1 SET a = 9 WHERE a < 2 LIMIT 9; UPDATE t1 SET a = 0 WHERE a < 9 LIMIT 2; DELETE FROM t1 WHERE a < 0 LIMIT 5; -INSERT INTO t1 ( a ) VALUES ( 5 ); -UPDATE t1 SET a = 4 WHERE a < 6 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 5 ); -UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 8; +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); +UPDATE IGNORE t1 SET a = 4 WHERE a < 6 LIMIT 4; +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); +UPDATE IGNORE t1 SET a = 9 WHERE a < 5 LIMIT 8; DELETE FROM t1 WHERE a < 8 LIMIT 8; -INSERT INTO t1 ( a ) VALUES ( 6 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 6 ); DELETE FROM t1 WHERE a < 6 LIMIT 7; UPDATE t1 SET a = 7 WHERE a = 3 LIMIT 7; UPDATE t1 SET a = 8 WHERE a = 0 LIMIT 6; -INSERT INTO t1 ( a ) VALUES ( 7 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 7 ); DELETE FROM t1 WHERE a < 9 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 7 ); -INSERT INTO t1 ( a ) VALUES ( 6 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 7 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 6 ); UPDATE t1 SET a = 8 WHERE a = 3 LIMIT 4; DELETE FROM t1 WHERE a = 2 LIMIT 9; DELETE FROM t1 WHERE a = 1 LIMIT 4; @@ -716,7 +716,7 @@ INSERT INTO t1 ( a ) VALUES ( 0 ); DELETE FROM t1 WHERE a < 3 LIMIT 0; UPDATE t1 SET a = 8 WHERE a = 5 LIMIT 2; INSERT INTO t1 ( a ) VALUES ( 1 ); -UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 3; +UPDATE IGNORE t1 SET a = 9 WHERE a < 5 LIMIT 3; connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; include/diff_tables.inc [master:t1, slave:t1] diff --git a/mysql-test/suite/rpl/r/rpl_row_create_select.result b/mysql-test/suite/rpl/r/rpl_row_create_select.result index 5b37b409b09..b064d42982f 100644 --- a/mysql-test/suite/rpl/r/rpl_row_create_select.result +++ b/mysql-test/suite/rpl/r/rpl_row_create_select.result @@ -7,6 +7,7 @@ include/master-slave.inc connection master; #After the patch, the display width is set to a default #value of 21. +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT REPEAT('A', 1000) DIV 1 AS a; Warnings: Warning 1292 Truncated incorrect DECIMAL value: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' @@ -15,6 +16,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` bigint(21) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CONVERT(REPEAT('A', 255) USING UCS2) DIV 1 AS a; Warnings: Warning 1292 Truncated incorrect DECIMAL value: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' diff --git a/mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result b/mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result index ef40fd311d3..a558e113c77 100644 --- a/mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result +++ b/mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result @@ -6,7 +6,7 @@ connection master; CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 varchar(1) DEFAULT '', c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0, c8 bigint(20) DEFAULT 0) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 ); INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 ); -UPDATE t1 SET c5 = 'a'; +UPDATE IGNORE t1 SET c5 = 'a'; connection slave; include/diff_tables.inc [master:t1, slave:t1] connection master; @@ -19,7 +19,7 @@ connection master; CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 bigint(20) DEFAULT 0, c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 ); INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 ); -UPDATE t1 SET c5 = 'a'; +UPDATE IGNORE t1 SET c5 = 'a'; connection slave; include/diff_tables.inc [master:t1, slave:t1] connection master; diff --git a/mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result b/mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result index 84d68bb2b58..915cf030e06 100644 --- a/mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result +++ b/mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result @@ -19,7 +19,7 @@ connection master; CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 varchar(1) DEFAULT '', c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0, c8 bigint(20) DEFAULT 0) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 ); INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 ); -UPDATE t1 SET c5 = 'a'; +UPDATE IGNORE t1 SET c5 = 'a'; connection slave; include/diff_tables.inc [master:t1, slave:t1] connection master; @@ -32,7 +32,7 @@ connection master; CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 bigint(20) DEFAULT 0, c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 ); INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 ); -UPDATE t1 SET c5 = 'a'; +UPDATE IGNORE t1 SET c5 = 'a'; connection slave; include/diff_tables.inc [master:t1, slave:t1] connection master; diff --git a/mysql-test/suite/rpl/r/rpl_sp_effects.result b/mysql-test/suite/rpl/r/rpl_sp_effects.result index 31234a8101f..d6890f22b02 100644 --- a/mysql-test/suite/rpl/r/rpl_sp_effects.result +++ b/mysql-test/suite/rpl/r/rpl_sp_effects.result @@ -271,6 +271,7 @@ call sp_bug26199('\0'); select sf_bug26199(b'1111111'); sf_bug26199(b'1111111') 0 +SET STATEMENT sql_mode = '' FOR select sf_bug26199(b'101111111'); sf_bug26199(b'101111111') 0 diff --git a/mysql-test/suite/rpl/r/rpl_stm_000001.result b/mysql-test/suite/rpl/r/rpl_stm_000001.result index b8a14b380db..5680d22f233 100644 --- a/mysql-test/suite/rpl/r/rpl_stm_000001.result +++ b/mysql-test/suite/rpl/r/rpl_stm_000001.result @@ -78,7 +78,7 @@ connection master1; drop table t1; create table t1 (n int); insert into t1 values(3456); -insert into mysql.user (Host, User, Password) +insert ignore into mysql.user (Host, User, Password) VALUES ("10.10.10.%", "blafasel2", password("blafasel2")); Warnings: Warning 1364 Field 'ssl_cipher' doesn't have a default value diff --git a/mysql-test/suite/rpl/r/rpl_stm_user_variables.result b/mysql-test/suite/rpl/r/rpl_stm_user_variables.result index 5f31cff94cf..cb2120523b2 100644 --- a/mysql-test/suite/rpl/r/rpl_stm_user_variables.result +++ b/mysql-test/suite/rpl/r/rpl_stm_user_variables.result @@ -18,7 +18,7 @@ CREATE TABLE t1 (`tinyint` TINYINT, `decimal` DECIMAL(30,2)) ENGINE = MyISAM; ### insert max unsigned ### a) declarative -INSERT INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615);; +INSERT IGNORE INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615);; ######################################### SELECT * FROM t1; tinyint 127 @@ -58,7 +58,7 @@ include/diff_tables.inc [master:t1,slave:t1] connection master; TRUNCATE t1; ### b) user var -INSERT INTO t1 VALUES (@positive, +INSERT IGNORE INTO t1 VALUES (@positive, @positive, @positive, @positive, @@ -112,7 +112,7 @@ connection master; TRUNCATE t1; ### insert min signed ### a) declarative -INSERT INTO t1 VALUES (-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808,-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808);; +INSERT IGNORE INTO t1 VALUES (-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808,-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808);; ######################################### SELECT * FROM t1; tinyint -128 @@ -152,7 +152,7 @@ include/diff_tables.inc [master:t1,slave:t1] connection master; TRUNCATE t1; ### b) user var -INSERT INTO t1 VALUES (@negative, +INSERT IGNORE INTO t1 VALUES (@negative, @negative, @negative, @negative, @@ -210,12 +210,14 @@ DROP TABLE t1; connection slave; include/rpl_reset.inc connection master; +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( c INT, PRIMARY KEY (c)) Engine=MyISAM; CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW SET @aux = -1 ; SET @aux = 10294947273192243200; SET @aux1= @aux; INSERT INTO t1 VALUES (@aux) , (@aux1); ERROR 23000: Duplicate entry '2147483647' for key 'PRIMARY' +SET sql_mode = DEFAULT; connection slave; ## assertion: master and slave tables are in sync include/diff_tables.inc [master:t1,slave:t1] diff --git a/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result b/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result index d82f02ccd9f..2f7f1b07cb4 100644 --- a/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result +++ b/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result @@ -135,11 +135,13 @@ insert into t1 values(concat("for_23_",UUID())); insert into t1 select "yesterday_24_"; create table t2 ENGINE=MyISAM select rpad(UUID(),100,' '); create table t3 select 1 union select UUID(); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t4 select * from t1 where 3 in (select 1 union select 2 union select UUID() union select 3); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t5 select * from t1 where 3 in (select 1 union select 2 union select curdate() union select 3); Warnings: Warning 1292 Incorrect datetime value: '3' -insert into t5 select UUID() from t1 where 3 in (select 1 union select 2 union select 3 union select * from t4); +insert ignore into t5 select UUID() from t1 where 3 in (select 1 union select 2 union select 3 union select * from t4); create procedure foo() begin insert into t1 values("work_25_"); diff --git a/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result b/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result index 23e1813d3ff..24d7d6cebf7 100644 --- a/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result +++ b/mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result @@ -119,12 +119,12 @@ master-bin.000001 # Query # # COMMIT BEGIN; DROP TEMPORARY TABLE t1; # The rows event will binlogged after 'INSERT INTO t1 VALUES(1)' -INSERT INTO t1 VALUES(uuid()+0); +INSERT IGNORE INTO t1 VALUES(uuid()+0); COMMIT; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# -master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES(uuid()+0) +master-bin.000001 # Annotate_rows # # INSERT IGNORE INTO t1 VALUES(uuid()+0) master-bin.000001 # Table_map # # table_id: # (test.t1) master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT diff --git a/mysql-test/suite/rpl/r/rpl_temporary.result b/mysql-test/suite/rpl/r/rpl_temporary.result index 37f13c8afb0..e2999cdd225 100644 --- a/mysql-test/suite/rpl/r/rpl_temporary.result +++ b/mysql-test/suite/rpl/r/rpl_temporary.result @@ -17,7 +17,7 @@ connection slave; connection master; DROP TABLE IF EXISTS t1; CREATE TEMPORARY TABLE `t1`(`a` tinyint,`b` char(1))engine=myisam; -INSERT INTO `t1` set `a`=128,`b`='128'; +INSERT IGNORE INTO `t1` set `a`=128,`b`='128'; Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1265 Data truncated for column 'b' at row 1 @@ -25,7 +25,7 @@ connection slave; include/stop_slave.inc include/start_slave.inc connection master; -INSERT INTO `t1` set `a`=128,`b`='128'; +INSERT IGNORE INTO `t1` set `a`=128,`b`='128'; Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1265 Data truncated for column 'b' at row 1 diff --git a/mysql-test/suite/rpl/r/rpl_timezone.result b/mysql-test/suite/rpl/r/rpl_timezone.result index b9b890443eb..076f0ff20f1 100644 --- a/mysql-test/suite/rpl/r/rpl_timezone.result +++ b/mysql-test/suite/rpl/r/rpl_timezone.result @@ -45,7 +45,7 @@ connection master; connection master; delete from t1; set time_zone='UTC'; -load data infile '../../std_data/rpl_timezone2.dat' into table t1; +load data infile '../../std_data/rpl_timezone2.dat' ignore into table t1; Warnings: Warning 1265 Data truncated for column 't' at row 1 Warning 1261 Row 1 doesn't contain data for all columns @@ -125,6 +125,7 @@ connection master; CREATE TABLE t1 (a INT, b TIMESTAMP); INSERT INTO t1 VALUES (1, NOW()); SET @@session.time_zone='Japan'; +SET STATEMENT sql_mode = '' FOR UPDATE t1 SET b= '1970-01-01 08:59:59' WHERE a= 1; Warnings: Warning 1264 Out of range value for column 'b' at row 1 diff --git a/mysql-test/suite/rpl/r/rpl_trigger.result b/mysql-test/suite/rpl/r/rpl_trigger.result index dcf0c70ffc4..06d5a3c895f 100644 --- a/mysql-test/suite/rpl/r/rpl_trigger.result +++ b/mysql-test/suite/rpl/r/rpl_trigger.result @@ -1127,9 +1127,9 @@ before insert on t1 for each row follows tr1 set NEW.b := (NEW.b+1)*3; show triggers; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -tr1 INSERT t1 set NEW.b := (NEW.b+1)*2 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci -tr2 INSERT t1 set NEW.b := (NEW.b+1)*3 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci -tr3 INSERT t1 set NEW.b := (NEW.b+1)*4 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr1 INSERT t1 set NEW.b := (NEW.b+1)*2 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr2 INSERT t1 set NEW.b := (NEW.b+1)*3 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr3 INSERT t1 set NEW.b := (NEW.b+1)*4 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci insert into t1 values (1,1); select * from t1; a b @@ -1137,9 +1137,9 @@ a b connection slave; show triggers; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -tr1 INSERT t1 set NEW.b := (NEW.b+1)*2 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci -tr2 INSERT t1 set NEW.b := (NEW.b+1)*3 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci -tr3 INSERT t1 set NEW.b := (NEW.b+1)*4 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr1 INSERT t1 set NEW.b := (NEW.b+1)*2 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr2 INSERT t1 set NEW.b := (NEW.b+1)*3 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr3 INSERT t1 set NEW.b := (NEW.b+1)*4 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci select * from t1; a b 1 64 @@ -1151,11 +1151,11 @@ CREATE OR REPLACE TRIGGER tr BEFORE DELETE ON t1 FOR EACH ROW PRECEDES non_exist ERROR HY000: Referenced trigger 'non_existing_trigger' for the given action time and event type does not exist SHOW TRIGGERS; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -tr INSERT t1 SET @a=1 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr INSERT t1 SET @a=1 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci connection slave; SHOW TRIGGERS; Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation -tr INSERT t1 SET @a=1 BEFORE # NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci +tr INSERT t1 SET @a=1 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost latin1 latin1_swedish_ci latin1_swedish_ci connection master; drop table t1; include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_concurrency_error.test b/mysql-test/suite/rpl/t/rpl_concurrency_error.test index 15d5d5502a1..37a05064641 100644 --- a/mysql-test/suite/rpl/t/rpl_concurrency_error.test +++ b/mysql-test/suite/rpl/t/rpl_concurrency_error.test @@ -75,7 +75,7 @@ while ($type) SET AUTOCOMMIT = 0; } --error ER_LOCK_WAIT_TIMEOUT - eval UPDATE t SET f = 'magenta $type' WHERE f = 'red'; + eval UPDATE IGNORE t SET f = 'magenta $type' WHERE f = 'red'; eval INSERT INTO t VALUES (5 + ($type * 10),"brown"); INSERT INTO n VALUES (now(),"brown"); @@ -110,7 +110,7 @@ while ($type) SET AUTOCOMMIT = 0; } --error ER_LOCK_WAIT_TIMEOUT - eval UPDATE t SET f = 'dark blue $type' WHERE f = 'red'; + eval UPDATE IGNORE t SET f = 'dark blue $type' WHERE f = 'red'; eval INSERT INTO t VALUES (6 + ($type * 10),"brown"); INSERT INTO n VALUES (now(),"brown"); diff --git a/mysql-test/suite/rpl/t/rpl_rewrt_db.test b/mysql-test/suite/rpl/t/rpl_rewrt_db.test index aa488258c3b..235545747fa 100644 --- a/mysql-test/suite/rpl/t/rpl_rewrt_db.test +++ b/mysql-test/suite/rpl/t/rpl_rewrt_db.test @@ -34,7 +34,7 @@ create database rewrite; connection master; use test; create table t1 (a date, b date, c date not null, d date); -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ','; +load data infile '../../std_data/loaddata1.dat' ignore into table t1 fields terminated by ','; load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES; sync_slave_with_master; @@ -43,7 +43,7 @@ select * from rewrite.t1; connection master; truncate table t1; -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); +load data infile '../../std_data/loaddata1.dat' ignore into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); sync_slave_with_master; connection slave; diff --git a/mysql-test/suite/rpl/t/rpl_row_create_select.test b/mysql-test/suite/rpl/t/rpl_row_create_select.test index ca270e92d0c..d870b68f364 100644 --- a/mysql-test/suite/rpl/t/rpl_row_create_select.test +++ b/mysql-test/suite/rpl/t/rpl_row_create_select.test @@ -11,9 +11,11 @@ connection master; --echo #After the patch, the display width is set to a default --echo #value of 21. +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT REPEAT('A', 1000) DIV 1 AS a; SHOW CREATE TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CONVERT(REPEAT('A', 255) USING UCS2) DIV 1 AS a; SHOW CREATE TABLE t2; diff --git a/mysql-test/suite/rpl/t/rpl_sp_effects.test b/mysql-test/suite/rpl/t/rpl_sp_effects.test index b9d637320bb..05bd49330ed 100644 --- a/mysql-test/suite/rpl/t/rpl_sp_effects.test +++ b/mysql-test/suite/rpl/t/rpl_sp_effects.test @@ -239,6 +239,7 @@ DELIMITER ;// call sp_bug26199(b'1110'); call sp_bug26199('\0'); select sf_bug26199(b'1111111'); +SET STATEMENT sql_mode = '' FOR select sf_bug26199(b'101111111'); select sf_bug26199('\''); select hex(b) from t2; diff --git a/mysql-test/suite/rpl/t/rpl_stm_000001.test b/mysql-test/suite/rpl/t/rpl_stm_000001.test index 3a87a8f1ef9..7e8f669ff34 100644 --- a/mysql-test/suite/rpl/t/rpl_stm_000001.test +++ b/mysql-test/suite/rpl/t/rpl_stm_000001.test @@ -113,7 +113,7 @@ connection master1; drop table t1; create table t1 (n int); insert into t1 values(3456); -insert into mysql.user (Host, User, Password) +insert ignore into mysql.user (Host, User, Password) VALUES ("10.10.10.%", "blafasel2", password("blafasel2")); select select_priv,user from mysql.user where user = _binary'blafasel2'; update mysql.user set Select_priv = "Y" where User= _binary"blafasel2"; diff --git a/mysql-test/suite/rpl/t/rpl_stm_user_variables.test b/mysql-test/suite/rpl/t/rpl_stm_user_variables.test index 74e54f9624d..493ea4cd967 100644 --- a/mysql-test/suite/rpl/t/rpl_stm_user_variables.test +++ b/mysql-test/suite/rpl/t/rpl_stm_user_variables.test @@ -32,7 +32,7 @@ CREATE TABLE t1 (`tinyint` TINYINT, -- echo ### insert max unsigned -- echo ### a) declarative --- eval INSERT INTO t1 VALUES ($max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long,$max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long); +-- eval INSERT IGNORE INTO t1 VALUES ($max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long,$max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long); -- echo ######################################### -- query_vertical SELECT * FROM t1 @@ -47,7 +47,7 @@ CREATE TABLE t1 (`tinyint` TINYINT, TRUNCATE t1; -- echo ### b) user var -INSERT INTO t1 VALUES (@positive, +INSERT IGNORE INTO t1 VALUES (@positive, @positive, @positive, @positive, @@ -77,7 +77,7 @@ TRUNCATE t1; -- echo ### insert min signed -- echo ### a) declarative --- eval INSERT INTO t1 VALUES ($min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long,$min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long); +-- eval INSERT IGNORE INTO t1 VALUES ($min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long,$min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long); -- echo ######################################### -- query_vertical SELECT * FROM t1 @@ -92,7 +92,7 @@ TRUNCATE t1; TRUNCATE t1; -- echo ### b) user var -INSERT INTO t1 VALUES (@negative, +INSERT IGNORE INTO t1 VALUES (@negative, @negative, @negative, @negative, @@ -135,7 +135,7 @@ DROP TABLE t1; ##################################################################### --source include/rpl_reset.inc -- connection master - +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( c INT, PRIMARY KEY (c)) Engine=MyISAM; # offending trigger that would reset the unsigned flag for aux before @@ -146,6 +146,7 @@ SET @aux = 10294947273192243200; SET @aux1= @aux; -- error ER_DUP_ENTRY INSERT INTO t1 VALUES (@aux) , (@aux1); +SET sql_mode = DEFAULT; -- sync_slave_with_master diff --git a/mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test b/mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test index fa611538aed..070e5189949 100644 --- a/mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test +++ b/mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test @@ -187,7 +187,7 @@ DROP TEMPORARY TABLE t1; --echo # The rows event will binlogged after 'INSERT INTO t1 VALUES(1)' --disable_warnings -INSERT INTO t1 VALUES(uuid()+0); +INSERT IGNORE INTO t1 VALUES(uuid()+0); --enable_warnings COMMIT; diff --git a/mysql-test/suite/rpl/t/rpl_temporary.test b/mysql-test/suite/rpl/t/rpl_temporary.test index e3f5a0be573..729f275bb0d 100644 --- a/mysql-test/suite/rpl/t/rpl_temporary.test +++ b/mysql-test/suite/rpl/t/rpl_temporary.test @@ -80,7 +80,7 @@ disable_warnings; DROP TABLE IF EXISTS t1; enable_warnings; CREATE TEMPORARY TABLE `t1`(`a` tinyint,`b` char(1))engine=myisam; -INSERT INTO `t1` set `a`=128,`b`='128'; +INSERT IGNORE INTO `t1` set `a`=128,`b`='128'; sync_slave_with_master; @@ -88,7 +88,7 @@ source include/stop_slave.inc; source include/start_slave.inc; connection master; -INSERT INTO `t1` set `a`=128,`b`='128'; +INSERT IGNORE INTO `t1` set `a`=128,`b`='128'; sync_slave_with_master; # cleanup diff --git a/mysql-test/suite/rpl/t/rpl_timezone.test b/mysql-test/suite/rpl/t/rpl_timezone.test index 1f0220421ab..2c02cda9875 100644 --- a/mysql-test/suite/rpl/t/rpl_timezone.test +++ b/mysql-test/suite/rpl/t/rpl_timezone.test @@ -71,7 +71,7 @@ connection master; connection master; delete from t1; set time_zone='UTC'; -load data infile '../../std_data/rpl_timezone2.dat' into table t1; +load data infile '../../std_data/rpl_timezone2.dat' ignore into table t1; SELECT * FROM t1 ORDER BY n; sync_slave_with_master; set time_zone='UTC'; @@ -157,6 +157,7 @@ CREATE TABLE t1 (a INT, b TIMESTAMP); INSERT INTO t1 VALUES (1, NOW()); SET @@session.time_zone='Japan'; +SET STATEMENT sql_mode = '' FOR UPDATE t1 SET b= '1970-01-01 08:59:59' WHERE a= 1; SELECT * FROM t1 ORDER BY a; diff --git a/mysql-test/suite/sys_vars/r/sql_mode_basic.result b/mysql-test/suite/sys_vars/r/sql_mode_basic.result index b3c76b12b64..2e3ca45d4f5 100644 --- a/mysql-test/suite/sys_vars/r/sql_mode_basic.result +++ b/mysql-test/suite/sys_vars/r/sql_mode_basic.result @@ -1,22 +1,22 @@ SET @global_start_value = @@global.sql_mode; SELECT @global_start_value; @global_start_value -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SET @session_start_value = @@session.sql_mode; SELECT @session_start_value; @session_start_value -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION '#--------------------FN_DYNVARS_152_01------------------------#' SET @@global.sql_mode = ANSI; SET @@global.sql_mode = DEFAULT; SELECT @@global.sql_mode; @@global.sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SET @@session.sql_mode = ANSI; SET @@session.sql_mode = DEFAULT; SELECT @@session.sql_mode; @@session.sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION '#---------------------FN_DYNVARS_152_02-------------------------#' SET @@global.sql_mode = NULL; ERROR 42000: Variable 'sql_mode' can't be set to the value of 'NULL' @@ -420,8 +420,8 @@ ANSI_QUOTES SET @@global.sql_mode = @global_start_value; SELECT @@global.sql_mode; @@global.sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION SET @@session.sql_mode = @session_start_value; SELECT @@session.sql_mode; @@session.sql_mode -NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION diff --git a/mysql-test/suite/sys_vars/r/sql_warnings_func.result b/mysql-test/suite/sys_vars/r/sql_warnings_func.result index 91a4e8b28c0..16be59755de 100644 --- a/mysql-test/suite/sys_vars/r/sql_warnings_func.result +++ b/mysql-test/suite/sys_vars/r/sql_warnings_func.result @@ -5,17 +5,17 @@ CREATE TEMPORARY TABLE t1(a varchar(5), b varchar(20)); '#-----------------------------FN_DYNVARS_167_01------------#' SET @@sql_warnings = DEFAULT; affected rows: 0 -INSERT INTO t1 VALUES('abcdef', 'val1'); +INSERT IGNORE INTO t1 VALUES('abcdef', 'val1'); affected rows: 1 '#-----------------------------FN_DYNVARS_167_02------------------#' SET @@sql_warnings = 0; affected rows: 0 -INSERT INTO t1 VALUES('abcdef', 'val1'); +INSERT IGNORE INTO t1 VALUES('abcdef', 'val1'); affected rows: 1 '#-----------------------------FN_DYNVARS_167_03---------------#' SET @@sql_warnings = 1; affected rows: 0 -INSERT INTO t1 VALUES('abcdef', 'val1'); +INSERT IGNORE INTO t1 VALUES('abcdef', 'val1'); affected rows: 1 info: Records: 1 Duplicates: 0 Warnings: 1 '#----------------------------FN_DYNVARS_167_04---------------#' diff --git a/mysql-test/suite/sys_vars/r/sync_binlog_basic.result b/mysql-test/suite/sys_vars/r/sync_binlog_basic.result index 2f070d05e52..bb0c8136391 100644 --- a/mysql-test/suite/sys_vars/r/sync_binlog_basic.result +++ b/mysql-test/suite/sys_vars/r/sync_binlog_basic.result @@ -1,18 +1,18 @@ SET @start_value = @@global.sync_binlog; SELECT @start_value; @start_value -1 +0 '#--------------------FN_DYNVARS_168_01------------------------#' SET @@global.sync_binlog = 99; SET @@global.sync_binlog = DEFAULT; SELECT @@global.sync_binlog; @@global.sync_binlog -1 +0 '#---------------------FN_DYNVARS_168_02-------------------------#' SET @@global.sync_binlog = @start_value; SELECT @@global.sync_binlog = 0; @@global.sync_binlog = 0 -0 +1 '#--------------------FN_DYNVARS_168_03------------------------#' SET @@global.sync_binlog = 0; SELECT @@global.sync_binlog; @@ -111,4 +111,4 @@ ERROR 42S22: Unknown column 'sync_binlog' in 'field list' SET @@global.sync_binlog = @start_value; SELECT @@global.sync_binlog; @@global.sync_binlog -1 +0 diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result index ae01d4b0b29..30c4c5a59b0 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result @@ -3623,9 +3623,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_MODE SESSION_VALUE ANSI_QUOTES -GLOBAL_VALUE NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +GLOBAL_VALUE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +DEFAULT_VALUE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Sets the sql mode @@ -3861,9 +3861,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SYNC_BINLOG SESSION_VALUE NULL -GLOBAL_VALUE 1 +GLOBAL_VALUE 0 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 +DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush binary log to disk after every #th event. Use 0 (default) to disable synchronous flushing diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result index 5ac6920d42c..0f048c27caf 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result @@ -4365,9 +4365,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_MODE SESSION_VALUE ANSI_QUOTES -GLOBAL_VALUE NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +GLOBAL_VALUE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +DEFAULT_VALUE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Sets the sql mode @@ -4617,9 +4617,9 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SYNC_BINLOG SESSION_VALUE NULL -GLOBAL_VALUE 1 +GLOBAL_VALUE 0 GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 +DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush binary log to disk after every #th event. Use 0 (default) to disable synchronous flushing diff --git a/mysql-test/suite/sys_vars/t/sql_warnings_func.test b/mysql-test/suite/sys_vars/t/sql_warnings_func.test index 558c5b7d36a..8d6fafd1ed4 100644 --- a/mysql-test/suite/sys_vars/t/sql_warnings_func.test +++ b/mysql-test/suite/sys_vars/t/sql_warnings_func.test @@ -42,7 +42,7 @@ CREATE TEMPORARY TABLE t1(a varchar(5), b varchar(20)); # SET @@sql_warnings = DEFAULT; -INSERT INTO t1 VALUES('abcdef', 'val1'); +INSERT IGNORE INTO t1 VALUES('abcdef', 'val1'); --echo '#-----------------------------FN_DYNVARS_167_02------------------#' # @@ -51,7 +51,7 @@ INSERT INTO t1 VALUES('abcdef', 'val1'); SET @@sql_warnings = 0; -INSERT INTO t1 VALUES('abcdef', 'val1'); +INSERT IGNORE INTO t1 VALUES('abcdef', 'val1'); --echo '#-----------------------------FN_DYNVARS_167_03---------------#' # @@ -60,7 +60,7 @@ INSERT INTO t1 VALUES('abcdef', 'val1'); SET @@sql_warnings = 1; -INSERT INTO t1 VALUES('abcdef', 'val1'); +INSERT IGNORE INTO t1 VALUES('abcdef', 'val1'); --echo '#----------------------------FN_DYNVARS_167_04---------------#' diff --git a/mysql-test/suite/vcol/inc/vcol_ins_upd.inc b/mysql-test/suite/vcol/inc/vcol_ins_upd.inc index a7a43aae529..945884b3cd5 100644 --- a/mysql-test/suite/vcol/inc/vcol_ins_upd.inc +++ b/mysql-test/suite/vcol/inc/vcol_ins_upd.inc @@ -47,7 +47,7 @@ delete from t1; select * from t1; --echo # INSERT INTO tbl_name VALUES... a non-NULL value is specified against vcols -insert into t1 values (1,2,3); +insert ignore into t1 values (1,2,3); select * from t1; delete from t1; select * from t1; @@ -73,7 +73,7 @@ select * from t1; --echo # INSERT INTO tbl_name () VALUES... a non-NULL value is specified --echo # against vcols -insert into t1 (a,b) values (1,3), (2,4); +insert ignore into t1 (a,b) values (1,3), (2,4); select * from t1; delete from t1; select * from t1; @@ -101,7 +101,7 @@ select a,b,c from t1; --echo # CREATE new_table ... LIKE old_table --echo # INSERT INTO new_table SELECT * from old_table create table t2 like t1; -insert into t2 select * from t1; +insert ignore into t2 select * from t1; select * from t1; drop table t2; @@ -110,7 +110,7 @@ drop table t2; insert into t1 values (1,default,default); select * from t1; create table t2 like t1; -insert into t2 (a,b) select a,b from t1; +insert ignore into t2 (a,b) select a,b from t1; select * from t2; drop table t2; drop table t1; @@ -131,7 +131,7 @@ select * from t1; --echo # UPDATE tbl_name SET vcol=expr WHERE non-vcol=expr insert into t1 (a) values (1), (2); select * from t1; -update t1 set c=3 where a=2; +update ignore t1 set c=3 where a=2; select * from t1; delete from t1; select * from t1; @@ -147,7 +147,7 @@ select * from t1; --echo # UPDATE tbl_name SET vcol=expr WHERE vcol=expr insert into t1 (a) values (1), (2); select * from t1; -update t1 set c=3 where b=-2; +update ignore t1 set c=3 where b=-2; select * from t1; delete from t1; select * from t1; diff --git a/mysql-test/suite/vcol/inc/vcol_supported_sql_funcs.inc b/mysql-test/suite/vcol/inc/vcol_supported_sql_funcs.inc index f19bec04c7a..c3f159418b1 100644 --- a/mysql-test/suite/vcol/inc/vcol_supported_sql_funcs.inc +++ b/mysql-test/suite/vcol/inc/vcol_supported_sql_funcs.inc @@ -24,7 +24,7 @@ if ($rows) } if ($rows) { - eval insert into t1 values ($values2); + eval insert ignore into t1 values ($values2); dec $rows; } if ($rows) diff --git a/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc b/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc index f807405d18d..5acea045d0f 100644 --- a/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc +++ b/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc @@ -152,7 +152,7 @@ DROP TABLE t1,t2; --echo # --echo # Examine the number of times triggers are recalculated for updates --echo # - +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( a INTEGER UNSIGNED NULL DEFAULT NULL, b CHAR(10) NULL DEFAULT NULL, @@ -216,10 +216,12 @@ drop trigger t1_ins; drop trigger t1_update; drop table t1; +SET sql_mode = DEFAULT; + --echo # --echo # Same test, but with virtual keys --echo # - +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( a INTEGER UNSIGNED NULL DEFAULT NULL, b CHAR(10) NULL DEFAULT NULL, @@ -281,3 +283,4 @@ select * from t1; drop trigger t1_ins; drop trigger t1_update; drop table t1; +SET sql_mode = DEFAULT; diff --git a/mysql-test/suite/vcol/r/alter_inplace-9045.result b/mysql-test/suite/vcol/r/alter_inplace-9045.result index 114fb3e3c06..862685b74b5 100644 --- a/mysql-test/suite/vcol/r/alter_inplace-9045.result +++ b/mysql-test/suite/vcol/r/alter_inplace-9045.result @@ -26,6 +26,7 @@ id handle data hash 3 NULL 0 NULL alter table t1 modify column handle int not null, algorithm=inplace; ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify column handle int not null, algorithm=copy; Warnings: Warning 1265 Data truncated for column 'handle' at row 3 diff --git a/mysql-test/suite/vcol/r/load_data.result b/mysql-test/suite/vcol/r/load_data.result index 9769b55ac9a..2432cdd01a0 100644 --- a/mysql-test/suite/vcol/r/load_data.result +++ b/mysql-test/suite/vcol/r/load_data.result @@ -3,7 +3,7 @@ insert into t1 values ("a" , "b", 1), ("a" , "b", 2); create table t2 like t1 ; alter table t2 add column c4 bigint unsigned as (CONV(LEFT(MD5(concat(c1,c2,c3)), 16), 16, 10)) persistent unique key; select * into outfile 't1.csv' from t1; -load data infile 't1.csv' into table t2 ; +load data infile 't1.csv' ignore into table t2 ; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 2 doesn't contain data for all columns diff --git a/mysql-test/suite/vcol/r/update.result b/mysql-test/suite/vcol/r/update.result index 1dd80ae92b4..95b0093ed71 100644 --- a/mysql-test/suite/vcol/r/update.result +++ b/mysql-test/suite/vcol/r/update.result @@ -56,6 +56,7 @@ a b c drop table t, t2; create table t1 (a int, b int, c int, d int, e int); insert t1 values (1,2,3,4,5), (1,2,3,4,5); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t (a int primary key, b int, c blob as (b), index (c(57)), d blob, e blob as (d), index (e(57))) diff --git a/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result b/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result index e3853156b4d..f45bd8a6b55 100644 --- a/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result +++ b/mysql-test/suite/vcol/r/vcol_ins_upd_innodb.result @@ -23,7 +23,7 @@ delete from t1; select * from t1; a b c # INSERT INTO tbl_name VALUES... a non-NULL value is specified against vcols -insert into t1 values (1,2,3); +insert ignore into t1 values (1,2,3); Warnings: Warning 1906 The value specified for generated column 'b' in table 't1' ignored Warning 1906 The value specified for generated column 'c' in table 't1' ignored @@ -63,7 +63,7 @@ select * from t1; a b c # INSERT INTO tbl_name () VALUES... a non-NULL value is specified # against vcols -insert into t1 (a,b) values (1,3), (2,4); +insert ignore into t1 (a,b) values (1,3), (2,4); Warnings: Warning 1906 The value specified for generated column 'b' in table 't1' ignored Warning 1906 The value specified for generated column 'b' in table 't1' ignored @@ -105,7 +105,7 @@ a b c # CREATE new_table ... LIKE old_table # INSERT INTO new_table SELECT * from old_table create table t2 like t1; -insert into t2 select * from t1; +insert ignore into t2 select * from t1; Warnings: Warning 1906 The value specified for generated column 'b' in table 't2' ignored Warning 1906 The value specified for generated column 'c' in table 't2' ignored @@ -121,7 +121,7 @@ a b c 2 -2 -2 1 -1 -1 create table t2 like t1; -insert into t2 (a,b) select a,b from t1; +insert ignore into t2 (a,b) select a,b from t1; Warnings: Warning 1906 The value specified for generated column 'b' in table 't2' ignored Warning 1906 The value specified for generated column 'b' in table 't2' ignored @@ -157,7 +157,7 @@ select * from t1; a b c 1 -1 -1 2 -2 -2 -update t1 set c=3 where a=2; +update ignore t1 set c=3 where a=2; Warnings: Warning 1906 The value specified for generated column 'c' in table 't1' ignored select * from t1; @@ -187,7 +187,7 @@ select * from t1; a b c 1 -1 -1 2 -2 -2 -update t1 set c=3 where b=-2; +update ignore t1 set c=3 where b=-2; Warnings: Warning 1906 The value specified for generated column 'c' in table 't1' ignored select * from t1; diff --git a/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result b/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result index dcf957becae..ef8f3f00e42 100644 --- a/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result +++ b/mysql-test/suite/vcol/r/vcol_ins_upd_myisam.result @@ -23,7 +23,7 @@ delete from t1; select * from t1; a b c # INSERT INTO tbl_name VALUES... a non-NULL value is specified against vcols -insert into t1 values (1,2,3); +insert ignore into t1 values (1,2,3); Warnings: Warning 1906 The value specified for generated column 'b' in table 't1' ignored Warning 1906 The value specified for generated column 'c' in table 't1' ignored @@ -63,7 +63,7 @@ select * from t1; a b c # INSERT INTO tbl_name () VALUES... a non-NULL value is specified # against vcols -insert into t1 (a,b) values (1,3), (2,4); +insert ignore into t1 (a,b) values (1,3), (2,4); Warnings: Warning 1906 The value specified for generated column 'b' in table 't1' ignored Warning 1906 The value specified for generated column 'b' in table 't1' ignored @@ -105,7 +105,7 @@ a b c # CREATE new_table ... LIKE old_table # INSERT INTO new_table SELECT * from old_table create table t2 like t1; -insert into t2 select * from t1; +insert ignore into t2 select * from t1; Warnings: Warning 1906 The value specified for generated column 'b' in table 't2' ignored Warning 1906 The value specified for generated column 'c' in table 't2' ignored @@ -121,7 +121,7 @@ a b c 2 -2 -2 1 -1 -1 create table t2 like t1; -insert into t2 (a,b) select a,b from t1; +insert ignore into t2 (a,b) select a,b from t1; Warnings: Warning 1906 The value specified for generated column 'b' in table 't2' ignored Warning 1906 The value specified for generated column 'b' in table 't2' ignored @@ -157,7 +157,7 @@ select * from t1; a b c 1 -1 -1 2 -2 -2 -update t1 set c=3 where a=2; +update ignore t1 set c=3 where a=2; Warnings: Warning 1906 The value specified for generated column 'c' in table 't1' ignored select * from t1; @@ -187,7 +187,7 @@ select * from t1; a b c 1 -1 -1 2 -2 -2 -update t1 set c=3 where b=-2; +update ignore t1 set c=3 where b=-2; Warnings: Warning 1906 The value specified for generated column 'c' in table 't1' ignored select * from t1; diff --git a/mysql-test/suite/vcol/r/vcol_keys_myisam.result b/mysql-test/suite/vcol/r/vcol_keys_myisam.result index 078d6cfff1c..594f87bf4d3 100644 --- a/mysql-test/suite/vcol/r/vcol_keys_myisam.result +++ b/mysql-test/suite/vcol/r/vcol_keys_myisam.result @@ -360,6 +360,8 @@ vcol_enum SET('','a','b','c','d','e','f','foo','bar') AS (col_enum) VIRTUAL, UNIQUE(pk), PRIMARY KEY(pk) ) ENGINE=MyISAM; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX(col_enum,vcol_int); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX(col_year); DROP TABLE t1; diff --git a/mysql-test/suite/vcol/r/vcol_misc.result b/mysql-test/suite/vcol/r/vcol_misc.result index a917159249b..ed78731c605 100644 --- a/mysql-test/suite/vcol/r/vcol_misc.result +++ b/mysql-test/suite/vcol/r/vcol_misc.result @@ -106,10 +106,10 @@ t2 CREATE TABLE `t2` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1,t2; CREATE TABLE t1 (p int, a double NOT NULL, v double AS (ROUND(a,p)) VIRTUAL); -INSERT INTO t1 VALUES (0,1,0); +INSERT IGNORE INTO t1 VALUES (0,1,0); Warnings: Warning 1906 The value specified for generated column 'v' in table 't1' ignored -INSERT INTO t1 VALUES (NULL,0,0); +INSERT IGNORE INTO t1 VALUES (NULL,0,0); Warnings: Warning 1906 The value specified for generated column 'v' in table 't1' ignored SELECT a, p, v, ROUND(a,p), ROUND(a,p+NULL) FROM t1; @@ -300,10 +300,10 @@ b varchar(32) latin1_swedish_ci YES NULL # c int(11) NULL YES NULL VIRTUAL GENERATED # d varchar(5) latin1_swedish_ci YES NULL STORED GENERATED # INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,NULL); -UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a'; +UPDATE IGNORE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a'; Warnings: Warning 1906 The value specified for generated column 'd' in table 't1' ignored -INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a'); +INSERT IGNORE INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a'); Warnings: Warning 1906 The value specified for generated column 'd' in table 't1' ignored set sql_mode='strict_all_tables'; diff --git a/mysql-test/suite/vcol/r/vcol_select_myisam.result b/mysql-test/suite/vcol/r/vcol_select_myisam.result index 4dee9f4fca6..30d21d6792a 100644 --- a/mysql-test/suite/vcol/r/vcol_select_myisam.result +++ b/mysql-test/suite/vcol/r/vcol_select_myisam.result @@ -271,7 +271,7 @@ id select_type table type possible_keys key key_len ref rows Extra CREATE TABLE t1 (b int); INSERT INTO t1 VALUES (NULL),( 78), (185), (0), (154); CREATE TABLE t2 (a int, b int AS (a) VIRTUAL); -INSERT INTO t2 VALUES (187,187), (9,9), (187,187); +INSERT IGNORE INTO t2 VALUES (187,187), (9,9), (187,187); Warnings: Warning 1906 The value specified for generated column 'b' in table 't2' ignored Warning 1906 The value specified for generated column 'b' in table 't2' ignored diff --git a/mysql-test/suite/vcol/r/vcol_supported_sql_funcs.result b/mysql-test/suite/vcol/r/vcol_supported_sql_funcs.result index d6161751fd4..9413dbdace7 100644 --- a/mysql-test/suite/vcol/r/vcol_supported_sql_funcs.result +++ b/mysql-test/suite/vcol/r/vcol_supported_sql_funcs.result @@ -27,7 +27,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(acos(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1, default); -insert into t1 values (1.0001,default); +insert ignore into t1 values (1.0001,default); insert into t1 values (0,default); select * from t1; a b @@ -46,7 +46,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(asin(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (0.2, default); -insert into t1 values (1.0001,default); +insert ignore into t1 values (1.0001,default); select * from t1; a b 0.2 0.201358 @@ -64,7 +64,7 @@ t1 CREATE TABLE `t1` ( `c` double GENERATED ALWAYS AS (format(atan(`a`,`b`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (-2,2,default); -insert into t1 values (format(PI(),6),0,default); +insert ignore into t1 values (format(PI(),6),0,default); select * from t1; a b c -2 2 -0.785398 @@ -80,7 +80,7 @@ t1 CREATE TABLE `t1` ( `c` double GENERATED ALWAYS AS (format(atan(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (-2,default); -insert into t1 values (format(PI(),6),default); +insert ignore into t1 values (format(PI(),6),default); select * from t1; a c -2 -1.107149 @@ -98,7 +98,7 @@ t1 CREATE TABLE `t1` ( `c` double GENERATED ALWAYS AS (format(atan(`a`,`b`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (-2,2,default); -insert into t1 values (format(PI(),6),0,default); +insert ignore into t1 values (format(PI(),6),0,default); select * from t1; a b c -2 2 -0.785398 @@ -115,7 +115,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (ceiling(`a`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1.23,default); -insert into t1 values (-1.23,default); +insert ignore into t1 values (-1.23,default); select * from t1; a b 1.23 2 @@ -134,7 +134,7 @@ t1 CREATE TABLE `t1` ( `d` varchar(10) GENERATED ALWAYS AS (conv(`a`,`b`,`c`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('a',16,2,default); -insert into t1 values ('6e',18,8,default); +insert ignore into t1 values ('6e',18,8,default); insert into t1 values (-17,10,-18,default); insert into t1 values (10+'10'+'10'+0xa,10,10,default); select * from t1; @@ -170,7 +170,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(cot(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (12,default); -insert into t1 values (1,default); +insert ignore into t1 values (1,default); select * from t1; a b 12 -1.572673 @@ -187,7 +187,7 @@ t1 CREATE TABLE `t1` ( `b` mediumtext GENERATED ALWAYS AS (crc32(`a`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('MySQL',default); -insert into t1 values ('mysql',default); +insert ignore into t1 values ('mysql',default); select * from t1; a b MySQL 3259397556 @@ -204,7 +204,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(degrees(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (format(PI(),6),default); -insert into t1 values (format(PI()/2,6),default); +insert ignore into t1 values (format(PI()/2,6),default); select * from t1; a b 3.141593 180.00002 @@ -236,7 +236,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(exp(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (2,default); -insert into t1 values (-2,default); +insert ignore into t1 values (-2,default); insert into t1 values (0,default); select * from t1; a b @@ -255,7 +255,7 @@ t1 CREATE TABLE `t1` ( `b` mediumtext GENERATED ALWAYS AS (floor(`a`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1.23,default); -insert into t1 values (-1.23,default); +insert ignore into t1 values (-1.23,default); select * from t1; a b 1.23 1 @@ -272,11 +272,15 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(ln(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (2,default); -insert into t1 values (-2,default); +insert ignore into t1 values (-2,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b 2 0.693147 -2 NULL +Warnings: +Warning 1365 Division by 0 drop table t1; set sql_warnings = 0; # LOG() @@ -290,13 +294,17 @@ t1 CREATE TABLE `t1` ( `c` double GENERATED ALWAYS AS (format(log(`a`,`b`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (2,65536,default); -insert into t1 values (10,100,default); +insert ignore into t1 values (10,100,default); insert into t1 values (1,100,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b c 2 65536 16 10 100 2 1 100 NULL +Warnings: +Warning 1365 Division by 0 drop table t1; set sql_warnings = 0; set sql_warnings = 1; @@ -308,11 +316,15 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(log(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (2,default); -insert into t1 values (-2,default); +insert ignore into t1 values (-2,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b 2 0.693147 -2 NULL +Warnings: +Warning 1365 Division by 0 drop table t1; set sql_warnings = 0; # LOG2() @@ -325,11 +337,15 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(log2(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (65536,default); -insert into t1 values (-100,default); +insert ignore into t1 values (-100,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b 65536 16 -100 NULL +Warnings: +Warning 1365 Division by 0 drop table t1; set sql_warnings = 0; # LOG10() @@ -342,13 +358,17 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(log10(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (2,default); -insert into t1 values (100,default); +insert ignore into t1 values (100,default); insert into t1 values (-100,default); +Warnings: +Warning 1365 Division by 0 select * from t1; a b 2 0.30103 100 2 -100 NULL +Warnings: +Warning 1365 Division by 0 drop table t1; set sql_warnings = 0; # - @@ -376,7 +396,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` % 10) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (11,default); +insert ignore into t1 values (11,default); select * from t1; a b 1 1 @@ -393,7 +413,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` % 10) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (11,default); +insert ignore into t1 values (11,default); select * from t1; a b 1 1 @@ -456,7 +476,7 @@ t1 CREATE TABLE `t1` ( `c` int(11) GENERATED ALWAYS AS (pow(`a`,2)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default,default); -insert into t1 values (2,default,default); +insert ignore into t1 values (2,default,default); select * from t1; a b c 1 1 1 @@ -488,7 +508,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (round(`a`,0)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (-1.23,default); -insert into t1 values (-1.58,default); +insert ignore into t1 values (-1.58,default); insert into t1 values (1.58,default); select * from t1; a b @@ -507,7 +527,7 @@ t1 CREATE TABLE `t1` ( `c` int(11) GENERATED ALWAYS AS (round(`a`,`b`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1.298,1,default); -insert into t1 values (1.298,0,default); +insert ignore into t1 values (1.298,0,default); insert into t1 values (23.298,-1,default); select * from t1; a b c @@ -526,7 +546,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (sign(`a`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (-32,default); -insert into t1 values (0,default); +insert ignore into t1 values (0,default); insert into t1 values (234,default); select * from t1; a b @@ -560,7 +580,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(sqrt(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (4,default); -insert into t1 values (20,default); +insert ignore into t1 values (20,default); insert into t1 values (-16,default); select * from t1; a b @@ -579,7 +599,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (format(tan(`a`),6)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (format(PI(),6),default); -insert into t1 values (format(PI()+1,6),default); +insert ignore into t1 values (format(PI()+1,6),default); select * from t1; a b 3.141593 0 @@ -596,7 +616,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (`a` * 3) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (0,default); -insert into t1 values (1,default); +insert ignore into t1 values (1,default); insert into t1 values (2,default); select * from t1; a b @@ -615,7 +635,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (truncate(`a`,4)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1.223,default); -insert into t1 values (1.999,default); +insert ignore into t1 values (1.999,default); insert into t1 values (1.999,default); insert into t1 values (122,default); select * from t1; @@ -636,7 +656,7 @@ t1 CREATE TABLE `t1` ( `b` double GENERATED ALWAYS AS (-`a`) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (-1,default); +insert ignore into t1 values (-1,default); select * from t1; a b 1 -1 @@ -656,7 +676,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (ascii(`a`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('2',default); -insert into t1 values (2,default); +insert ignore into t1 values (2,default); insert into t1 values ('dx',default); select * from t1; a b @@ -785,7 +805,7 @@ t1 CREATE TABLE `t1` ( `d` varchar(10) GENERATED ALWAYS AS (elt(`c`,`a`,`b`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('value1','value2',1,default); -insert into t1 values ('value1','value2',2,default); +insert ignore into t1 values ('value1','value2',2,default); select * from t1; a b c d value1 value2 1 value1 @@ -818,7 +838,7 @@ t1 CREATE TABLE `t1` ( `c` int(11) GENERATED ALWAYS AS (field('aa',`a`,`b`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('aa','bb',default); -insert into t1 values ('bb','aa',default); +insert ignore into t1 values ('bb','aa',default); select * from t1; a b c aa bb 1 @@ -836,7 +856,7 @@ t1 CREATE TABLE `t1` ( `c` int(11) GENERATED ALWAYS AS (find_in_set(`a`,`b`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('aa','aa,bb,cc',default); -insert into t1 values ('aa','bb,aa,cc',default); +insert ignore into t1 values ('aa','bb,aa,cc',default); select * from t1; a b c aa aa,bb,cc 1 @@ -914,7 +934,7 @@ t1 CREATE TABLE `t1` ( `c` int(11) GENERATED ALWAYS AS (locate(`b`,`a`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('foobarbar,','bar',default); -insert into t1 values ('xbar,','foobar',default); +insert ignore into t1 values ('xbar,','foobar',default); select * from t1; a b c foobarbar, bar 4 @@ -976,7 +996,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (`a` like 'H%!o' escape '!') VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('Hello',default); -insert into t1 values ('MySQL',default); +insert ignore into t1 values ('MySQL',default); select * from t1; a b Hello 1 @@ -1023,7 +1043,7 @@ t1 CREATE TABLE `t1` ( `b` varchar(10) GENERATED ALWAYS AS (lpad(`a`,4,' ')) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('MySQL',default); -insert into t1 values ('M',default); +insert ignore into t1 values ('M',default); select * from t1; a b MySQL MySQ @@ -1040,7 +1060,7 @@ t1 CREATE TABLE `t1` ( `b` varchar(10) GENERATED ALWAYS AS (ltrim(`a`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (' MySQL',default); -insert into t1 values ('MySQL',default); +insert ignore into t1 values ('MySQL',default); select * from t1; a b MySQL MySQL @@ -1059,7 +1079,7 @@ t1 CREATE TABLE `t1` ( `d` varchar(30) GENERATED ALWAYS AS (make_set(`c`,`a`,`b`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('a','b',1,default); -insert into t1 values ('a','b',3,default); +insert ignore into t1 values ('a','b',3,default); select * from t1; a b c d a b 1 a @@ -1091,7 +1111,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (`a` not like 'H%o') VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('Hello',default); -insert into t1 values ('MySQL',default); +insert ignore into t1 values ('MySQL',default); select * from t1; a b Hello 0 @@ -1108,7 +1128,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (!(`a` regexp 'H.+o')) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('Hello',default); -insert into t1 values ('hello',default); +insert ignore into t1 values ('hello',default); select * from t1; a b Hello 0 @@ -1185,7 +1205,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (`a` regexp 'H.+o') VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('Hello',default); -insert into t1 values ('hello',default); +insert ignore into t1 values ('hello',default); select * from t1; a b Hello 1 @@ -1262,7 +1282,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (`a` regexp 'H.+o') VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('Hello',default); -insert into t1 values ('MySQL',default); +insert ignore into t1 values ('MySQL',default); select * from t1; a b Hello 1 @@ -1325,7 +1345,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (soundex(`a`) = soundex(`b`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('Hello','Hello',default); -insert into t1 values ('Hello','MySQL',default); +insert ignore into t1 values ('Hello','MySQL',default); insert into t1 values ('Hello','hello',default); select * from t1; a b c @@ -1360,7 +1380,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (strcmp(`a`,`b`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('Hello','Hello', default); -insert into t1 values ('Hello','Hello1', default); +insert ignore into t1 values ('Hello','Hello1', default); select * from t1; a b c Hello Hello 0 @@ -1485,7 +1505,7 @@ t1 CREATE TABLE `t1` ( `b` varchar(16) GENERATED ALWAYS AS (case `a` when NULL then 'asd' when 'b' then 'B' else `a` end) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (NULL,default); -insert into t1 values ('b',default); +insert ignore into t1 values ('b',default); insert into t1 values ('c',default); select * from t1; a b @@ -1505,7 +1525,7 @@ t1 CREATE TABLE `t1` ( `c` int(11) GENERATED ALWAYS AS (if(`a` = 1,`a`,`b`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,2,default); -insert into t1 values (3,4,default); +insert ignore into t1 values (3,4,default); select * from t1; a b c 1 2 1 @@ -1523,7 +1543,7 @@ t1 CREATE TABLE `t1` ( `c` varchar(10) GENERATED ALWAYS AS (ifnull(`a`,'DEFAULT')) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (NULL,'adf',default); -insert into t1 values ('a','adf',default); +insert ignore into t1 values ('a','adf',default); select * from t1; a b c NULL adf DEFAULT @@ -1540,7 +1560,7 @@ t1 CREATE TABLE `t1` ( `b` varchar(10) GENERATED ALWAYS AS (nullif(`a`,'DEFAULT')) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('DEFAULT',default); -insert into t1 values ('a',default); +insert ignore into t1 values ('a',default); select * from t1; a b DEFAULT NULL @@ -1560,7 +1580,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (`a` > 0 and `a` < 2) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (-1,default); -insert into t1 values (1,default); +insert ignore into t1 values (1,default); select * from t1; a b -1 0 @@ -1577,7 +1597,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (`a` between 0 and 2) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (-1,default); -insert into t1 values (1,default); +insert ignore into t1 values (1,default); select * from t1; a b -1 0 @@ -1594,7 +1614,7 @@ t1 CREATE TABLE `t1` ( `b` varbinary(10) GENERATED ALWAYS AS (cast(`a` as char charset binary)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('11',default); -insert into t1 values (1,default); +insert ignore into t1 values (1,default); select * from t1; a b 11 11 @@ -1611,7 +1631,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` & 5) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (0,default); +insert ignore into t1 values (0,default); select * from t1; a b 1 1 @@ -1645,7 +1665,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` | 5) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (0,default); +insert ignore into t1 values (0,default); insert into t1 values (2,default); select * from t1; a b @@ -1664,7 +1684,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` ^ 5) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (0,default); +insert ignore into t1 values (0,default); insert into t1 values (2,default); select * from t1; a b @@ -1683,7 +1703,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` DIV 5) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (7,default); +insert ignore into t1 values (7,default); select * from t1; a b 1 0 @@ -1701,7 +1721,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (`a` <=> `b`) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,1,default); -insert into t1 values (NULL,NULL,default); +insert ignore into t1 values (NULL,NULL,default); insert into t1 values (1,NULL,default); select * from t1; a b c @@ -1721,7 +1741,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (`a` = `b`) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('a','b',default); -insert into t1 values ('a','a',default); +insert ignore into t1 values ('a','a',default); select * from t1; a b c a b 0 @@ -1739,7 +1759,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (`a` >= `b`) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('a','b',default); -insert into t1 values ('a','a',default); +insert ignore into t1 values ('a','a',default); select * from t1; a b c a b 0 @@ -1757,7 +1777,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (`a` > `b`) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('a','b',default); -insert into t1 values ('a','a',default); +insert ignore into t1 values ('a','a',default); select * from t1; a b c a b 0 @@ -1774,7 +1794,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (`a` is not null) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (NULL,default); +insert ignore into t1 values (NULL,default); select * from t1; a b 1 1 @@ -1791,7 +1811,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (`a` is null) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (NULL,default); +insert ignore into t1 values (NULL,default); select * from t1; a b 1 0 @@ -1808,7 +1828,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` << 2) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (3,default); +insert ignore into t1 values (3,default); select * from t1; a b 1 4 @@ -1826,7 +1846,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (`a` <= `b`) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('b','a',default); -insert into t1 values ('b','b',default); +insert ignore into t1 values ('b','b',default); insert into t1 values ('b','c',default); select * from t1; a b c @@ -1846,7 +1866,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (`a` < `b`) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('b','a',default); -insert into t1 values ('b','b',default); +insert ignore into t1 values ('b','b',default); insert into t1 values ('b','c',default); select * from t1; a b c @@ -1865,7 +1885,7 @@ t1 CREATE TABLE `t1` ( `b` tinyint(1) GENERATED ALWAYS AS (`a` not between 0 and 2) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (-1,default); -insert into t1 values (1,default); +insert ignore into t1 values (1,default); select * from t1; a b -1 1 @@ -1883,7 +1903,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (`a` <> `b`) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('b','a',default); -insert into t1 values ('b','b',default); +insert ignore into t1 values ('b','b',default); insert into t1 values ('b','c',default); select * from t1; a b c @@ -1903,7 +1923,7 @@ t1 CREATE TABLE `t1` ( `c` tinyint(1) GENERATED ALWAYS AS (`a` <> `b`) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('b','a',default); -insert into t1 values ('b','b',default); +insert ignore into t1 values ('b','b',default); insert into t1 values ('b','c',default); select * from t1; a b c @@ -1922,7 +1942,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` > 5 or `a` < 3) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (4,default); +insert ignore into t1 values (4,default); select * from t1; a b 1 1 @@ -1939,7 +1959,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` >> 2) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (8,default); -insert into t1 values (3,default); +insert ignore into t1 values (3,default); select * from t1; a b 8 2 @@ -1956,7 +1976,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) GENERATED ALWAYS AS (`a` xor 5) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (0,default); -insert into t1 values (1,default); +insert ignore into t1 values (1,default); insert into t1 values (2,default); select * from t1; a b @@ -2204,7 +2224,7 @@ t1 CREATE TABLE `t1` ( `b` datetime GENERATED ALWAYS AS (last_day(`a`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('2003-02-05',default); -insert into t1 values ('2003-02-32',default); +insert ignore into t1 values ('2003-02-32',default); Warnings: Warning 1265 Data truncated for column 'a' at row 1 select * from t1; @@ -2253,7 +2273,7 @@ t1 CREATE TABLE `t1` ( `b` mediumtext GENERATED ALWAYS AS (microsecond(`a`)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values ('2009-12-31 12:00:00.123456',default); -insert into t1 values ('2009-12-31 23:59:59.000010',default); +insert ignore into t1 values ('2009-12-31 23:59:59.000010',default); select * from t1; a b 2009-12-31 12:00:00 0 @@ -2610,7 +2630,7 @@ t1 CREATE TABLE `t1` ( `b` mediumtext GENERATED ALWAYS AS (cast(`a` as unsigned)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (-1,default); +insert ignore into t1 values (-1,default); Warnings: Note 1105 Cast to unsigned converted negative integer to it's positive complement select * from t1; @@ -2631,7 +2651,7 @@ t1 CREATE TABLE `t1` ( `b` mediumtext GENERATED ALWAYS AS (cast(`a` as unsigned)) VIRTUAL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 insert into t1 values (1,default); -insert into t1 values (-1,default); +insert ignore into t1 values (-1,default); Warnings: Note 1105 Cast to unsigned converted negative integer to it's positive complement select * from t1; diff --git a/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result b/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result index 0a82f1006e7..dae34569d1b 100644 --- a/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result +++ b/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result @@ -128,6 +128,7 @@ DROP TABLE t1,t2; # # Examine the number of times triggers are recalculated for updates # +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( a INTEGER UNSIGNED NULL DEFAULT NULL, b CHAR(10) NULL DEFAULT NULL, @@ -215,9 +216,11 @@ a b c blob_a blob_b blob_c drop trigger t1_ins; drop trigger t1_update; drop table t1; +SET sql_mode = DEFAULT; # # Same test, but with virtual keys # +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( a INTEGER UNSIGNED NULL DEFAULT NULL, b CHAR(10) NULL DEFAULT NULL, @@ -304,3 +307,4 @@ a b c blob_a blob_b blob_c drop trigger t1_ins; drop trigger t1_update; drop table t1; +SET sql_mode = DEFAULT; diff --git a/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result b/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result index edafd474286..5cb02f3911c 100644 --- a/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result +++ b/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result @@ -128,6 +128,7 @@ DROP TABLE t1,t2; # # Examine the number of times triggers are recalculated for updates # +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( a INTEGER UNSIGNED NULL DEFAULT NULL, b CHAR(10) NULL DEFAULT NULL, @@ -215,9 +216,11 @@ a b c blob_a blob_b blob_c drop trigger t1_ins; drop trigger t1_update; drop table t1; +SET sql_mode = DEFAULT; # # Same test, but with virtual keys # +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( a INTEGER UNSIGNED NULL DEFAULT NULL, b CHAR(10) NULL DEFAULT NULL, @@ -304,3 +307,4 @@ a b c blob_a blob_b blob_c drop trigger t1_ins; drop trigger t1_update; drop table t1; +SET sql_mode = DEFAULT; diff --git a/mysql-test/suite/vcol/t/alter_inplace-9045.test b/mysql-test/suite/vcol/t/alter_inplace-9045.test index 8f59ba75bce..57723e6f447 100644 --- a/mysql-test/suite/vcol/t/alter_inplace-9045.test +++ b/mysql-test/suite/vcol/t/alter_inplace-9045.test @@ -19,6 +19,7 @@ alter table t1 modify column hash varchar(32) as (md5(handle+1)) persistent, alg select * from t1; --error ER_ALTER_OPERATION_NOT_SUPPORTED alter table t1 modify column handle int not null, algorithm=inplace; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify column handle int not null, algorithm=copy; select * from t1; alter table t1 drop index handle, algorithm=inplace; diff --git a/mysql-test/suite/vcol/t/load_data.test b/mysql-test/suite/vcol/t/load_data.test index 4db3c77244e..f4b3b60397e 100644 --- a/mysql-test/suite/vcol/t/load_data.test +++ b/mysql-test/suite/vcol/t/load_data.test @@ -6,7 +6,7 @@ insert into t1 values ("a" , "b", 1), ("a" , "b", 2); create table t2 like t1 ; alter table t2 add column c4 bigint unsigned as (CONV(LEFT(MD5(concat(c1,c2,c3)), 16), 16, 10)) persistent unique key; select * into outfile 't1.csv' from t1; -load data infile 't1.csv' into table t2 ; +load data infile 't1.csv' ignore into table t2 ; select * from t2; insert into t2 (c1,c2,c3) values ("a" , "b", 4); select * from t2; diff --git a/mysql-test/suite/vcol/t/update.test b/mysql-test/suite/vcol/t/update.test index 8326afe214f..062d9736ed8 100644 --- a/mysql-test/suite/vcol/t/update.test +++ b/mysql-test/suite/vcol/t/update.test @@ -72,6 +72,7 @@ drop table t, t2; # create table t1 (a int, b int, c int, d int, e int); insert t1 values (1,2,3,4,5), (1,2,3,4,5); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t (a int primary key, b int, c blob as (b), index (c(57)), d blob, e blob as (d), index (e(57))) diff --git a/mysql-test/suite/vcol/t/vcol_keys_myisam.test b/mysql-test/suite/vcol/t/vcol_keys_myisam.test index 049037216dc..fe7b8de8ef0 100644 --- a/mysql-test/suite/vcol/t/vcol_keys_myisam.test +++ b/mysql-test/suite/vcol/t/vcol_keys_myisam.test @@ -243,7 +243,9 @@ INSERT INTO t1 (col_date,col_datetime,col_int,col_varchar,col_timestamp,col_bit, ; --enable_query_log --disable_warnings +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX(col_enum,vcol_int); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX(col_year); --enable_warnings DROP TABLE t1; diff --git a/mysql-test/suite/vcol/t/vcol_misc.test b/mysql-test/suite/vcol/t/vcol_misc.test index 2387000c3ef..1961e2bd974 100644 --- a/mysql-test/suite/vcol/t/vcol_misc.test +++ b/mysql-test/suite/vcol/t/vcol_misc.test @@ -120,8 +120,8 @@ DROP TABLE t1,t2; # CREATE TABLE t1 (p int, a double NOT NULL, v double AS (ROUND(a,p)) VIRTUAL); -INSERT INTO t1 VALUES (0,1,0); -INSERT INTO t1 VALUES (NULL,0,0); +INSERT IGNORE INTO t1 VALUES (0,1,0); +INSERT IGNORE INTO t1 VALUES (NULL,0,0); SELECT a, p, v, ROUND(a,p), ROUND(a,p+NULL) FROM t1; DROP TABLE t1; @@ -266,8 +266,8 @@ show columns from t1; --replace_column 8 # show full columns from t1; INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,NULL); -UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a'; -INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a'); +UPDATE IGNORE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a'; +INSERT IGNORE INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a'); set sql_mode='strict_all_tables'; --error ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a'; diff --git a/mysql-test/suite/vcol/t/vcol_select_myisam.test b/mysql-test/suite/vcol/t/vcol_select_myisam.test index c14faba576d..c86ae10a4b3 100644 --- a/mysql-test/suite/vcol/t/vcol_select_myisam.test +++ b/mysql-test/suite/vcol/t/vcol_select_myisam.test @@ -57,7 +57,7 @@ CREATE TABLE t1 (b int); INSERT INTO t1 VALUES (NULL),( 78), (185), (0), (154); CREATE TABLE t2 (a int, b int AS (a) VIRTUAL); -INSERT INTO t2 VALUES (187,187), (9,9), (187,187); +INSERT IGNORE INTO t2 VALUES (187,187), (9,9), (187,187); EXPLAIN EXTENDED SELECT * FROM t1 JOIN t2 USING (b); diff --git a/mysql-test/t/adddate_454.test b/mysql-test/t/adddate_454.test index 1d69cdc9558..bbdd89b583d 100644 --- a/mysql-test/t/adddate_454.test +++ b/mysql-test/t/adddate_454.test @@ -4,6 +4,6 @@ create table t1 (d date); insert into t1 values ('2012-00-00'); select * from t1; -update t1 set d = adddate(d, interval 1 day); +update ignore t1 set d = adddate(d, interval 1 day); select * from t1; drop table t1; diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test index 5efbd7c8819..bf16757efd6 100644 --- a/mysql-test/t/alter_table.test +++ b/mysql-test/t/alter_table.test @@ -268,7 +268,7 @@ drop table if exists t1, t2; # not null columns for primary keys) create table t1 (a int, b int, c int, d int, e int, f int, g int, h int,i int, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM; -insert into t1 (a) values(1); +insert ignore into t1 (a) values(1); --replace_column 7 X 8 X 9 X 10 X 11 X 12 X 13 X 14 X show table status like 't1'; alter table t1 modify a int; @@ -276,7 +276,7 @@ alter table t1 modify a int; show table status like 't1'; drop table t1; create table t1 (a int not null, b int not null, c int not null, d int not null, e int not null, f int not null, g int not null, h int not null,i int not null, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM; -insert into t1 (a) values(1); +insert ignore into t1 (a) values(1); --replace_column 7 X 8 X 9 X 10 X 11 X 12 X 13 X 14 X show table status like 't1'; drop table t1; diff --git a/mysql-test/t/auto_increment_ranges.inc b/mysql-test/t/auto_increment_ranges.inc index 1540be0828e..dc60f07a700 100644 --- a/mysql-test/t/auto_increment_ranges.inc +++ b/mysql-test/t/auto_increment_ranges.inc @@ -29,7 +29,7 @@ truncate table t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values($range_max-1),(NULL),(NULL); truncate table t1; -eval insert into t1 values($range_max+1); +eval insert ignore into t1 values($range_max+1); select * from t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values(NULL); @@ -60,7 +60,7 @@ truncate table t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values($range_max-1),(NULL),(NULL); truncate table t1; -eval insert into t1 values($range_max+1); +eval insert ignore into t1 values($range_max+1); select * from t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values(NULL); @@ -91,7 +91,7 @@ truncate table t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values($range_max-1),(NULL),(NULL); truncate table t1; -eval insert into t1 values($range_max+1); +eval insert ignore into t1 values($range_max+1); select * from t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values(NULL); @@ -122,7 +122,7 @@ truncate table t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values($range_max-1),(NULL),(NULL); truncate table t1; -eval insert into t1 values($range_max+1); +eval insert ignore into t1 values($range_max+1); select * from t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values(NULL); @@ -153,7 +153,7 @@ truncate table t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values($range_max-1),(NULL),(NULL); truncate table t1; -eval insert into t1 values($range_max+1); +eval insert ignore into t1 values($range_max+1); select * from t1; --error HA_ERR_AUTOINC_ERANGE eval insert into t1 values(NULL); @@ -222,7 +222,7 @@ DROP TABLE t1; --echo # CREATE TABLE t1 (a smallint AUTO_INCREMENT, PRIMARY KEY (a)); INSERT INTO t1 VALUES (2); -INSERT INTO t1 VALUES (32768); +INSERT IGNORE INTO t1 VALUES (32768); --error HA_ERR_AUTOINC_ERANGE INSERT INTO t1 VALUES (NULL); SELECT * FROM t1; diff --git a/mysql-test/t/bigint.test b/mysql-test/t/bigint.test index fb18d60edd9..ae325c7d7de 100644 --- a/mysql-test/t/bigint.test +++ b/mysql-test/t/bigint.test @@ -38,6 +38,7 @@ insert into t1 (big) values (-1),(12345678901234567),(9223372036854775807),(1844 select * from t1; select min(big),max(big),max(big)-1 from t1; select min(big),max(big),max(big)-1 from t1 group by a; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify big bigint unsigned not null; select min(big),max(big),max(big)-1 from t1; select min(big),max(big),max(big)-1 from t1 group by a; @@ -48,6 +49,7 @@ select min(big),max(big),max(big)-1 from t1 group by a; alter table t1 add key (big); select min(big),max(big),max(big)-1 from t1; select min(big),max(big),max(big)-1 from t1 group by a; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify big bigint not null; select * from t1; select min(big),max(big),max(big)-1 from t1; @@ -153,7 +155,7 @@ select * from t1; drop table t1; create table t1 ( quantity decimal(2) unsigned); -insert into t1 values (500), (-500), (~0), (-1); +insert ignore into t1 values (500), (-500), (~0), (-1); select * from t1; drop table t1; diff --git a/mysql-test/t/cast.test b/mysql-test/t/cast.test index 5316c12c857..d62612f819e 100644 --- a/mysql-test/t/cast.test +++ b/mysql-test/t/cast.test @@ -174,6 +174,7 @@ select hex(cast(_latin1'a' AS char(2))) as c5; select cast(1000 as CHAR(3)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 select cast(_latin1'ab' AS char) as c1, cast(_latin1'a ' AS char) as c2, @@ -194,6 +195,7 @@ select cast(_koi8r'Æ ' AS nchar(2)) as c4, cast(_koi8r'Æ' AS nchar(2)) as c5; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 select cast(_koi8r'ÆÇ' AS nchar) as c1, cast(_koi8r'Æ ' AS nchar) as c2, @@ -421,6 +423,7 @@ DROP TABLE t1; --echo # Bug#14096619 UNABLE TO RESTORE DATABASE DUMP --echo # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT CONCAT(CAST(REPEAT('9', 1000) AS SIGNED)), CONCAT(CAST(REPEAT('9', 1000) AS UNSIGNED)); SHOW CREATE TABLE t1; diff --git a/mysql-test/t/comment_column.test b/mysql-test/t/comment_column.test index de1c9b8ce47..a4f3893dd4a 100644 --- a/mysql-test/t/comment_column.test +++ b/mysql-test/t/comment_column.test @@ -62,6 +62,7 @@ SHOW CREATE TABLE t1; # comment overflow(warning) +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD COLUMN c11 INTEGER COMMENT 'ABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdABCDEfghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1'; SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1'; diff --git a/mysql-test/t/comment_index.test b/mysql-test/t/comment_index.test index 7857d54080e..4ba1f336ddb 100644 --- a/mysql-test/t/comment_index.test +++ b/mysql-test/t/comment_index.test @@ -57,6 +57,7 @@ SHOW CREATE TABLE t1; # comment overflow(warning) +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE INDEX i11 ON t1(c11) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1'; SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1'; @@ -65,6 +66,7 @@ let $ENGINE=`select variable_value from information_schema.global_variables wher --replace_result $ENGINE ENGINE SHOW CREATE TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX (c13) COMMENT 'abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd'; SELECT table_comment,char_length(table_comment) FROM information_schema.tables WHERE table_name='t1'; SELECT column_comment,char_length(column_comment) FROM information_schema.columns WHERE table_name='t1'; diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index 0be9537350b..36fc4e4e2d0 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -71,6 +71,7 @@ create table t1 (a varchar(5) default 'abcde'); insert into t1 values(); select * from t1; --error 1067 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 alter column a set default 'abcdef'; drop table t1; @@ -431,7 +432,9 @@ drop table t1, t2; # create table t1(cenum enum('a'), cset set('b')); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t2(cenum enum('a','a'), cset set('b','b')); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t3(cenum enum('a','A','a','c','c'), cset set('b','B','b','d','d')); drop table t1, t2, t3; @@ -613,6 +616,7 @@ show create table t1; drop table t1; #--warning 1364 +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 ( a varchar(12) charset utf8 collate utf8_bin not null, b int not null, primary key (a) @@ -1731,6 +1735,7 @@ drop table t1; # MDEV-7050: MySQL#74603 - Assertion `comma_length > 0' failed in mysql_prepare_create_table # set @@session.collation_server=filename; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1(a enum('','')); drop table t1; set @@session.collation_server=default; diff --git a/mysql-test/t/ctype_big5.test b/mysql-test/t/ctype_big5.test index fe29f769a89..410203c7c86 100644 --- a/mysql-test/t/ctype_big5.test +++ b/mysql-test/t/ctype_big5.test @@ -122,7 +122,7 @@ ORDER BY head, tail; DROP TEMPORARY TABLE head, tail; SHOW CREATE TABLE t1; SELECT COUNT(*) FROM t1; -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; SELECT COUNT(*) FROM t1 WHERE a<>'?'; # # Display all characters that have upper or lower case mapping. diff --git a/mysql-test/t/ctype_cp932_binlog_stm.test b/mysql-test/t/ctype_cp932_binlog_stm.test index 1b92006c949..78e5725218a 100644 --- a/mysql-test/t/ctype_cp932_binlog_stm.test +++ b/mysql-test/t/ctype_cp932_binlog_stm.test @@ -91,13 +91,13 @@ ORDER BY head, tail; # Populate t1 with Half Width Kana [A1..DF] # --disable_warnings -INSERT t1 (code) SELECT head FROM head +INSERT IGNORE t1 (code) SELECT head FROM head WHERE (head BETWEEN 'A1' AND 'DF') ORDER BY head; --enable_warnings DROP TEMPORARY TABLE head, tail; SHOW CREATE TABLE t1; -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1 WHERE a<>'?' AND OCTET_LENGTH(a)=1; SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=2; diff --git a/mysql-test/t/ctype_eucjpms.test b/mysql-test/t/ctype_eucjpms.test index bda4cec61cc..c69abc32a03 100644 --- a/mysql-test/t/ctype_eucjpms.test +++ b/mysql-test/t/ctype_eucjpms.test @@ -421,13 +421,13 @@ CREATE TABLE t1 AS SELECT 'XXXXXX' AS code, ' ' AS a LIMIT 0; # Pupulate JIS-X-0201 range (Half Width Kana) # Expected valid code range: [8E][A1..DF] (1x63 characters) # -INSERT INTO t1 (code) SELECT concat('8E', head) FROM head +INSERT IGNORE INTO t1 (code) SELECT concat('8E', head) FROM head WHERE (head BETWEEN 'A1' AND 'DF') ORDER BY head; # # Populate JIS-X-0208 range # Expected valid codes: [A1..FE][A1..FE] (94x94=8836 characters) # -INSERT INTO t1 (code) SELECT concat(head, tail) +INSERT IGNORE INTO t1 (code) SELECT concat(head, tail) FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (head NOT BETWEEN '8E' AND '8F') AND (tail BETWEEN '20' AND 'FF') @@ -436,14 +436,14 @@ ORDER BY head, tail; # Populate JIS-X-0212 range # Expected valid codes [8F][A1..FE][A1..FE] (1x94x94=8836 characters) # -INSERT INTO t1 (code) SELECT concat('8F', head, tail) +INSERT IGNORE INTO t1 (code) SELECT concat('8F', head, tail) FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (tail BETWEEN '20' AND 'FF') ORDER BY head, tail; DROP TEMPORARY TABLE head, tail; SHOW CREATE TABLE t1; -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1 WHERE a<>''; SELECT COUNT(*) FROM t1 WHERE a<>'' AND a<>'?'; @@ -531,7 +531,7 @@ set collation_connection=eucjpms_bin; --echo # MDEV-6776 ujis and eucjmps erroneously accept 0x8EA0 as a valid byte sequence --echo # CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET eucjpms); -INSERT INTO t1 VALUES (0x8EA0); +INSERT IGNORE INTO t1 VALUES (0x8EA0); SELECT HEX(a), CHAR_LENGTH(a) FROM t1; DROP TABLE t1; --error ER_INVALID_CHARACTER_STRING @@ -575,7 +575,7 @@ DROP TABLE t1; --echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis --echo # CREATE TABLE t1 (a TEXT CHARACTER SET eucjpms); -LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET eucjpms IGNORE 4 LINES; +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' IGNORE INTO TABLE t1 CHARACTER SET eucjpms IGNORE 4 LINES; SELECT HEX(a) FROM t1; DROP TABLE t1; diff --git a/mysql-test/t/ctype_euckr.test b/mysql-test/t/ctype_euckr.test index b0b1569e540..950c60c47e5 100644 --- a/mysql-test/t/ctype_euckr.test +++ b/mysql-test/t/ctype_euckr.test @@ -46,12 +46,12 @@ insert into t1 values (0xA17A); insert into t1 values (0xA181); insert into t1 values (0xA1FE); # Insert some invalid characters -insert into t1 values (0xA140); -insert into t1 values (0xA15B); -insert into t1 values (0xA160); -insert into t1 values (0xA17B); -insert into t1 values (0xA180); -insert into t1 values (0xA1FF); +insert ignore into t1 values (0xA140); +insert ignore into t1 values (0xA15B); +insert ignore into t1 values (0xA160); +insert ignore into t1 values (0xA17B); +insert ignore into t1 values (0xA180); +insert ignore into t1 values (0xA1FF); select hex(s1), hex(convert(s1 using utf8)) from t1 order by binary s1; drop table t1; @@ -99,7 +99,7 @@ SELECT s as bad_code FROM t2 WHERE a='?' ORDER BY s; DELETE FROM t2 WHERE a='?'; ALTER TABLE t2 ADD u VARCHAR(1) CHARACTER SET utf8, ADD a2 VARCHAR(1) CHARACTER SET euckr; --disable_warnings -UPDATE t2 SET u=a, a2=u; +UPDATE IGNORE t2 SET u=a, a2=u; --enable_warnings SELECT s as unassigned_code FROM t2 WHERE u='?'; DELETE FROM t2 WHERE u='?'; @@ -144,7 +144,7 @@ WHERE (head BETWEEN '80' AND 'FF') AND (tail BETWEEN '20' AND 'FF') ORDER BY head, tail; DROP TEMPORARY TABLE head, tail; SHOW CREATE TABLE t1; -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; SELECT COUNT(*) FROM t1 WHERE a<>'?'; # # Display all characters that have upper or lower case mapping. diff --git a/mysql-test/t/ctype_gb2312.test b/mysql-test/t/ctype_gb2312.test index 8f15f72fad5..4489168a163 100644 --- a/mysql-test/t/ctype_gb2312.test +++ b/mysql-test/t/ctype_gb2312.test @@ -68,7 +68,7 @@ WHERE (head BETWEEN '80' AND 'FF') AND (tail BETWEEN '20' AND 'FF') ORDER BY head, tail; DROP TEMPORARY TABLE head, tail; SHOW CREATE TABLE t1; -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; SELECT COUNT(*) FROM t1 WHERE a<>'?'; # # Display all characters that have upper or lower case mapping. diff --git a/mysql-test/t/ctype_gbk.test b/mysql-test/t/ctype_gbk.test index 88bfda46748..aa2d15b9b71 100644 --- a/mysql-test/t/ctype_gbk.test +++ b/mysql-test/t/ctype_gbk.test @@ -103,7 +103,7 @@ WHERE (head BETWEEN '80' AND 'FF') AND (tail BETWEEN '20' AND 'FF') ORDER BY head, tail; DROP TEMPORARY TABLE head, tail; SHOW CREATE TABLE t1; -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; SELECT COUNT(*) FROM t1 WHERE a<>'?'; # # Display all characters that have upper or lower case mapping. @@ -256,7 +256,7 @@ DELETE FROM t3; --echo # Sequences that start with a tail or a bad byte, --echo # or end with a bad byte, all should be fixed. --echo # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE type1='tail' OR type1='bad' OR type2='bad' ORDER BY b; SELECT COUNT(*) FROM t3; @@ -269,7 +269,7 @@ DELETE FROM t3; --echo # Sequences that start with an ASCII or an MB2 character, --echo # followed by a non-ASCII tail, all should be fixed. --echo # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE (FIND_IN_SET('mb2',type1) OR FIND_IN_SET('ascii',type1)) AND (FIND_IN_SET('tail',type2) AND NOT FIND_IN_SET('ascii',type2)) ORDER BY b; @@ -325,7 +325,7 @@ DELETE FROM t3; --echo # Sequences that start with a tail or a bad byte, --echo # or have a bad byte, all should be fixed. --echo # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE type1='tail' OR type1='bad' OR type2='bad' OR type3='bad' ORDER BY b; SELECT COUNT(*) FROM t3; @@ -338,7 +338,7 @@ DELETE FROM t3; --echo # Sequences that start with an ASCII or an MB2 character, --echo # followed by a pure non-ASCII tail, all should be fixed. --echo # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE (FIND_IN_SET('mb2',type1) OR FIND_IN_SET('ascii',type1)) AND type2='tail' ORDER BY b; @@ -352,7 +352,7 @@ DELETE FROM t3; --echo # Sequences that consist of two ASCII or MB2 characters, --echo # followed by a pure non-ASCII tail, all should be fixed. --echo # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE (FIND_IN_SET('mb2',type1) OR FIND_IN_SET('ascii',type1)) AND (FIND_IN_SET('mb2',type2) OR FIND_IN_SET('ascii',type2)) AND type3='tail' @@ -368,7 +368,7 @@ DELETE FROM t3; --echo # Sequences that consist of two MB2 characters, --echo # followed by a non-ASCII head or tail, all should be fixed. --echo # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 WHERE FIND_IN_SET('mb2',type1) AND FIND_IN_SET('mb2',type2) AND NOT FIND_IN_SET('ascii',type3) AND NOT FIND_IN_SET('mb2',type3) @@ -412,7 +412,7 @@ DELETE FROM t3; #--echo # #--echo # Other sequences #--echo # -INSERT INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 ORDER BY b; +INSERT IGNORE INTO t3 (b,c,comment) SELECT b,b,comment FROM t2 ORDER BY b; SELECT COUNT(*) FROM t3; SELECT HEX(c),comment FROM t3 WHERE b=c ORDER BY b; SELECT HEX(c),HEX(b),comment FROM t3 WHERE b<>c ORDER BY b; @@ -428,8 +428,10 @@ DROP TABLE t1; --echo # --echo # MDEV-7661 Unexpected result for: CAST(0xHHHH AS CHAR CHARACTER SET xxx) for incorrect byte sequences --echo # +set sql_mode=''; SELECT HEX(CAST(0xA341 AS CHAR CHARACTER SET gb2312)); SELECT HEX(CONVERT(CAST(0xA341 AS CHAR CHARACTER SET gb2312) USING utf8)); +set sql_mode=default; --echo # diff --git a/mysql-test/t/ctype_latin1.test b/mysql-test/t/ctype_latin1.test index 78d5f819f57..d40cc8b459b 100644 --- a/mysql-test/t/ctype_latin1.test +++ b/mysql-test/t/ctype_latin1.test @@ -237,7 +237,7 @@ SELECT HEX(CONVERT(' SELECT HEX(CONVERT('Âx' USING latin1)); SET NAMES utf8; CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); -INSERT INTO t1 VALUES ('Â'),('Â#'); +INSERT IGNORE INTO t1 VALUES ('Â'),('Â#'); SHOW WARNINGS; SELECT HEX(a),a FROM t1; DROP TABLE t1; diff --git a/mysql-test/t/ctype_ldml.test b/mysql-test/t/ctype_ldml.test index 1d58daa89e4..a6cba4b9780 100644 --- a/mysql-test/t/ctype_ldml.test +++ b/mysql-test/t/ctype_ldml.test @@ -120,7 +120,7 @@ DROP TABLE t1; # Crash happened with a user-defined utf8 collation, # on attempt to insert a string longer than the column can store. CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_test_ci); -INSERT INTO t1 SELECT REPEAT('a',11); +INSERT IGNORE INTO t1 SELECT REPEAT('a',11); DROP TABLE t1; # diff --git a/mysql-test/t/ctype_many.test b/mysql-test/t/ctype_many.test index a51ead67eb2..a619b16416c 100644 --- a/mysql-test/t/ctype_many.test +++ b/mysql-test/t/ctype_many.test @@ -175,6 +175,7 @@ SET CHARACTER SET utf8; ALTER TABLE t1 ADD ucs2_f CHAR(32) CHARACTER SET ucs2; --disable_warnings +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CHANGE ucs2_f ucs2_f CHAR(32) UNICODE NOT NULL; --enable_warnings @@ -310,7 +311,7 @@ DROP TABLE t1; CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf32); CREATE TABLE t2 (a VARCHAR(10) CHARACTER SET ucs2); INSERT INTO t1 VALUES (0x10082), (0x12345); -INSERT INTO t2 SELECT * FROM t1; +INSERT IGNORE INTO t2 SELECT * FROM t1; SELECT HEX(a) FROM t2; DROP TABLE t1; DROP TABLE t2; diff --git a/mysql-test/t/ctype_mb.test b/mysql-test/t/ctype_mb.test index 6e369e3fa0b..cd5ab503d55 100644 --- a/mysql-test/t/ctype_mb.test +++ b/mysql-test/t/ctype_mb.test @@ -10,7 +10,7 @@ SHOW CREATE TABLE t1; DELETE FROM t1; ALTER TABLE t1 ADD c3 CHAR(4) CHARACTER SET utf8; SHOW CREATE TABLE t1; -INSERT INTO t1 VALUES ('aaaabbbbccccdddd','aaaabbbbccccdddd','aaaabbbbccccdddd'); +INSERT IGNORE INTO t1 VALUES ('aaaabbbbccccdddd','aaaabbbbccccdddd','aaaabbbbccccdddd'); SELECT * FROM t1; DROP TABLE t1; diff --git a/mysql-test/t/ctype_recoding.test b/mysql-test/t/ctype_recoding.test index 81c04fc9c30..ba2e65b3626 100644 --- a/mysql-test/t/ctype_recoding.test +++ b/mysql-test/t/ctype_recoding.test @@ -129,7 +129,7 @@ CREATE TABLE `good set names latin1; create table t1 (a char(10) character set koi8r, b text character set koi8r); insert into t1 values ('test','test'); -insert into t1 values ('ÊÃÕË','ÊÃÕË'); +insert ignore into t1 values ('ÊÃÕË','ÊÃÕË'); drop table t1; # diff --git a/mysql-test/t/ctype_sjis.test b/mysql-test/t/ctype_sjis.test index a962f69003d..9a8ce414c14 100644 --- a/mysql-test/t/ctype_sjis.test +++ b/mysql-test/t/ctype_sjis.test @@ -140,10 +140,10 @@ ORDER BY head, tail; # # Populate Half Width Kana: [A1..DF] # -INSERT t1 (code) SELECT head FROM head WHERE (head BETWEEN 'A1' AND 'DF'); +INSERT IGNORE t1 (code) SELECT head FROM head WHERE (head BETWEEN 'A1' AND 'DF'); DROP TEMPORARY TABLE head, tail; SHOW CREATE TABLE t1; -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1 WHERE a<>'?' AND OCTET_LENGTH(a)=1; SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=2; diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index 5b8c2f74528..6745d64d11b 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -413,7 +413,7 @@ SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1 (Field1 int(10) unsigned default '0'); # this should generate a "Data truncated" warning -INSERT INTO t1 VALUES ('-1'); +INSERT IGNORE INTO t1 VALUES ('-1'); DROP TABLE t1; SET NAMES latin1; @@ -794,6 +794,7 @@ SET NAMES latin1; --echo # --echo # Bug #13832953 MY_STRNXFRM_UNICODE: ASSERTION `SRC' FAILED --echo # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (c1 SET('','') CHARACTER SET ucs2); INSERT INTO t1 VALUES (''); SELECT COALESCE(c1) FROM t1 ORDER BY 1; @@ -897,7 +898,7 @@ SET sql_mode='strict_all_tables'; INSERT INTO t1 VALUES (CONVERT('9e99999999' USING ucs2)); SET sql_mode=DEFAULT; -INSERT INTO t1 VALUES (CONVERT('aaa' USING ucs2)); +INSERT IGNORE INTO t1 VALUES (CONVERT('aaa' USING ucs2)); DROP TABLE t1; diff --git a/mysql-test/t/ctype_ujis.test b/mysql-test/t/ctype_ujis.test index 17aa3850219..ff9c61c05ba 100644 --- a/mysql-test/t/ctype_ujis.test +++ b/mysql-test/t/ctype_ujis.test @@ -1254,13 +1254,13 @@ CREATE TABLE t1 AS SELECT 'XXXXXX' AS code, ' ' AS a LIMIT 0; # Pupulate JIS-X-0201 range (Half Width Kana) # Valid characters: [8E][A1-DF] # -INSERT INTO t1 (code) SELECT concat('8E', head) FROM head +INSERT IGNORE INTO t1 (code) SELECT concat('8E', head) FROM head WHERE (head BETWEEN 'A1' AND 'DF') ORDER BY head; # # Populate JIS-X-0208 range # Expected valid range: [A1..FE][A1..FE] # -INSERT INTO t1 (code) SELECT concat(head, tail) +INSERT IGNORE INTO t1 (code) SELECT concat(head, tail) FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (head NOT BETWEEN '8E' AND '8F') AND (tail BETWEEN '20' AND 'FF') @@ -1269,14 +1269,14 @@ ORDER BY head, tail; # Populate JIS-X-0212 range # Expected valid range: [8F][A1..FE][A1..FE] # -INSERT INTO t1 (code) SELECT concat('8F', head, tail) +INSERT IGNORE INTO t1 (code) SELECT concat('8F', head, tail) FROM head, tail WHERE (head BETWEEN '80' AND 'FF') AND (tail BETWEEN '80' AND 'FF') ORDER BY head, tail; DROP TEMPORARY TABLE head, tail; SHOW CREATE TABLE t1; -UPDATE t1 SET a=unhex(code) ORDER BY code; +UPDATE IGNORE t1 SET a=unhex(code) ORDER BY code; SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1 WHERE a<>'?'; SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=2; @@ -1361,7 +1361,7 @@ set collation_connection=ujis_bin; --echo # MDEV-6776 ujis and eucjmps erroneously accept 0x8EA0 as a valid byte sequence --echo # CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET ujis); -INSERT INTO t1 VALUES (0x8EA0); +INSERT IGNORE INTO t1 VALUES (0x8EA0); SELECT HEX(a), CHAR_LENGTH(a) FROM t1; DROP TABLE t1; --error ER_INVALID_CHARACTER_STRING @@ -1406,7 +1406,7 @@ SELECT HEX(a) FROM t1 ORDER BY a;DROP TABLE t1; --echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis --echo # CREATE TABLE t1 (a TEXT CHARACTER SET ujis); -LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' INTO TABLE t1 CHARACTER SET ujis IGNORE 4 LINES; +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.ujis.txt' IGNORE INTO TABLE t1 CHARACTER SET ujis IGNORE 4 LINES; SELECT HEX(a) FROM t1; DROP TABLE t1; diff --git a/mysql-test/t/ctype_ujis_ucs2.test b/mysql-test/t/ctype_ujis_ucs2.test index 1a8702b2aa9..8616eea36d1 100644 --- a/mysql-test/t/ctype_ujis_ucs2.test +++ b/mysql-test/t/ctype_ujis_ucs2.test @@ -1243,7 +1243,7 @@ update t1 set name='User defined range #2' where ujis >= 0x8FF5A1 and ujis <= 0x # Other characters are not assigned update t1 set name='UNASSIGNED' where name=''; -update t1 set ucs2=ujis, ujis2=ucs2; +update ignore t1 set ucs2=ujis, ujis2=ucs2; --echo Characters with safe Unicode round trip select hex(ujis), hex(ucs2), hex(ujis2), name from t1 where ujis=ujis2 order by ujis; --echo Characters with unsafe Unicode round trip @@ -1299,7 +1299,7 @@ insert into t1 (ucs2,name) values (0xFFE0,'U+FFE0 FULLWIDTH CENT SIGN'); insert into t1 (ucs2,name) values (0xFFE1,'U+FFE1 FULLWIDTH POUND SIGN'); insert into t1 (ucs2,name) values (0xFFE2,'U+FFE2 FULLWIDTH NOT SIGN'); insert into t1 (ucs2,name) values (0xFFE4,'U+FFE4 FULLWIDTH BROKEN BAR'); -update t1 set ujis=ucs2; +update ignore t1 set ujis=ucs2; select hex(ucs2),hex(ujis),name from t1 order by name; drop table t1; diff --git a/mysql-test/t/ctype_utf16.test b/mysql-test/t/ctype_utf16.test index c986309707e..fc16a4b8400 100644 --- a/mysql-test/t/ctype_utf16.test +++ b/mysql-test/t/ctype_utf16.test @@ -570,6 +570,7 @@ drop table t1; # create table t1 (s1 varchar(50) character set ucs2); insert into t1 values (0xdf84); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify column s1 varchar(50) character set utf16; select hex(s1) from t1; drop table t1; @@ -578,7 +579,7 @@ drop table t1; # create table t1 (s1 varchar(5) character set ucs2, s2 varchar(5) character set utf16); insert into t1 (s1) values (0xdf84); -update t1 set s2 = s1; +update ignore t1 set s2 = s1; select hex(s2) from t1; drop table t1; @@ -660,7 +661,7 @@ select left('aaa','1'); # create table t1 (a int); insert into t1 values ('-1234.1e2'); -insert into t1 values ('-1234.1e2xxxx'); +insert ignore into t1 values ('-1234.1e2xxxx'); insert into t1 values ('-1234.1e2 '); select * from t1; drop table t1; @@ -670,13 +671,14 @@ drop table t1; # create table t1 (a int); insert into t1 values ('1 '); -insert into t1 values ('1 x'); +insert ignore into t1 values ('1 x'); select * from t1; drop table t1; # # Testing auto-conversion to TEXT # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (a varchar(17000) character set utf16); show create table t1; drop table t1; diff --git a/mysql-test/t/ctype_utf16le.test b/mysql-test/t/ctype_utf16le.test index 665443bb278..79cf875852a 100644 --- a/mysql-test/t/ctype_utf16le.test +++ b/mysql-test/t/ctype_utf16le.test @@ -60,7 +60,7 @@ CREATE TABLE t1 (a VARCHAR(10), pad INT, b VARCHAR(10)) CHARACTER SET utf16le; INSERT INTO t1 VALUES (_ucs2 X'0420', 10, _ucs2 X'0421'); INSERT INTO t1 VALUES (_ucs2 X'0420', 10, _ucs2 X'04210422'); INSERT INTO t1 VALUES (_ucs2 X'0420', 10, _ucs2 X'042104220423'); -INSERT INTO t1 VALUES (_ucs2 X'0420042104220423042404250426042704280429042A042B',10,_ucs2 X'042104220423'); +INSERT IGNORE INTO t1 VALUES (_ucs2 X'0420042104220423042404250426042704280429042A042B',10,_ucs2 X'042104220423'); INSERT INTO t1 VALUES (_utf32 X'010000', 10, _ucs2 X'0421'); INSERT INTO t1 VALUES (_ucs2 X'0421', 10, _utf32 X'010000'); SELECT a, pad, b, LPAD(a, pad, b), HEX(LPAD(a, pad, b)) FROM t1; @@ -492,6 +492,7 @@ DROP TABLE t1; --echo # CREATE TABLE t1 (s1 VARCHAR(50) CHARACTER SET ucs2); INSERT INTO t1 VALUES (0xDF84); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY column s1 VARCHAR(50) CHARACTER SET utf16le; SELECT HEX(s1) FROM t1; DROP TABLE t1; @@ -501,7 +502,7 @@ DROP TABLE t1; --echo # CREATE TABLE t1 (s1 VARCHAR(5) CHARACTER SET ucs2, s2 VARCHAR(5) CHARACTER SET utf16le); INSERT INTO t1 (s1) VALUES (0xdf84); -UPDATE t1 set s2 = s1; +UPDATE IGNORE t1 set s2 = s1; SELECT HEX(s2) FROM t1; DROP TABLE t1; @@ -603,7 +604,7 @@ DROP TABLE t1; --echo # CREATE TABLE t1 (a int); INSERT INTO t1 VALUES ('-1234.1e2'); -INSERT INTO t1 VALUES ('-1234.1e2xxxx'); +INSERT IGNORE INTO t1 VALUES ('-1234.1e2xxxx'); INSERT INTO t1 VALUES ('-1234.1e2 '); INSERT INTO t1 VALUES ('123'); INSERT INTO t1 VALUES ('-124'); @@ -629,7 +630,7 @@ DROP TABLE t1; --echo # CREATE TABLE t1 (a int); INSERT INTO t1 VALUES ('1 '); -INSERT INTO t1 VALUES ('1 x'); +INSERT IGNORE INTO t1 VALUES ('1 x'); SELECT * FROM t1; DROP TABLE t1; @@ -637,6 +638,7 @@ DROP TABLE t1; --echo # --echo # Testing auto-conversion to TEXT --echo # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (a VARCHAR(17000) CHARACTER SET utf16le); SHOW CREATE TABLE t1; DROP TABLE t1; diff --git a/mysql-test/t/ctype_utf32.test b/mysql-test/t/ctype_utf32.test index f113f046d42..bb2ce1cb6e6 100644 --- a/mysql-test/t/ctype_utf32.test +++ b/mysql-test/t/ctype_utf32.test @@ -598,19 +598,19 @@ drop table t1; # create table t1 (utf32 varchar(2) character set utf32); --echo Wrong character with pad -insert into t1 values (0x110000); +insert ignore into t1 values (0x110000); --echo Wrong chsaracter without pad -insert into t1 values (0x00110000); +insert ignore into t1 values (0x00110000); --echo Wrong character with pad followed by another wrong character -insert into t1 values (0x11000000110000); +insert ignore into t1 values (0x11000000110000); --echo Good character with pad followed by bad character -insert into t1 values (0x10000000110000); +insert ignore into t1 values (0x10000000110000); --echo Good character without pad followed by bad character -insert into t1 values (0x0010000000110000); +insert ignore into t1 values (0x0010000000110000); --echo Wrong character with the second byte higher than 0x10 -insert into t1 values (0x00800037); +insert ignore into t1 values (0x00800037); --echo Wrong character with pad with the second byte higher than 0x10 -insert into t1 values (0x00800037); +insert ignore into t1 values (0x00800037); drop table t1; # @@ -700,7 +700,7 @@ select left('aaa','1'); # create table t1 (a int); insert into t1 values ('-1234.1e2'); -insert into t1 values ('-1234.1e2xxxx'); +insert ignore into t1 values ('-1234.1e2xxxx'); insert into t1 values ('-1234.1e2 '); select * from t1; drop table t1; @@ -710,13 +710,14 @@ drop table t1; # create table t1 (a int); insert into t1 values ('1 '); -insert into t1 values ('1 x'); +insert ignore into t1 values ('1 x'); select * from t1; drop table t1; # # Testing auto-conversion to TEXT # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (a varchar(17000) character set utf32); show create table t1; drop table t1; @@ -819,10 +820,10 @@ DROP TABLE t1; --echo # CREATE TABLE t1 (utf32 CHAR(5) CHARACTER SET utf32, latin1 CHAR(5) CHARACTER SET latin1); INSERT INTO t1 (utf32) VALUES (0xc581); -UPDATE t1 SET latin1 = utf32; +UPDATE IGNORE t1 SET latin1 = utf32; DELETE FROM t1; INSERT INTO t1 (utf32) VALUES (0x100cc); -UPDATE t1 SET latin1 = utf32; +UPDATE IGNORE t1 SET latin1 = utf32; DROP TABLE t1; --echo # diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test index 0ac0bcc1ddb..d1fe93d9251 100644 --- a/mysql-test/t/ctype_utf8.test +++ b/mysql-test/t/ctype_utf8.test @@ -129,26 +129,26 @@ set LC_TIME_NAMES='en_US'; # set names koi8r; create table t1 (s1 char(1) character set utf8); -insert into t1 values (_koi8r'ÁÂ'); +insert ignore into t1 values (_koi8r'ÁÂ'); select s1,hex(s1),char_length(s1),octet_length(s1) from t1; drop table t1; create table t1 (s1 tinytext character set utf8); -insert into t1 select repeat('a',300); -insert into t1 select repeat('Ñ',300); -insert into t1 select repeat('aÑ',300); -insert into t1 select repeat('Ña',300); -insert into t1 select repeat('ÑÑ',300); +insert ignore into t1 select repeat('a',300); +insert ignore into t1 select repeat('Ñ',300); +insert ignore into t1 select repeat('aÑ',300); +insert ignore into t1 select repeat('Ña',300); +insert ignore into t1 select repeat('ÑÑ',300); select hex(s1) from t1; select length(s1),char_length(s1) from t1; drop table t1; create table t1 (s1 text character set utf8); -insert into t1 select repeat('a',66000); -insert into t1 select repeat('Ñ',66000); -insert into t1 select repeat('aÑ',66000); -insert into t1 select repeat('Ña',66000); -insert into t1 select repeat('ÑÑ',66000); +insert ignore into t1 select repeat('a',66000); +insert ignore into t1 select repeat('Ñ',66000); +insert ignore into t1 select repeat('aÑ',66000); +insert ignore into t1 select repeat('Ña',66000); +insert ignore into t1 select repeat('ÑÑ',66000); select length(s1),char_length(s1) from t1; drop table t1; @@ -156,17 +156,17 @@ drop table t1; # Bug #2368 Multibyte charsets do not check that incoming data is well-formed # create table t1 (s1 char(10) character set utf8); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); select hex(s1) from t1; drop table t1; create table t1 (s1 varchar(10) character set utf8); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); select hex(s1) from t1; drop table t1; create table t1 (s1 text character set utf8); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); select hex(s1) from t1; drop table t1; @@ -837,6 +837,7 @@ DROP TABLE t1,t2; # create table t1 (a char(20) character set utf8); insert into t1 values ('123456'),('андрей'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify a char(2) character set utf8; select char_length(a), length(a), a from t1 order by a; drop table t1; @@ -1215,15 +1216,19 @@ create table t1 ( insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); select * from t1; # varchar to varchar +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(20) character set utf8 not null; select * from t1; # varchar to char +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(15) character set utf8 not null; select * from t1; # char to char +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(10) character set utf8 not null; select * from t1; # char to varchar +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(5) character set utf8 not null; select * from t1; drop table t1; @@ -1235,6 +1240,7 @@ create table t1 ( a varchar(4000) not null ) default character set utf8; insert into t1 values (repeat('a',4000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(3000) character set utf8 not null; select length(a) from t1; drop table t1; @@ -1674,6 +1680,7 @@ SET NAMES utf8; CREATE TABLE t1 (a TEXT CHARACTER SET utf8); INSERT INTO t1 VALUES (REPEAT('A',100)); SELECT OCTET_LENGTH(a) FROM t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a TINYTEXT CHARACTER SET utf8; SELECT OCTET_LENGTH(a),a FROM t1; DROP TABLE t1; @@ -2007,7 +2014,7 @@ DROP TABLE t1; --echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis --echo # CREATE TABLE t1 (a TEXT CHARACTER SET utf8); -LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8 IGNORE 4 LINES; +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' IGNORE INTO TABLE t1 CHARACTER SET utf8 IGNORE 4 LINES; SELECT HEX(a) FROM t1; DROP TABLE t1; @@ -2015,7 +2022,7 @@ DROP TABLE t1; --echo # MDEV-9874 LOAD XML INFILE does not handle well broken multi-byte characters --echo # CREATE TABLE t1 (a TEXT CHARACTER SET utf8); -LOAD XML INFILE '../../std_data/loaddata/mdev9874.xml' INTO TABLE t1 CHARACTER SET utf8 ROWS IDENTIFIED BY ''; +LOAD XML INFILE '../../std_data/loaddata/mdev9874.xml' IGNORE INTO TABLE t1 CHARACTER SET utf8 ROWS IDENTIFIED BY ''; SELECT HEX(a) FROM t1; DROP TABLE t1; diff --git a/mysql-test/t/ctype_utf8mb4.test b/mysql-test/t/ctype_utf8mb4.test index dfed66e7951..94b5d77ad90 100644 --- a/mysql-test/t/ctype_utf8mb4.test +++ b/mysql-test/t/ctype_utf8mb4.test @@ -127,26 +127,26 @@ set LC_TIME_NAMES='en_US'; # set names koi8r; create table t1 (s1 char(1) character set utf8mb4); -insert into t1 values (_koi8r'ÁÂ'); +insert ignore into t1 values (_koi8r'ÁÂ'); select s1,hex(s1),char_length(s1),octet_length(s1) from t1; drop table t1; create table t1 (s1 tinytext character set utf8mb4); -insert into t1 select repeat('a',300); -insert into t1 select repeat('Ñ',300); -insert into t1 select repeat('aÑ',300); -insert into t1 select repeat('Ña',300); -insert into t1 select repeat('ÑÑ',300); +insert ignore into t1 select repeat('a',300); +insert ignore into t1 select repeat('Ñ',300); +insert ignore into t1 select repeat('aÑ',300); +insert ignore into t1 select repeat('Ña',300); +insert ignore into t1 select repeat('ÑÑ',300); select hex(s1) from t1; select length(s1),char_length(s1) from t1; drop table t1; create table t1 (s1 text character set utf8mb4); -insert into t1 select repeat('a',66000); -insert into t1 select repeat('Ñ',66000); -insert into t1 select repeat('aÑ',66000); -insert into t1 select repeat('Ña',66000); -insert into t1 select repeat('ÑÑ',66000); +insert ignore into t1 select repeat('a',66000); +insert ignore into t1 select repeat('Ñ',66000); +insert ignore into t1 select repeat('aÑ',66000); +insert ignore into t1 select repeat('Ña',66000); +insert ignore into t1 select repeat('ÑÑ',66000); select length(s1),char_length(s1) from t1; drop table t1; @@ -154,17 +154,17 @@ drop table t1; # Bug #2368 Multibyte charsets do not check that incoming data is well-formed # create table t1 (s1 char(10) character set utf8mb4); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); select hex(s1) from t1; drop table t1; create table t1 (s1 varchar(10) character set utf8mb4); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); select hex(s1) from t1; drop table t1; create table t1 (s1 text character set utf8mb4); -insert into t1 values (0x41FF); +insert ignore into t1 values (0x41FF); select hex(s1) from t1; drop table t1; @@ -856,6 +856,7 @@ DROP TABLE t1,t2; # create table t1 (a char(20) character set utf8mb4); insert into t1 values ('123456'),('андрей'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify a char(2) character set utf8mb4; select char_length(a), length(a), a from t1 order by a; drop table t1; @@ -1225,15 +1226,19 @@ create table t1 ( insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); select * from t1; # varchar to varchar +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(20) character set utf8mb4 not null; select * from t1; # varchar to char +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(15) character set utf8mb4 not null; select * from t1; # char to char +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a char(10) character set utf8mb4 not null; select * from t1; # char to varchar +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(5) character set utf8mb4 not null; select * from t1; drop table t1; @@ -1245,6 +1250,7 @@ create table t1 ( a varchar(4000) not null ) default character set utf8mb4; insert into t1 values (repeat('a',4000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change a a varchar(3000) character set utf8mb4 not null; select length(a) from t1; drop table t1; @@ -1490,7 +1496,7 @@ create table t1 (utf8mb4 char(1) character set utf8mb4); --echo Testing [F0][90..BF][80..BF][80..BF] insert into t1 values (0xF0908080); insert into t1 values (0xF0BFBFBF); -insert into t1 values (0xF08F8080); +insert ignore into t1 values (0xF08F8080); select hex(utf8mb4) from t1 order by binary utf8mb4; delete from t1; @@ -1503,7 +1509,7 @@ delete from t1; --echo Testing [F4][80..8F][80..BF][80..BF] insert into t1 values (0xF4808080); insert into t1 values (0xF48F8080); -insert into t1 values (0xF4908080); +insert ignore into t1 values (0xF4908080); select hex(utf8mb4) from t1 order by binary utf8mb4; drop table t1; @@ -1581,12 +1587,12 @@ INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859 # Mix of 3-byte and 4-byte chars INSERT INTO t1 VALUES (65131, x'efb9abf09d849ef09d859ef09d859ef09d8480f09d859fefb9abefb9abf09d85a0efb9ab'); # All from musical chars, but 11 instead of 10 chars. truncated -INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); +INSERT IGNORE INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); SELECT u_decimal, hex(utf8mb4_encoding) FROM t1 ORDER BY utf8mb4_encoding COLLATE utf8mb4_general_ci, BINARY utf8mb4_encoding; # First invalid 4 byte value -INSERT INTO t1 VALUES (1114111, x'f5808080'); +INSERT IGNORE INTO t1 VALUES (1114111, x'f5808080'); SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE table_name= 't1' AND column_name= 'utf8mb4_encoding'; @@ -1603,13 +1609,13 @@ INSERT INTO t2 VALUES (42856, x'ea9da8'); # SMALL COMMERCIAL AT INSERT INTO t2 VALUES (65131, x'efb9ab'); # (last 4 byte character) -INSERT INTO t2 VALUES (1114111, x'f48fbfbf'); +INSERT IGNORE INTO t2 VALUES (1114111, x'f48fbfbf'); SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE table_name= 't2' AND column_name= 'utf8mb3_encoding'; # Update a 3-byte char col with a 4-byte char, error -UPDATE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; +UPDATE IGNORE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; # Update to a 3-byte char casted to 4-byte, error? UPDATE t2 SET utf8mb3_encoding= _utf8mb4 x'ea9da8' where u_decimal= 42856; @@ -1627,6 +1633,7 @@ SELECT count(*) FROM t1, t2 WHERE t1.utf8mb4_encoding > t2.utf8mb3_encoding; # Alter from 4-byte charset to 3-byte charset, error +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CONVERT TO CHARACTER SET utf8; SHOW CREATE TABLE t1; SELECT u_decimal,hex(utf8mb4_encoding),utf8mb4_encoding FROM t1; @@ -1737,6 +1744,7 @@ CREATE TABLE t1 ( ALTER TABLE t1 ADD INDEX (subject); # Alter old 'utf8' table to new 'utf8mb4' +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 DEFAULT CHARACTER SET utf8, MODIFY subject varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, @@ -1816,6 +1824,7 @@ SET NAMES utf8mb4; CREATE TABLE t1 (a TEXT CHARACTER SET utf8mb4); INSERT INTO t1 VALUES (REPEAT('😎',100)); SELECT OCTET_LENGTH(a) FROM t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a TINYTEXT CHARACTER SET utf8mb4; SELECT OCTET_LENGTH(a),a FROM t1; DROP TABLE t1; @@ -1892,7 +1901,7 @@ CREATE TABLE t1 ( a VARCHAR(32) CHARACTER SET utf8mb4, b VARCHAR(32) CHARACTER SET utf8 ); -INSERT INTO t1 SELECT 'a 😠b', 'a 😠b'; +INSERT IGNORE INTO t1 SELECT 'a 😠b', 'a 😠b'; SELECT * FROM t1; DROP TABLE t1; @@ -1909,7 +1918,7 @@ CREATE TABLE t1 ( a VARCHAR(32) CHARACTER SET utf8mb4, b VARCHAR(32) CHARACTER SET utf8 ); -INSERT INTO t1 SELECT 'a 😠b', 'a 😠b'; +INSERT IGNORE INTO t1 SELECT 'a 😠b', 'a 😠b'; SELECT * FROM t1; DROP TABLE t1; @@ -1953,7 +1962,7 @@ DROP FUNCTION f1; --echo # MDEV-9842 LOAD DATA INFILE does not work well with a TEXT column when using sjis --echo # CREATE TABLE t1 (a TEXT CHARACTER SET utf8mb4); -LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' INTO TABLE t1 CHARACTER SET utf8mb4 IGNORE 4 LINES; +LOAD DATA INFILE '../../std_data/loaddata/mdev9823.utf8mb4.txt' IGNORE INTO TABLE t1 CHARACTER SET utf8mb4 IGNORE 4 LINES; SELECT HEX(a) FROM t1; DROP TABLE t1; diff --git a/mysql-test/t/default.test b/mysql-test/t/default.test index af089f8dc94..d75966cd2dc 100644 --- a/mysql-test/t/default.test +++ b/mysql-test/t/default.test @@ -106,12 +106,12 @@ drop table t2; # multiple-row statement, the preceding rows will have been inserted. # create table bug20691 (i int, d datetime NOT NULL, dn datetime not null default '0000-00-00 00:00:00'); -insert into bug20691 values (1, DEFAULT, DEFAULT), (1, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (1, DEFAULT, DEFAULT); -insert into bug20691 (i) values (2); +insert ignore into bug20691 values (1, DEFAULT, DEFAULT), (1, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (1, DEFAULT, DEFAULT); +insert ignore into bug20691 (i) values (2); desc bug20691; -insert into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT); -insert into bug20691 (i) values (4); -insert into bug20691 values (5, DEFAULT, DEFAULT), (5, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (5, DEFAULT, DEFAULT); +insert ignore into bug20691 values (3, DEFAULT, DEFAULT), (3, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (3, DEFAULT, DEFAULT); +insert ignore into bug20691 (i) values (4); +insert ignore into bug20691 values (5, DEFAULT, DEFAULT), (5, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (5, DEFAULT, DEFAULT); SET sql_mode = 'ALLOW_INVALID_DATES'; insert into bug20691 values (6, DEFAULT, DEFAULT), (6, '1975-07-10 07:10:03', '1978-01-13 14:08:51'), (6, DEFAULT, DEFAULT); SET sql_mode = 'STRICT_ALL_TABLES'; @@ -809,7 +809,7 @@ DROP TABLE t1; --echo # CREATE TABLE t1 (a DECIMAL(30,6) DEFAULT COALESCE(CURRENT_TIME(6))); SHOW CREATE TABLE t1; -INSERT INTO t1 VALUES(); +INSERT IGNORE INTO t1 VALUES(); DROP TABLE t1; --echo # @@ -817,7 +817,7 @@ DROP TABLE t1; --echo # CREATE TABLE t1 (a DECIMAL(30,6) DEFAULT COALESCE(CURRENT_DATE)); SHOW CREATE TABLE t1; -INSERT INTO t1 VALUES(); +INSERT IGNORE INTO t1 VALUES(); DROP TABLE t1; @@ -852,7 +852,7 @@ CREATE TABLE t1 ( b DECIMAL(30,0) DEFAULT COALESCE(CURRENT_TIMESTAMP(6)) ); SHOW CREATE TABLE t1; -INSERT INTO t1 VALUES (); +INSERT IGNORE INTO t1 VALUES (); SELECT * FROM t1; DROP TABLE t1; @@ -1403,13 +1403,13 @@ CREATE TABLE t1 (a DECIMAL(10,3), b VARCHAR(10) DEFAULT CAST(a AS CHAR(10)), c VARCHAR(10) DEFAULT CAST(a AS CHAR(4))); SHOW CREATE TABLE t1; -INSERT INTO t1 (a) VALUES (123.456); +INSERT IGNORE INTO t1 (a) VALUES (123.456); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1 (a INT, b INT UNSIGNED DEFAULT CAST(a AS UNSIGNED)); SHOW CREATE TABLE t1; -INSERT INTO t1 (a) VALUES (-1); +INSERT IGNORE INTO t1 (a) VALUES (-1); SELECT * FROM t1; DROP TABLE t1; @@ -1629,7 +1629,7 @@ CREATE TABLE t1 ( x VARCHAR(30) DEFAULT EXPORT_SET(bits, v_on, v_off, v_separator, number_of_bits) ); SHOW CREATE TABLE t1; -INSERT INTO t1 VALUES (0x50006,'Y','N','',64,DEFAULT); +INSERT IGNORE INTO t1 VALUES (0x50006,'Y','N','',64,DEFAULT); SELECT * FROM t1; DROP TABLE t1; diff --git a/mysql-test/t/failed_auth_3909.test b/mysql-test/t/failed_auth_3909.test index 3179794d155..f72460691ea 100644 --- a/mysql-test/t/failed_auth_3909.test +++ b/mysql-test/t/failed_auth_3909.test @@ -7,7 +7,7 @@ source include/not_embedded.inc; # the server requests a plugin # optimize table mysql.user; -insert mysql.user (user,plugin) values ('foo','bar'),('bar','bar'),('baz','bar'); +insert ignore mysql.user (user,plugin) values ('foo','bar'),('bar','bar'),('baz','bar'); flush privileges; --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT diff --git a/mysql-test/t/fulltext.test b/mysql-test/t/fulltext.test index 9dfc49d3dfd..12d36ce645b 100644 --- a/mysql-test/t/fulltext.test +++ b/mysql-test/t/fulltext.test @@ -293,6 +293,7 @@ SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabr SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrueck'); SELECT t, collation(t),FORMAT(MATCH t AGAINST ('Osnabruck'),6) FROM t1 WHERE MATCH t AGAINST ('Osnabruck'); #alter table t1 modify t text character set latin1 collate latin1_german2_ci not null; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify t varchar(200) collate latin1_german2_ci not null; SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrück'); SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrueck'); diff --git a/mysql-test/t/func_gconcat.test b/mysql-test/t/func_gconcat.test index 44b9ad53062..abc86476a6b 100644 --- a/mysql-test/t/func_gconcat.test +++ b/mysql-test/t/func_gconcat.test @@ -543,7 +543,7 @@ SELECT LENGTH( GROUP_CONCAT( DISTINCT a ) ) FROM t2; CREATE TABLE t3( a TEXT, b INT ); INSERT INTO t3 VALUES( REPEAT( 'a', 65534 ), 1 ); INSERT INTO t3 VALUES( REPEAT( 'a', 65535 ), 2 ); -INSERT INTO t3 VALUES( REPEAT( 'a', 65536 ), 3 ); +INSERT IGNORE INTO t3 VALUES( REPEAT( 'a', 65536 ), 3 ); SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 1; SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 2; SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 3; @@ -566,7 +566,7 @@ drop table t1; # Bug #31154: group_concat() and bit fields; # create table t1(a bit not null); -insert into t1 values (), (), (); +insert ignore into t1 values (), (), (); select group_concat(distinct a) from t1; select group_concat(distinct a order by a) from t1; drop table t1; diff --git a/mysql-test/t/func_in.test b/mysql-test/t/func_in.test index 9e848aa1847..6cbd5a63706 100644 --- a/mysql-test/t/func_in.test +++ b/mysql-test/t/func_in.test @@ -477,9 +477,9 @@ CREATE TABLE t1 ( INDEX(c_datetime), INDEX(c_timestamp), INDEX(c_time), INDEX(c_year), INDEX(c_char)); -INSERT INTO t1 (c_int) VALUES (1), (2), (3), (4), (5); -INSERT INTO t1 (c_int) SELECT 0 FROM t1; -INSERT INTO t1 (c_int) SELECT 0 FROM t1; +INSERT IGNORE INTO t1 (c_int) VALUES (1), (2), (3), (4), (5); +INSERT IGNORE INTO t1 (c_int) SELECT 0 FROM t1; +INSERT IGNORE INTO t1 (c_int) SELECT 0 FROM t1; --enable_warnings diff --git a/mysql-test/t/func_like.test b/mysql-test/t/func_like.test index b65bff63298..5026bb76aa3 100644 --- a/mysql-test/t/func_like.test +++ b/mysql-test/t/func_like.test @@ -121,7 +121,7 @@ select _cp1251'andre%' like convert('andre --echo # CREATE TABLE t1(a SET('a') NOT NULL, UNIQUE KEY(a)); CREATE TABLE t2(b INT PRIMARY KEY); -INSERT INTO t1 VALUES (); +INSERT IGNORE INTO t1 VALUES (); INSERT INTO t2 VALUES (1), (2), (3); SELECT 1 FROM t2 JOIN t1 ON 1 LIKE a GROUP BY a; DROP TABLE t1, t2; diff --git a/mysql-test/t/func_math.test b/mysql-test/t/func_math.test index 08349f007e1..f1db36d605f 100644 --- a/mysql-test/t/func_math.test +++ b/mysql-test/t/func_math.test @@ -529,7 +529,7 @@ as foo; --echo # my_gcvt: Assertion `width > 0 && to != ((void *)0)' failed --echo # CREATE TABLE t1(a char(0)); -INSERT INTO t1 (SELECT -pi()); +INSERT IGNORE INTO t1 (SELECT -pi()); DROP TABLE t1; --echo # diff --git a/mysql-test/t/func_regexp_pcre.test b/mysql-test/t/func_regexp_pcre.test index c9b4c10007d..26294ce2e24 100644 --- a/mysql-test/t/func_regexp_pcre.test +++ b/mysql-test/t/func_regexp_pcre.test @@ -168,6 +168,7 @@ DROP TABLE t1; EXPLAIN EXTENDED SELECT REGEXP_REPLACE('abc','b','x'); # Check decimals +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT REGEXP_REPLACE('abc','b','x')+0; SHOW CREATE TABLE t1; DROP TABLE t1; @@ -343,6 +344,7 @@ DROP TABLE t1; EXPLAIN EXTENDED SELECT REGEXP_SUBSTR('abc','b'); # Check decimals +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT REGEXP_SUBSTR('abc','b')+0; SHOW CREATE TABLE t1; DROP TABLE t1; diff --git a/mysql-test/t/func_set.test b/mysql-test/t/func_set.test index 13f8661db49..47072ba5ffe 100644 --- a/mysql-test/t/func_set.test +++ b/mysql-test/t/func_set.test @@ -90,7 +90,7 @@ drop table t1; CREATE TABLE t1( a SET('a', 'b', 'c') ); CREATE TABLE t2( a SET('a', 'b', 'c') ); -INSERT INTO t1 VALUES ('d'); +INSERT IGNORE INTO t1 VALUES ('d'); INSERT INTO t2 VALUES (''); SELECT CONVERT( a USING latin1 ) FROM t1; diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 48872edcd4b..e039e48a888 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -551,8 +551,8 @@ drop table t1, t2; # create table t1 (c1 INT, c2 INT UNSIGNED); -insert into t1 values ('21474836461','21474836461'); -insert into t1 values ('-21474836461','-21474836461'); +insert ignore into t1 values ('21474836461','21474836461'); +insert ignore into t1 values ('-21474836461','-21474836461'); show warnings; select * from t1; drop table t1; diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test index 40a6c387448..0905ed48078 100644 --- a/mysql-test/t/func_time.test +++ b/mysql-test/t/func_time.test @@ -531,7 +531,7 @@ SELECT EXTRACT(HOUR FROM '10000:02:03'); # check if we get proper warnings if both input string truncation # and out-of-range value occur CREATE TABLE t1(f1 TIME); -INSERT INTO t1 VALUES('916:00:00 a'); +INSERT IGNORE INTO t1 VALUES('916:00:00 a'); SELECT * FROM t1; DROP TABLE t1; @@ -1294,6 +1294,7 @@ CREATE TABLE t1 (a DATE); INSERT INTO t1 VALUES ('2005-05-04'); SELECT CONCAT(FROM_UNIXTIME(CONCAT(a,'10')) MOD FROM_UNIXTIME(CONCAT(a,'10'))) AS f2 FROM t1; SELECT CHAR_LENGTH(CONCAT(FROM_UNIXTIME(CONCAT(a,'10')) MOD FROM_UNIXTIME(CONCAT(a,'10')))) AS f2 FROM t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 AS SELECT CONCAT(FROM_UNIXTIME(CONCAT(a,'10')) MOD FROM_UNIXTIME(CONCAT(a,'10'))) AS f2 FROM t1; SHOW CREATE TABLE t2; SELECT * FROM t2; diff --git a/mysql-test/t/gis-rtree.test b/mysql-test/t/gis-rtree.test index acd91a91c27..a17d691b6f2 100644 --- a/mysql-test/t/gis-rtree.test +++ b/mysql-test/t/gis-rtree.test @@ -169,7 +169,7 @@ CREATE TABLE t1 (st varchar(100)); INSERT INTO t1 VALUES ("Fake string"); CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)); --error 1416 -INSERT INTO t2 SELECT GeomFromText(st) FROM t1; +INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; drop table t1, t2; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) ENGINE=MyISAM DEFAULT CHARSET=latin1; @@ -842,7 +842,7 @@ CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) ); --error 1048 INSERT INTO t1(foo) VALUES (NULL); --error 1416 -INSERT INTO t1() VALUES (); +INSERT IGNORE INTO t1() VALUES (); --error 1416 INSERT INTO t1(foo) VALUES (''); DROP TABLE t1; diff --git a/mysql-test/t/having.test b/mysql-test/t/having.test index f826feff5c0..160b347f870 100644 --- a/mysql-test/t/having.test +++ b/mysql-test/t/having.test @@ -365,7 +365,7 @@ select * from t1 a, t1 b group by a.s1 having s1 is null; drop table t1; create table t1 (s1 char character set latin1 collate latin1_german1_ci); -insert into t1 values ('ü'),('y'); +insert ignore into t1 values ('ü'),('y'); select s1,count(s1) from t1 group by s1 collate latin1_swedish_ci having s1 = 'y'; diff --git a/mysql-test/t/help.test b/mysql-test/t/help.test index dc5dc1cee5f..802f24f80a9 100644 --- a/mysql-test/t/help.test +++ b/mysql-test/t/help.test @@ -13,22 +13,22 @@ # impossible_category_3 # impossible_function_7 -insert into mysql.help_category(help_category_id,name)values(10001,'impossible_category_1'); +insert ignore into mysql.help_category(help_category_id,name)values(10001,'impossible_category_1'); select @category1_id:= 10001; -insert into mysql.help_category(help_category_id,name)values(10002,'impossible_category_2'); +insert ignore into mysql.help_category(help_category_id,name)values(10002,'impossible_category_2'); select @category2_id:= 10002; -insert into mysql.help_category(help_category_id,name,parent_category_id)values(10003,'impossible_category_3',@category2_id); +insert ignore into mysql.help_category(help_category_id,name,parent_category_id)values(10003,'impossible_category_3',@category2_id); select @category3_id:= 10003; -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10101,'impossible_function_1',@category1_id,'description of \n impossible_function1\n','example of \n impossible_function1'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10101,'impossible_function_1',@category1_id,'description of \n impossible_function1\n','example of \n impossible_function1'); select @topic1_id:= 10101; -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10102,'impossible_function_2',@category1_id,'description of \n impossible_function2\n','example of \n impossible_function2'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10102,'impossible_function_2',@category1_id,'description of \n impossible_function2\n','example of \n impossible_function2'); select @topic2_id:= 10102; -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10103,'impossible_function_3',@category2_id,'description of \n impossible_function3\n','example of \n impossible_function3'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10103,'impossible_function_3',@category2_id,'description of \n impossible_function3\n','example of \n impossible_function3'); select @topic3_id:= 10103; -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10104,'impossible_function_4',@category2_id,'description of \n impossible_function4\n','example of \n impossible_function4'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10104,'impossible_function_4',@category2_id,'description of \n impossible_function4\n','example of \n impossible_function4'); select @topic4_id:= 10104; -insert into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10105,'impossible_function_7',@category3_id,'description of \n impossible_function5\n','example of \n impossible_function7'); +insert ignore into mysql.help_topic(help_topic_id,name,help_category_id,description,example)values(10105,'impossible_function_7',@category3_id,'description of \n impossible_function5\n','example of \n impossible_function7'); select @topic5_id:= 10105; insert into mysql.help_keyword(help_keyword_id,name)values(10201,'impossible_function_1'); diff --git a/mysql-test/t/insert.test b/mysql-test/t/insert.test index 2d95dffa17a..206c5553100 100644 --- a/mysql-test/t/insert.test +++ b/mysql-test/t/insert.test @@ -98,23 +98,23 @@ use test; create table t1(number int auto_increment primary key, original_value varchar(50), f_double double, f_float float, f_double_7_2 double(7,2), f_float_4_3 float (4,3), f_double_u double unsigned, f_float_u float unsigned, f_double_15_1_u double(15,1) unsigned, f_float_3_1_u float (3,1) unsigned); set @value= "aa"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); --query_vertical select * from t1 where number =last_insert_id() set @value= "1aa"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); --query_vertical select * from t1 where number =last_insert_id() set @value= "aa1"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); --query_vertical select * from t1 where number =last_insert_id() set @value= "1e+1111111111a"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); --query_vertical select * from t1 where number =last_insert_id() set @value= "-1e+1111111111a"; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); --query_vertical select * from t1 where number =last_insert_id() --error 1367 @@ -124,11 +124,11 @@ set @value= -1e+1111111111; set @value= 1e+111; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); --query_vertical select * from t1 where number =last_insert_id() set @value= -1e+111; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); --query_vertical select * from t1 where number =last_insert_id() set @value= 1; @@ -136,7 +136,7 @@ insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@val --query_vertical select * from t1 where number =last_insert_id() set @value= -1; -insert into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); +insert ignore into t1 values(null,@value,@value,@value,@value,@value,@value,@value,@value,@value); --query_vertical select * from t1 where number =last_insert_id() drop table t1; @@ -404,7 +404,7 @@ CREATE TABLE t1 ( ); INSERT INTO t1(a,b,c) VALUES (9.999999e+0, 9.999999e+0, 9.999e+0); -INSERT INTO t1(a,b,c) VALUES (1.225e-05, 1.225e-05, 1.225e-05); +INSERT IGNORE INTO t1(a,b,c) VALUES (1.225e-05, 1.225e-05, 1.225e-05); INSERT INTO t1(a,b) VALUES (1.225e-04, 1.225e-04); INSERT INTO t1(a,b) VALUES (1.225e-01, 1.225e-01); INSERT INTO t1(a,b) VALUES (1.225877e-01, 1.225877e-01); @@ -421,7 +421,7 @@ INSERT INTO t1(a,b) VALUES (1.25e-175, 1.25e-175); INSERT INTO t1(a,c) VALUES (1.225e+0, 1.225e+0); INSERT INTO t1(a,c) VALUES (1.37e+0, 1.37e+0); INSERT INTO t1(a,c) VALUES (-1.37e+0, -1.37e+0); -INSERT INTO t1(a,c) VALUES (1.87e-3, 1.87e-3); +INSERT IGNORE INTO t1(a,c) VALUES (1.87e-3, 1.87e-3); INSERT INTO t1(a,c) VALUES (-1.87e-2, -1.87e-2); INSERT INTO t1(a,c) VALUES (5000e+0, 5000e+0); INSERT INTO t1(a,c) VALUES (-5000e+0, -5000e+0); diff --git a/mysql-test/t/insert_select.test b/mysql-test/t/insert_select.test index bcd87c2688d..fda89f18d99 100644 --- a/mysql-test/t/insert_select.test +++ b/mysql-test/t/insert_select.test @@ -145,7 +145,7 @@ Select null, Field, Count From t1 Where Month=20030901 and Type=2; create table t2(No int not null, Field int not null, Count int not null); -insert into t2 Select null, Field, Count From t1 Where Month=20030901 and Type=2; +insert ignore into t2 Select null, Field, Count From t1 Where Month=20030901 and Type=2; select * from t2; @@ -329,11 +329,13 @@ DROP TABLE t1, t2; # Bug#44306: Assertion fail on duplicate key error in 'INSERT ... SELECT' # statements # +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1 ( a INT KEY, b INT ); INSERT INTO t1 VALUES ( 0, 1 ); --error ER_DUP_ENTRY INSERT INTO t1 ( b ) SELECT MAX( b ) FROM t1 WHERE b = 2; DROP TABLE t1; +SET sql_mode = DEFAULT; # # Bug #26207: inserts don't work with shortened index diff --git a/mysql-test/t/join_outer_innodb.test b/mysql-test/t/join_outer_innodb.test index 539d85a8b11..fe08689c80b 100644 --- a/mysql-test/t/join_outer_innodb.test +++ b/mysql-test/t/join_outer_innodb.test @@ -155,7 +155,7 @@ CREATE TABLE t1 ( PRIMARY KEY (a1), KEY a2 (a2), KEY a3 (a3), KEY a4 (a4), KEY a6 (a6), KEY a5 (a5), KEY a7 (a7), KEY a8 (a8), KEY a9 (a9) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO t1 VALUES +INSERT IGNORE INTO t1 VALUES (3360,5684,2219,1,316832,1,0,NULL,NULL,NULL), (3362,2754,597,2,316844,1,0,NULL,NULL,NULL), (3363,369,NULL,1,317295,1,0,NULL,NULL,NULL); diff --git a/mysql-test/t/key.test b/mysql-test/t/key.test index e2697effeb6..0695dc2eecb 100644 --- a/mysql-test/t/key.test +++ b/mysql-test/t/key.test @@ -46,7 +46,7 @@ CREATE TABLE t1 ( INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N'); INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N'); -INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','','','',''); +INSERT IGNORE INTO t1 VALUES (900,'Vancouver','Shared/Roomate','','','',''); INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y'); INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y'); INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y'); @@ -184,7 +184,7 @@ drop table t1; CREATE TABLE t1 (c CHAR(10) NOT NULL,i INT NOT NULL AUTO_INCREMENT, UNIQUE (c,i)); -INSERT INTO t1 (c) VALUES (NULL),(NULL); +INSERT IGNORE INTO t1 (c) VALUES (NULL),(NULL); SELECT * FROM t1; INSERT INTO t1 (c) VALUES ('a'),('a'); SELECT * FROM t1; @@ -201,8 +201,8 @@ drop table t1; # longer keys # create table t1 (i int, a char(200), b text, unique (a), unique (b(300))) charset utf8; -insert t1 values (1, repeat('a',210), repeat('b', 310)); -insert t1 values (2, repeat(0xD0B1,215), repeat(0xD0B1, 310)); +insert ignore t1 values (1, repeat('a',210), repeat('b', 310)); +insert ignore t1 values (2, repeat(0xD0B1,215), repeat(0xD0B1, 310)); select i, length(a), length(b), char_length(a), char_length(b) from t1; select i from t1 where a=repeat(_utf8 'a',200); select i from t1 where a=repeat(_utf8 0xD0B1,200); diff --git a/mysql-test/t/limit_rows_examined.test b/mysql-test/t/limit_rows_examined.test index 4997bacec57..29b3b411602 100644 --- a/mysql-test/t/limit_rows_examined.test +++ b/mysql-test/t/limit_rows_examined.test @@ -395,7 +395,7 @@ drop table t3,t3i; --echo INSERT ... SELECT CREATE TABLE t4 (a int); INSERT INTO t4 values (1), (2); -INSERT INTO t4 SELECT a + 2 FROM t4 LIMIT ROWS EXAMINED 0; +INSERT IGNORE INTO t4 SELECT a + 2 FROM t4 LIMIT ROWS EXAMINED 0; select * from t4; INSERT INTO t4 SELECT a + 2 FROM t4 LIMIT ROWS EXAMINED 6; select * from t4; diff --git a/mysql-test/t/loaddata.test b/mysql-test/t/loaddata.test index 7e529194303..f827883af85 100644 --- a/mysql-test/t/loaddata.test +++ b/mysql-test/t/loaddata.test @@ -9,12 +9,12 @@ drop table if exists t1, t2; --enable_warnings create table t1 (a date, b date, c date not null, d date); -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ','; +load data infile '../../std_data/loaddata1.dat' ignore into table t1 fields terminated by ','; load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES; SELECT * from t1; truncate table t1; -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); +load data infile '../../std_data/loaddata1.dat' ignore into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); SELECT * from t1; drop table t1; @@ -129,7 +129,7 @@ select * from t1; select @a, @b; truncate table t1; # Reading of all columns with set -load data infile '../../std_data/rpl_loaddata.dat' into table t1 set c=b; +load data infile '../../std_data/rpl_loaddata.dat' ignore into table t1 set c=b; select * from t1; truncate table t1; # now going to test fixed field-row file format @@ -198,7 +198,7 @@ create table t2(f1 int); insert into t2 values(1),(2); disable_query_log; eval select * into outfile '$MYSQLTEST_VARDIR/tmp/t2' from t2; -eval load data infile '$MYSQLTEST_VARDIR/tmp/t2' into table t1; +eval load data infile '$MYSQLTEST_VARDIR/tmp/t2' ignore into table t1; enable_query_log; select f1 from t1 where f2 <> '0000-00-00 00:00:00' order by f1; remove_file $MYSQLTEST_VARDIR/tmp/t2; @@ -207,7 +207,7 @@ disable_query_log; eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t2' FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n' FROM t2; -eval load data infile '$MYSQLTEST_VARDIR/tmp/t2' into table t1 +eval load data infile '$MYSQLTEST_VARDIR/tmp/t2' ignore into table t1 FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n'; enable_query_log; select f1 from t1 where f2 <> '0000-00-00 00:00:00' order by f1; @@ -675,7 +675,7 @@ SELECT HEX(val) FROM t1; CREATE DATABASE d2 CHARSET utf8; USE d2; CREATE TABLE t1 (val TEXT); -LOAD DATA INFILE '../../std_data/bug20683959loaddata.txt' INTO TABLE t1; +LOAD DATA INFILE '../../std_data/bug20683959loaddata.txt' IGNORE INTO TABLE t1; SELECT COUNT(*) FROM t1; SELECT HEX(val) FROM t1; diff --git a/mysql-test/t/mdev-504.test b/mysql-test/t/mdev-504.test index b96c8779c68..76232927cd9 100644 --- a/mysql-test/t/mdev-504.test +++ b/mysql-test/t/mdev-504.test @@ -51,7 +51,7 @@ while ($trial) let $query = `SELECT CASE rnd3() WHEN 1 THEN 'INSERT INTO A (pk) VALUES (NULL)' WHEN 2 THEN 'DELETE FROM A LIMIT 1' - ELSE 'UPDATE A SET fdate = 2 LIMIT 1' END`; + ELSE 'UPDATE IGNORE A SET fdate = 2 LIMIT 1' END`; --eval $query --disconnect con3 --dec $run diff --git a/mysql-test/t/multi_update.test b/mysql-test/t/multi_update.test index 4e09b2370f5..64e61f7c0b5 100644 --- a/mysql-test/t/multi_update.test +++ b/mysql-test/t/multi_update.test @@ -616,9 +616,9 @@ SET SESSION sql_safe_updates = DEFAULT; CREATE FUNCTION f1 () RETURNS BLOB RETURN 1; CREATE TABLE t1 (f1 DATE); INSERT INTO t1 VALUES('2001-01-01'); -UPDATE (SELECT 1 FROM t1 WHERE f1 = (SELECT f1() FROM t1)) x, t1 SET f1 = 1; +UPDATE IGNORE (SELECT 1 FROM t1 WHERE f1 = (SELECT f1() FROM t1)) x, t1 SET f1 = 1; CREATE view v1 as SELECT f1() FROM t1; -UPDATE (SELECT 1 FROM t1 WHERE f1 = (select * from v1)) x, t1 SET f1 = 1; +UPDATE IGNORE (SELECT 1 FROM t1 WHERE f1 = (select * from v1)) x, t1 SET f1 = 1; DROP VIEW v1; DROP FUNCTION f1; DROP TABLE t1; diff --git a/mysql-test/t/myisam-blob.test b/mysql-test/t/myisam-blob.test index ac1b45b8c6c..23de8d54ee7 100644 --- a/mysql-test/t/myisam-blob.test +++ b/mysql-test/t/myisam-blob.test @@ -30,13 +30,14 @@ check table t1; INSERT INTO t1 set data=repeat('a',18*1024*1024); select length(data) from t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify data blob; select length(data) from t1; drop table t1; CREATE TABLE t1 (data BLOB) ENGINE=myisam; INSERT INTO t1 (data) VALUES (NULL); -UPDATE t1 set data=repeat('a',18*1024*1024); +UPDATE IGNORE t1 set data=repeat('a',18*1024*1024); select length(data) from t1; drop table t1; diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index dac19c1d395..572fa55e70f 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -42,7 +42,7 @@ begin; SET SQL_WARNINGS=0; while ($1) { - eval insert into t1 (b) values(repeat(char(65+$1),65550-$1)); + eval insert ignore into t1 (b) values(repeat(char(65+$1),65550-$1)); dec $1; } commit; @@ -313,6 +313,7 @@ drop table t1; # # Test of REPAIR that once failed # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE `t1` ( `post_id` mediumint(8) unsigned NOT NULL auto_increment, `topic_id` mediumint(8) unsigned NOT NULL default '0', @@ -331,7 +332,7 @@ CREATE TABLE `t1` ( FULLTEXT KEY `post_text` (`post_text`) ) ENGINE=MyISAM; -INSERT INTO t1 (post_text) VALUES ('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'); +INSERT IGNORE INTO t1 (post_text) VALUES ('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'),('ceci est un test'); REPAIR TABLE t1; CHECK TABLE t1; @@ -1027,9 +1028,11 @@ source include/varchar.inc; create table t1 (v varchar(65530), key(v)); drop table if exists t1; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for create table t1 (v varchar(65536)); show create table t1; drop table t1; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for create table t1 (v varchar(65530) character set utf8); show create table t1; drop table t1; diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index 299698ed04b..090ed45c9f9 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -58,7 +58,7 @@ DROP TABLE t1; --echo # CREATE TABLE t1 (a double); -INSERT INTO t1 VALUES ('-9e999999'); +INSERT IGNORE INTO t1 VALUES ('-9e999999'); --exec $MYSQL_DUMP --compact test t1 DROP TABLE t1; diff --git a/mysql-test/t/mysqlslap.opt b/mysql-test/t/mysqlslap.opt new file mode 100644 index 00000000000..632f5b4c069 --- /dev/null +++ b/mysql-test/t/mysqlslap.opt @@ -0,0 +1 @@ +--sql_mode='NO_ENGINE_SUBSTITUTION' diff --git a/mysql-test/t/null.test b/mysql-test/t/null.test index 072038fae50..3de35a74a73 100644 --- a/mysql-test/t/null.test +++ b/mysql-test/t/null.test @@ -61,29 +61,29 @@ drop table t1; # Test inserting and updating with NULL # CREATE TABLE t1 (a varchar(16) NOT NULL default '', b smallint(6) NOT NULL default 0, c datetime NOT NULL default '0000-00-00 00:00:00', d smallint(6) NOT NULL default 0); -INSERT INTO t1 SET a = "", d= "2003-01-14 03:54:55"; -UPDATE t1 SET d=1/NULL; -UPDATE t1 SET d=NULL; +INSERT IGNORE INTO t1 SET a = "", d= "2003-01-14 03:54:55"; +UPDATE IGNORE t1 SET d=1/NULL; +UPDATE IGNORE t1 SET d=NULL; --error 1048 INSERT INTO t1 (a) values (null); --error 1048 INSERT INTO t1 (a) values (1/null); -INSERT INTO t1 (a) values (null),(null); +INSERT IGNORE INTO t1 (a) values (null),(null); --error 1048 INSERT INTO t1 (b) values (null); --error 1048 INSERT INTO t1 (b) values (1/null); -INSERT INTO t1 (b) values (null),(null); +INSERT IGNORE INTO t1 (b) values (null),(null); --error 1048 INSERT INTO t1 (c) values (null); --error 1048 INSERT INTO t1 (c) values (1/null); -INSERT INTO t1 (c) values (null),(null); +INSERT IGNORE INTO t1 (c) values (null),(null); --error 1048 INSERT INTO t1 (d) values (null); --error 1048 INSERT INTO t1 (d) values (1/null); -INSERT INTO t1 (d) values (null),(null); +INSERT IGNORE INTO t1 (d) values (null),(null); select * from t1; drop table t1; @@ -118,6 +118,7 @@ insert into t1 select i*2 from t1; insert into t1 values(null); explain select * from t1 where i=2 or i is null; select count(*) from t1 where i=2 or i is null; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 change i i int not null; explain select * from t1 where i=2 or i is null; select count(*) from t1 where i=2 or i is null; @@ -335,6 +336,7 @@ DROP TABLE t1,t2; --error ER_CANT_AGGREGATE_2COLLATIONS SELECT NULLIF(_latin1'a' COLLATE latin1_general_ci, _latin1'a' COLLATE latin1_bin); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(1,1), NULLIF(1,1.0), @@ -344,6 +346,7 @@ CREATE TABLE t1 AS SELECT SHOW CREATE TABLE t1; DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(1.0,1), NULLIF(1.0,1.0), @@ -353,6 +356,7 @@ CREATE TABLE t1 AS SELECT SHOW CREATE TABLE t1; DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(1e0,1), NULLIF(1e0,1.0), @@ -371,6 +375,7 @@ CREATE TABLE t1 AS SELECT SHOW CREATE TABLE t1; DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(TIMESTAMP'2001-01-01 00:00:00',1), NULLIF(TIMESTAMP'2001-01-01 00:00:00',1.0), @@ -380,6 +385,7 @@ CREATE TABLE t1 AS SELECT SHOW CREATE TABLE t1; DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(DATE'2001-01-01',1), NULLIF(DATE'2001-01-01',1.0), @@ -862,6 +868,7 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE a=2010 AND CASE WHEN 10.1=a THEN NULL EL DROP TABLE t1; --echo # Two warnings expected +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 AS SELECT NULLIF(TIMESTAMP'2001-01-01 00:00:00',1) AS a, CASE WHEN TIMESTAMP'2001-01-01 00:00:00'=1 THEN NULL diff --git a/mysql-test/t/null_key.test b/mysql-test/t/null_key.test index 695b2835610..c3ebc6f5b94 100644 --- a/mysql-test/t/null_key.test +++ b/mysql-test/t/null_key.test @@ -183,7 +183,7 @@ create table t1 ( index (id), index (id2) ); -insert into t1 values(null,null),(1,1); +insert ignore into t1 values(null,null),(1,1); select * from t1; select * from t1 where id <=> null; select * from t1 where id <=> null or id > 0; diff --git a/mysql-test/t/old-mode.test b/mysql-test/t/old-mode.test index 0572570d122..b9012a96713 100644 --- a/mysql-test/t/old-mode.test +++ b/mysql-test/t/old-mode.test @@ -34,15 +34,15 @@ SELECT CAST(TIME'-10:30:30' AS DATETIME); SELECT CAST(TIME'10:20:30' AS DATETIME); SELECT CAST(TIME'830:20:30' AS DATETIME); CREATE TABLE t1 (a DATETIME); -INSERT INTO t1 VALUES (TIME'-10:20:30'); +INSERT IGNORE INTO t1 VALUES (TIME'-10:20:30'); INSERT INTO t1 VALUES (TIME'10:20:30'); INSERT INTO t1 VALUES (TIME'830:20:30'); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP); -INSERT INTO t1 VALUES (TIME'-10:20:30'); -INSERT INTO t1 VALUES (TIME'10:20:30'); -INSERT INTO t1 VALUES (TIME'830:20:30'); +INSERT IGNORE INTO t1 VALUES (TIME'-10:20:30'); +INSERT IGNORE INTO t1 VALUES (TIME'10:20:30'); +INSERT IGNORE INTO t1 VALUES (TIME'830:20:30'); SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1 (a TIME); diff --git a/mysql-test/t/order_by.test b/mysql-test/t/order_by.test index 1e32f789806..6baa66112da 100644 --- a/mysql-test/t/order_by.test +++ b/mysql-test/t/order_by.test @@ -271,6 +271,7 @@ select * from t1 where a = 1 order by b desc; # Test things when we don't have NULL keys # +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify b int not null, modify c varchar(10) not null; explain select * from t1 order by a, b, c; select * from t1 order by a, b, c; diff --git a/mysql-test/t/partition_datatype.test b/mysql-test/t/partition_datatype.test index a6035fcb592..4017cdada60 100644 --- a/mysql-test/t/partition_datatype.test +++ b/mysql-test/t/partition_datatype.test @@ -262,10 +262,10 @@ ALTER TABLE t2 PARTITION BY RANGE (UNIX_TIMESTAMP(a)) INSERT INTO t1 VALUES (NULL, 'UTC'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00', 'UTC'); --echo # Test invalid values -INSERT INTO t1 VALUES ('1901-01-01 00:00:00', 'UTCI'); -INSERT INTO t1 VALUES ('1969-12-31 23:59:59', 'UTCI'); -INSERT INTO t1 VALUES ('2038-01-19 03:14:08', 'UTCI'); -INSERT INTO t1 VALUES ('1970-01-01 00:00:00', 'UTCI'); +INSERT IGNORE INTO t1 VALUES ('1901-01-01 00:00:00', 'UTCI'); +INSERT IGNORE INTO t1 VALUES ('1969-12-31 23:59:59', 'UTCI'); +INSERT IGNORE INTO t1 VALUES ('2038-01-19 03:14:08', 'UTCI'); +INSERT IGNORE INTO t1 VALUES ('1970-01-01 00:00:00', 'UTCI'); --echo # Test start range INSERT INTO t1 VALUES ('1970-01-01 00:00:01', 'UTC'); INSERT INTO t1 VALUES ('1974-02-05 21:28:16', 'UTC'); @@ -292,16 +292,16 @@ SET @@session.time_zone = 'Europe/Moscow'; INSERT INTO t1 VALUES (NULL, 'Moscow'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00', 'Moscow'); --echo # Test invalid values -INSERT INTO t1 VALUES ('0000-00-00 03:00:00', 'MoscowI'); -INSERT INTO t1 VALUES ('1901-01-01 00:00:00', 'MoscowI'); -INSERT INTO t1 VALUES ('1969-12-31 23:59:59', 'MoscowI'); -INSERT INTO t1 VALUES ('1970-01-01 02:29:29', 'MoscowI'); -INSERT INTO t1 VALUES ('2038-01-19 06:14:08', 'MoscowI'); -INSERT INTO t1 VALUES ('1970-01-01 03:00:00', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('0000-00-00 03:00:00', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('1901-01-01 00:00:00', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('1969-12-31 23:59:59', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('1970-01-01 02:29:29', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('2038-01-19 06:14:08', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('1970-01-01 03:00:00', 'MoscowI'); --echo # values truncated to 03:00:00 due to daylight saving shift -INSERT INTO t1 VALUES ('2011-03-27 02:00:00', 'MoscowI'); -INSERT INTO t1 VALUES ('2011-03-27 02:00:01', 'MoscowI'); -INSERT INTO t1 VALUES ('2011-03-27 02:59:59', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('2011-03-27 02:00:00', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('2011-03-27 02:00:01', 'MoscowI'); +INSERT IGNORE INTO t1 VALUES ('2011-03-27 02:59:59', 'MoscowI'); --echo # Test start range INSERT INTO t1 VALUES ('1970-01-01 03:00:01', 'Moscow'); INSERT INTO t1 VALUES ('1974-02-05 21:28:16', 'Moscow'); @@ -386,12 +386,12 @@ WHERE a BETWEEN '2011-10-29 23:00:00' and '2011-10-31 00:00:00' ORDER BY a, tz; --echo # Test end range changes DELETE FROM t2 WHERE a = 0; -INSERT INTO t2 VALUES ('1970-01-01 00:00:00', 'UTC'); +INSERT IGNORE INTO t2 VALUES ('1970-01-01 00:00:00', 'UTC'); SELECT COUNT(*) FROM t2; SELECT COUNT(*) FROM t2 WHERE a = 0; SELECT * FROM t2 ORDER BY a, tz LIMIT 3; SELECT * FROM t2 ORDER BY a DESC, tz LIMIT 3; -UPDATE t2 SET a = TIMESTAMPADD(SECOND, 1, a); +UPDATE IGNORE t2 SET a = TIMESTAMPADD(SECOND, 1, a); SELECT MIN(a), MAX(a) FROM t2; SELECT COUNT(*) FROM t2; SELECT COUNT(*) FROM t2 WHERE a = 0; @@ -400,12 +400,12 @@ WHERE TABLE_NAME = 't2'; SELECT * FROM t2 ORDER BY a, tz; --echo # Test start range changes -INSERT INTO t2 VALUES ('1970-01-01 00:00:00', 'UTC'); +INSERT IGNORE INTO t2 VALUES ('1970-01-01 00:00:00', 'UTC'); SELECT COUNT(*) FROM t2; SELECT COUNT(*) FROM t2 WHERE a = 0; SELECT * FROM t2 ORDER BY a, tz LIMIT 3; SELECT * FROM t2 ORDER BY a DESC, tz LIMIT 3; -UPDATE t2 SET a = TIMESTAMPADD(SECOND, -1, a); +UPDATE IGNORE t2 SET a = TIMESTAMPADD(SECOND, -1, a); SELECT MIN(a), MAX(a) FROM t2; SELECT COUNT(*) FROM t2; SELECT COUNT(*) FROM t2 WHERE a = 0; @@ -511,12 +511,12 @@ WHERE a BETWEEN '2011-10-29 01:59:59' and '2011-10-31 00:00:00' ORDER BY a, tz; --echo # Test end range changes DELETE FROM t2 WHERE a = 0; -INSERT INTO t2 VALUES ('1970-01-01 00:00:00', 'Moscow'); +INSERT IGNORE INTO t2 VALUES ('1970-01-01 00:00:00', 'Moscow'); SELECT COUNT(*) FROM t2; SELECT COUNT(*) FROM t2 WHERE a = 0; SELECT * FROM t2 ORDER BY a, tz LIMIT 3; SELECT * FROM t2 ORDER BY a DESC, tz LIMIT 3; -UPDATE t2 SET a = TIMESTAMPADD(SECOND, 1, a); +UPDATE IGNORE t2 SET a = TIMESTAMPADD(SECOND, 1, a); SELECT MIN(a), MAX(a) FROM t2; SELECT COUNT(*) FROM t2; SELECT COUNT(*) FROM t2 WHERE a = 0; @@ -525,12 +525,12 @@ WHERE TABLE_NAME = 't2'; SELECT * FROM t2 ORDER BY a, tz; --echo # Test start range changes -INSERT INTO t2 VALUES ('1970-01-01 00:00:00', 'Moscow'); +INSERT IGNORE INTO t2 VALUES ('1970-01-01 00:00:00', 'Moscow'); SELECT COUNT(*) FROM t2; SELECT COUNT(*) FROM t2 WHERE a = 0; SELECT * FROM t2 ORDER BY a, tz LIMIT 3; SELECT * FROM t2 ORDER BY a DESC, tz LIMIT 3; -UPDATE t2 SET a = TIMESTAMPADD(SECOND, -1, a); +UPDATE IGNORE t2 SET a = TIMESTAMPADD(SECOND, -1, a); SELECT MIN(a), MAX(a) FROM t2; SELECT COUNT(*) FROM t2; SELECT COUNT(*) FROM t2 WHERE a = 0; diff --git a/mysql-test/t/partition_error.test b/mysql-test/t/partition_error.test index 858213b1e30..3ee54605c36 100644 --- a/mysql-test/t/partition_error.test +++ b/mysql-test/t/partition_error.test @@ -87,13 +87,13 @@ PARTITION BY RANGE (DAYOFWEEK(a)) CREATE TABLE t1 (a DATE) PARTITION BY RANGE (DAYOFWEEK(a)) (PARTITION a1 VALUES LESS THAN (60)); -INSERT INTO t1 VALUES ('test'),('a'),('5'); +INSERT IGNORE INTO t1 VALUES ('test'),('a'),('5'); SHOW WARNINGS; DROP TABLE t1; CREATE TABLE t1 (a DATETIME) PARTITION BY RANGE (DAYOFWEEK(a)) (PARTITION a1 VALUES LESS THAN (60)); -INSERT INTO t1 VALUES ('test'),('a'),('5'); +INSERT IGNORE INTO t1 VALUES ('test'),('a'),('5'); SHOW WARNINGS; DROP TABLE t1; --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR @@ -2056,6 +2056,7 @@ SELECT PARTITION_NAME, SUBPARTITION_NAME, PARTITION_COMMENT FROM INFORMATION_SCH WHERE TABLE_NAME = 't1' AND TABLE_SCHEMA = 'test'; DROP TABLE t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (a INT , KEY inx_a (a) ) diff --git a/mysql-test/t/plugin_auth.test b/mysql-test/t/plugin_auth.test index c5d96e0d612..81b8ba6e0a3 100644 --- a/mysql-test/t/plugin_auth.test +++ b/mysql-test/t/plugin_auth.test @@ -449,7 +449,7 @@ DROP USER uplain@localhost; --echo # Bug #59038 : mysql.user.authentication_string column --echo # causes configuration wizard to fail -INSERT INTO mysql.user( +INSERT IGNORE INTO mysql.user( Host, User, Password, diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test index 74ab7659ac6..549814724d2 100644 --- a/mysql-test/t/ps.test +++ b/mysql-test/t/ps.test @@ -841,13 +841,13 @@ drop table t1; prepare stmt from 'create table t1 (a varchar(10) character set utf8)'; execute stmt; --disable_warnings -insert into t1 (a) values (repeat('a', 20)); +insert ignore into t1 (a) values (repeat('a', 20)); --enable_warnings select length(a) from t1; drop table t1; execute stmt; --disable_warnings -insert into t1 (a) values (repeat('a', 20)); +insert ignore into t1 (a) values (repeat('a', 20)); --enable_warnings # Check that the data is truncated to the same length select length(a) from t1; diff --git a/mysql-test/t/round.test b/mysql-test/t/round.test index d018fa7e34e..4ba65c08fcf 100644 --- a/mysql-test/t/round.test +++ b/mysql-test/t/round.test @@ -6,13 +6,13 @@ CREATE TABLE t1 (sint8 tinyint not null); INSERT INTO t1 VALUES ('0.1'); INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('127.4'); -INSERT INTO t1 VALUES ('127.5'); +INSERT IGNORE INTO t1 VALUES ('127.5'); INSERT INTO t1 VALUES ('-0.1'); INSERT INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('-127.4'); INSERT INTO t1 VALUES ('-127.5'); INSERT INTO t1 VALUES ('-128.4'); -INSERT INTO t1 VALUES ('-128.5'); +INSERT IGNORE INTO t1 VALUES ('-128.5'); SELECT * FROM t1; DROP TABLE t1; @@ -22,9 +22,9 @@ INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('127.4'); INSERT INTO t1 VALUES ('127.5'); INSERT INTO t1 VALUES ('-0.1'); -INSERT INTO t1 VALUES ('-0.5'); +INSERT IGNORE INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('255.4'); -INSERT INTO t1 VALUES ('255.5'); +INSERT IGNORE INTO t1 VALUES ('255.5'); SELECT * FROM t1; DROP TABLE t1; @@ -33,13 +33,13 @@ CREATE TABLE t1 (sint16 smallint not null); INSERT INTO t1 VALUES ('0.1'); INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('32767.4'); -INSERT INTO t1 VALUES ('32767.5'); +INSERT IGNORE INTO t1 VALUES ('32767.5'); INSERT INTO t1 VALUES ('-0.1'); INSERT INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('-32767.4'); INSERT INTO t1 VALUES ('-32767.5'); INSERT INTO t1 VALUES ('-32768.4'); -INSERT INTO t1 VALUES ('-32768.5'); +INSERT IGNORE INTO t1 VALUES ('-32768.5'); SELECT * FROM t1; DROP TABLE t1; @@ -50,9 +50,9 @@ INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('32767.4'); INSERT INTO t1 VALUES ('32767.5'); INSERT INTO t1 VALUES ('-0.1'); -INSERT INTO t1 VALUES ('-0.5'); +INSERT IGNORE INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('65535.4'); -INSERT INTO t1 VALUES ('65535.5'); +INSERT IGNORE INTO t1 VALUES ('65535.5'); SELECT * FROM t1; DROP TABLE t1; @@ -60,13 +60,13 @@ CREATE TABLE t1 (sint24 mediumint not null); INSERT INTO t1 VALUES ('0.1'); INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('8388607.4'); -INSERT INTO t1 VALUES ('8388607.5'); +INSERT IGNORE INTO t1 VALUES ('8388607.5'); INSERT INTO t1 VALUES ('-0.1'); INSERT INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('-8388607.4'); INSERT INTO t1 VALUES ('-8388607.5'); INSERT INTO t1 VALUES ('-8388608.4'); -INSERT INTO t1 VALUES ('-8388608.5'); +INSERT IGNORE INTO t1 VALUES ('-8388608.5'); SELECT * FROM t1; DROP TABLE t1; @@ -76,9 +76,9 @@ INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('8388607.4'); INSERT INTO t1 VALUES ('8388607.5'); INSERT INTO t1 VALUES ('-0.1'); -INSERT INTO t1 VALUES ('-0.5'); +INSERT IGNORE INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('16777215.4'); -INSERT INTO t1 VALUES ('16777215.5'); +INSERT IGNORE INTO t1 VALUES ('16777215.5'); SELECT * FROM t1; DROP TABLE t1; @@ -86,13 +86,13 @@ CREATE TABLE t1 (sint64 bigint not null); INSERT INTO t1 VALUES ('0.1'); INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('9223372036854775807.4'); -INSERT INTO t1 VALUES ('9223372036854775807.5'); +INSERT IGNORE INTO t1 VALUES ('9223372036854775807.5'); INSERT INTO t1 VALUES ('-0.1'); INSERT INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('-9223372036854775807.4'); INSERT INTO t1 VALUES ('-9223372036854775807.5'); INSERT INTO t1 VALUES ('-9223372036854775808.4'); -INSERT INTO t1 VALUES ('-9223372036854775808.5'); +INSERT IGNORE INTO t1 VALUES ('-9223372036854775808.5'); SELECT * FROM t1; DROP TABLE t1; @@ -102,9 +102,9 @@ INSERT INTO t1 VALUES ('0.5'); INSERT INTO t1 VALUES ('9223372036854775807.4'); INSERT INTO t1 VALUES ('9223372036854775807.5'); INSERT INTO t1 VALUES ('-0.1'); -INSERT INTO t1 VALUES ('-0.5'); +INSERT IGNORE INTO t1 VALUES ('-0.5'); INSERT INTO t1 VALUES ('18446744073709551615.4'); -INSERT INTO t1 VALUES ('18446744073709551615.5'); +INSERT IGNORE INTO t1 VALUES ('18446744073709551615.5'); INSERT INTO t1 VALUES ('1844674407370955161.0'); INSERT INTO t1 VALUES ('1844674407370955161.1'); INSERT INTO t1 VALUES ('1844674407370955161.2'); diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test index b207db042e6..a0caf4992bf 100644 --- a/mysql-test/t/select.test +++ b/mysql-test/t/select.test @@ -2372,7 +2372,7 @@ DROP TABLE t1; # create table t1(a bigint unsigned, b bigint); -insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff), +insert ignore into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff), (0x10000000000000000, 0x10000000000000000), (0x8fffffffffffffff, 0x8fffffffffffffff); select hex(a), hex(b) from t1; @@ -3808,7 +3808,7 @@ DROP TABLE t1; --echo # CREATE TABLE t1(a INT NOT NULL, b YEAR); -INSERT INTO t1 VALUES (); +INSERT IGNORE INTO t1 VALUES (); CREATE TABLE t2(c INT); --echo # Should not err out because of out-of-memory SELECT 1 FROM t2 JOIN t1 ON 1=1 @@ -3875,7 +3875,7 @@ SET @@sort_buffer_size= 40000; CREATE TABLE t1(a CHAR(0) NOT NULL); --disable_warnings -INSERT INTO t1 VALUES (0), (0), (0); +INSERT IGNORE INTO t1 VALUES (0), (0), (0); --enable_warnings INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12; @@ -3888,7 +3888,7 @@ DROP TABLE t1; CREATE TABLE t1(a CHAR(0) NOT NULL, b CHAR(0) NOT NULL, c int); --disable_warnings -INSERT INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1); +INSERT IGNORE INTO t1 VALUES (0, 0, 0), (0, 0, 2), (0, 0, 1); --enable_warnings INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; INSERT INTO t1 SELECT t11.a, t11.b, t11.c FROM t1 t11, t1 t12; diff --git a/mysql-test/t/signal.test b/mysql-test/t/signal.test index 31bc7bc9633..cdb5796f1da 100644 --- a/mysql-test/t/signal.test +++ b/mysql-test/t/signal.test @@ -1346,6 +1346,7 @@ end $$ call test_signal() $$ drop procedure test_signal $$ +SET sql_mode= '' $$ create procedure test_signal() begin DECLARE aaax VARCHAR(65); @@ -1400,6 +1401,7 @@ end $$ call test_signal() $$ drop procedure test_signal $$ +set sql_mode = DEFAULT $$ # Test that HANDLER can catch conditions raised by SIGNAL @@ -1785,7 +1787,7 @@ begin select "after RESIGNAL"; end; - insert into t_warn set a= 9999999999999999; + insert ignore into t_warn set a= 9999999999999999; end $$ call test_resignal() $$ @@ -1904,7 +1906,7 @@ begin select "after RESIGNAL"; end; - insert into t_warn set a= 9999999999999999; + insert ignore into t_warn set a= 9999999999999999; end $$ call test_resignal() $$ @@ -2171,7 +2173,7 @@ begin select "after RESIGNAL"; end; - insert into t_warn set a= 9999999999999999; + insert ignore into t_warn set a= 9999999999999999; end $$ call test_resignal() $$ @@ -2188,7 +2190,7 @@ begin select "after RESIGNAL"; end; - insert into t_warn set a= 9999999999999999; + insert ignore into t_warn set a= 9999999999999999; end $$ --error 5555 @@ -2207,7 +2209,7 @@ begin select "after RESIGNAL"; end; - insert into t_warn set a= 9999999999999999; + insert ignore into t_warn set a= 9999999999999999; end $$ --error 5555 diff --git a/mysql-test/t/sp-dynamic.test b/mysql-test/t/sp-dynamic.test index e6f4aae96ac..3a467e26818 100644 --- a/mysql-test/t/sp-dynamic.test +++ b/mysql-test/t/sp-dynamic.test @@ -214,6 +214,7 @@ drop procedure p1| # statements do not substitute SP variables with their values for binlog, so # SP variables must be not accessible in Dynamic SQL. # +set sql_mode= ''| create procedure p1() begin declare a char(10); @@ -226,6 +227,7 @@ end| call p1()| --error ER_BAD_FIELD_ERROR call p1()| +set sql_mode= DEFAULT| drop procedure p1| # # J. Use of placeholders in Dynamic SQL. diff --git a/mysql-test/t/sp-error.test b/mysql-test/t/sp-error.test index e30fc6e30d4..aa537d3596b 100644 --- a/mysql-test/t/sp-error.test +++ b/mysql-test/t/sp-error.test @@ -2734,7 +2734,7 @@ DROP PROCEDURE p1; --echo # --echo # Bug#5889: Exit handler for a warning doesn't hide the warning in trigger --echo # - +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1(a INT, b INT); INSERT INTO t1 VALUES (1, 2); @@ -2758,6 +2758,7 @@ SELECT * FROM t1; DROP TRIGGER t1_bu; DROP TABLE t1; +SET sql_mode = DEFAULT; --echo # --echo # Bug#9857: Stored procedures: handler for sqlwarning ignored @@ -2811,13 +2812,13 @@ CREATE TABLE t2(a SMALLINT, b SMALLINT, c SMALLINT, d SMALLINT, e SMALLINT, f SMALLINT); CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW - INSERT INTO t2(a, b, c) VALUES(99999, 99999, 99999); + INSERT IGNORE INTO t2(a, b, c) VALUES(99999, 99999, 99999); CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW - INSERT INTO t2(d, e, f) VALUES(99999, 99999, 99999); + INSERT IGNORE INTO t2(d, e, f) VALUES(99999, 99999, 99999); CREATE PROCEDURE p1() - INSERT INTO t1 VALUES(99999, 99999, 99999); + INSERT IGNORE INTO t1 VALUES(99999, 99999, 99999); # What happened before the patch was: # - INSERT INTO t1 added 3 warnings about overflow in 'x', 'y' and 'z' columns; @@ -2845,7 +2846,7 @@ DROP TABLE t2; DROP PROCEDURE p1; --echo # ---------------------------------------------------------------------- - +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE t1(x SMALLINT, y SMALLINT, z SMALLINT); CREATE TABLE t2(a SMALLINT, b SMALLINT, c SMALLINT NOT NULL); @@ -2875,6 +2876,7 @@ SHOW WARNINGS; DROP TABLE t1; DROP TABLE t2; DROP PROCEDURE p1; +SET sql_mode = DEFAULT; --echo --echo ################################################################### @@ -3558,7 +3560,7 @@ BEGIN # above must be invoked once (for one condition), but all three conditions # must be cleared from the Diagnostics Area. - INSERT INTO t1 VALUES('qqqq', 'ww', 'eee'); + INSERT IGNORE INTO t1 VALUES('qqqq', 'ww', 'eee'); # The following INSERT will not be executed, because of the EXIT HANDLER. @@ -3585,7 +3587,7 @@ BEGIN # invoked once, and all nine SQL-warnings must be cleared from # the Diagnostics Area. - INSERT INTO t2 + INSERT IGNORE INTO t2 SELECT CAST(CONCAT(CAST('1 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), CAST(CONCAT(CAST('2 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), @@ -3665,7 +3667,7 @@ BEGIN SELECT 'Handler for 1292 (2)' AS Msg; END; - INSERT INTO t2 + INSERT IGNORE INTO t2 SELECT CAST(999999 AS SIGNED INTEGER), CAST(CONCAT(CAST('2 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), @@ -3688,7 +3690,7 @@ BEGIN SELECT 'Handler for 1292' Msg; END; - INSERT INTO t2 + INSERT IGNORE INTO t2 SELECT CAST(CONCAT(CAST('1 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), CAST(CONCAT(CAST('2 ' AS UNSIGNED INTEGER), '999999 ') AS SIGNED INTEGER), @@ -3723,6 +3725,7 @@ DROP PROCEDURE IF EXISTS p2; delimiter |; +SET sql_mode = ''; CREATE PROCEDURE p1() BEGIN DECLARE var1 INTEGER DEFAULT 'string'; @@ -3732,6 +3735,7 @@ END| --echo CALL p1()| --echo +SET sql_mode = DEFAULT; CREATE PROCEDURE p2() BEGIN diff --git a/mysql-test/t/sp_notembedded.test b/mysql-test/t/sp_notembedded.test index c620f415e22..41bfd871c39 100644 --- a/mysql-test/t/sp_notembedded.test +++ b/mysql-test/t/sp_notembedded.test @@ -98,6 +98,7 @@ begin end if; return 1; end| +set statement sql_mode = '' for create procedure bug10100p(prm int, inout res int) begin set res = res * prm; @@ -105,6 +106,7 @@ begin call bug10100p(prm - 1, res); end if; end| +set statement sql_mode = '' for create procedure bug10100t(prm int) begin declare res int; @@ -303,7 +305,7 @@ set session low_priority_updates=default; # # Bug#44798 MySQL engine crashes when creating stored procedures with execute_priv=N # -INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, +INSERT IGNORE INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, diff --git a/mysql-test/t/strict.test b/mysql-test/t/strict.test index 93b31499bef..830f051a5f6 100644 --- a/mysql-test/t/strict.test +++ b/mysql-test/t/strict.test @@ -1235,6 +1235,7 @@ i int comment 123456789*123456789*123456789*123456789* 123456789*123456789*123456789*123456789*'); set @@sql_mode= @org_mode; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1 (i int comment '123456789*123456789*123456789*123456789* diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 88bba3b5ce6..ffb92222c84 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -678,9 +678,9 @@ CREATE TABLE `t3` ( PRIMARY KEY (`numeropost`), UNIQUE KEY `maxnumrep` (`maxnumrep`) ) ENGINE=MyISAM CHARSET=latin1; -INSERT INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t1 VALUES ('joce','1','','joce'),('test','2','','test'); -INSERT INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); +INSERT IGNORE INTO t2 VALUES ('joce','1','','joce'),('test','2','','test'); INSERT INTO t3 VALUES (1,1); @@ -3341,7 +3341,7 @@ create table t1(f11 int, f12 int); create table t2(f21 int unsigned not null, f22 int, f23 varchar(10)); insert into t1 values(1,1),(2,2), (3, 3); --disable_warnings -insert into t2 +insert ignore into t2 select -1 , (@a:=(A.a + 10 * (B.a + 10 * (C.a+10*D.a))))/5000 + 1, @a from t0 A, t0 B, t0 C, t0 D; --enable_warnings diff --git a/mysql-test/t/subselect2.test b/mysql-test/t/subselect2.test index b3c1322184d..bd34546d83f 100644 --- a/mysql-test/t/subselect2.test +++ b/mysql-test/t/subselect2.test @@ -28,7 +28,7 @@ DOCID VARCHAR(32)BINARY NOT NULL ) ENGINE=InnoDB ; -INSERT INTO t1 (DOCID) VALUES ("1"), ("2"); +INSERT IGNORE INTO t1 (DOCID) VALUES ("1"), ("2"); CREATE TABLE t2 ( diff --git a/mysql-test/t/subselect_sj_mat.test b/mysql-test/t/subselect_sj_mat.test index 559b380a7dc..e20291cfa67 100644 --- a/mysql-test/t/subselect_sj_mat.test +++ b/mysql-test/t/subselect_sj_mat.test @@ -1329,7 +1329,7 @@ DROP TABLE t1,t2,t3,t4,t5; --echo # CREATE TABLE t2 (a int); -INSERT INTO t2 VALUES ('a'),('a'); +INSERT IGNORE INTO t2 VALUES ('a'),('a'); CREATE TABLE t4 (a varchar(1)); INSERT INTO t4 VALUES ('m'),('o'); diff --git a/mysql-test/t/system_mysql_db_refs.test b/mysql-test/t/system_mysql_db_refs.test index c5146e1b043..63f30e7db63 100644 --- a/mysql-test/t/system_mysql_db_refs.test +++ b/mysql-test/t/system_mysql_db_refs.test @@ -11,37 +11,37 @@ set @name="This is a very long string, that mustn't find room in a system field create table test_db select * from mysql.db; delete from test_db; --disable_warnings -insert into test_db (Host,Db,User) values (@name,@name,@name); +insert ignore into test_db (Host,Db,User) values (@name,@name,@name); --enable_warnings create table test_host select * from mysql.host; delete from test_host; --disable_warnings -insert into test_host (Host,Db) values (@name,@name); +insert ignore into test_host (Host,Db) values (@name,@name); --enable_warnings create table test_user select * from mysql.user; delete from test_user; --disable_warnings -insert into test_user (Host,User) values (@name,@name); +insert ignore into test_user (Host,User) values (@name,@name); --enable_warnings create table test_func select * from mysql.func; delete from test_func; --disable_warnings -insert into test_func (name) values (@name); +insert ignore into test_func (name) values (@name); --enable_warnings create table test_tables_priv select * from mysql.tables_priv; delete from test_tables_priv; --disable_warnings -insert into test_tables_priv (Host,Db,User,Table_name) values (@name,@name,@name,@name); +insert ignore into test_tables_priv (Host,Db,User,Table_name) values (@name,@name,@name,@name); --enable_warnings create table test_columns_priv select * from mysql.columns_priv; delete from test_columns_priv; --disable_warnings -insert into test_columns_priv (Host,Db,User,Table_name,Column_name) values (@name,@name,@name,@name,@name); +insert ignore into test_columns_priv (Host,Db,User,Table_name,Column_name) values (@name,@name,@name,@name,@name); --enable_warnings # 'Host' field must be the same for all the tables: diff --git a/mysql-test/t/trigger.test b/mysql-test/t/trigger.test index 050bd5ea56e..83b6966c676 100644 --- a/mysql-test/t/trigger.test +++ b/mysql-test/t/trigger.test @@ -2367,7 +2367,7 @@ DROP TABLE t1, t2; CREATE TABLE t1 (id INT NOT NULL); CREATE TABLE t2 (id INT NOT NULL); INSERT t1 VALUES (1),(2),(3); -UPDATE t1 SET id=NULL; +UPDATE IGNORE t1 SET id=NULL; CREATE TRIGGER t1_bu BEFORE UPDATE ON t1 FOR EACH ROW INSERT INTO t2 VALUES (3); UPDATE t1 SET id=NULL; @@ -2463,6 +2463,7 @@ DROP TEMPORARY TABLE t2; # Bug#36649: Condition area is not properly cleaned up after stored routine invocation # +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; --disable_warnings DROP TRIGGER IF EXISTS trg1; DROP TABLE IF EXISTS t1; @@ -2512,6 +2513,7 @@ BEGIN END| delimiter ;| +SET sql_mode = DEFAULT; INSERT INTO t1 VALUES (0); SELECT * FROM t1; diff --git a/mysql-test/t/type_binary.test b/mysql-test/t/type_binary.test index b583e257aa9..952bc6ef231 100644 --- a/mysql-test/t/type_binary.test +++ b/mysql-test/t/type_binary.test @@ -74,7 +74,7 @@ select hex(cast(0x10 as binary(2))); # create table t1 (b binary(2), vb varbinary(2)); insert into t1 values(0x4120, 0x4120); -insert into t1 values(0x412020, 0x412020); +insert ignore into t1 values(0x412020, 0x412020); drop table t1; create table t1 (c char(2), vc varchar(2)); insert into t1 values(0x4120, 0x4120); @@ -95,7 +95,7 @@ set @@sql_mode= @old_sql_mode; # Bug#14171: Wrong default value for a BINARY field # create table t1(f1 int, f2 binary(2) not null, f3 char(2) not null); -insert into t1 set f1=1; +insert ignore into t1 set f1=1; select hex(f2), hex(f3) from t1; drop table t1; diff --git a/mysql-test/t/type_bit.test b/mysql-test/t/type_bit.test index 2ca608e76ff..761f200fe0c 100644 --- a/mysql-test/t/type_bit.test +++ b/mysql-test/t/type_bit.test @@ -168,7 +168,7 @@ drop table t1; # create table t1 (a bit(8)) engine=heap; -insert into t1 values ('1111100000'); +insert ignore into t1 values ('1111100000'); select a+0 from t1; drop table t1; @@ -257,7 +257,7 @@ drop table bug15583; # create table t1(a bit(1), b smallint unsigned); -insert into t1 (b, a) values ('2', '1'); +insert ignore into t1 (b, a) values ('2', '1'); select hex(a), b from t1; drop table t1; @@ -324,7 +324,7 @@ DROP TABLE t2; CREATE TABLE t1(a BIT(13), KEY(a)); --disable_warnings -INSERT INTO t1(a) VALUES +INSERT IGNORE INTO t1(a) VALUES (65535),(65525),(65535),(65535),(65535),(65535),(65535),(65535),(65535),(65535); --enable_warnings diff --git a/mysql-test/t/type_bit_innodb.test b/mysql-test/t/type_bit_innodb.test index 27eaeda0f99..4c6f9bc1b49 100644 --- a/mysql-test/t/type_bit_innodb.test +++ b/mysql-test/t/type_bit_innodb.test @@ -38,7 +38,7 @@ select hex(a) from t1; drop table t1; create table t1 (a bit) engine=innodb; -insert into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001'); +insert ignore into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001'); select hex(a) from t1; # It is not deterministic which duplicate will be seen first --replace_regex /entry '(.*)' for/entry '' for/ @@ -47,7 +47,7 @@ alter table t1 add unique (a); drop table t1; create table t1 (a bit(2)) engine=innodb; -insert into t1 values (b'00'), (b'01'), (b'10'), (b'100'); +insert ignore into t1 values (b'00'), (b'01'), (b'10'), (b'100'); select a+0 from t1; alter table t1 add key (a); explain select a+0 from t1; diff --git a/mysql-test/t/type_blob.test b/mysql-test/t/type_blob.test index b818e1b451d..8db6ac6da2a 100644 --- a/mysql-test/t/type_blob.test +++ b/mysql-test/t/type_blob.test @@ -17,7 +17,9 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7; CREATE TABLE t1 (a blob, b text, c blob(250), d text(70000), e text(70000000)); show columns from t1; # PS doesn't give errors on prepare yet +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t2 (a char(255), b varbinary(70000), c varchar(70000000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t4 (c varchar(65530) character set utf8 not null); show columns from t2; create table t3 (a long, b long byte); @@ -33,6 +35,7 @@ drop table t1,t2,t3,t4; CREATE TABLE t1 (a char(257) default "hello"); --error 1074 CREATE TABLE t2 (a char(256)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR CREATE TABLE t1 (a varchar(70000) default "hello"); SHOW CREATE TABLE t1; CREATE TABLE t2 (a blob default "hello"); diff --git a/mysql-test/t/type_date.test b/mysql-test/t/type_date.test index 63c89f318fc..11924f696db 100644 --- a/mysql-test/t/type_date.test +++ b/mysql-test/t/type_date.test @@ -121,7 +121,7 @@ DROP TABLE t1, t2, t3; # Test that setting YEAR to invalid string results in default value, not # 2000. (Bug #6067) CREATE TABLE t1 (y YEAR); -INSERT INTO t1 VALUES ('abc'); +INSERT IGNORE INTO t1 VALUES ('abc'); SELECT * FROM t1; DROP TABLE t1; @@ -145,7 +145,7 @@ select year(@d), month(@d), day(@d), cast(@d as date); select @d:=1311; select year(@d), month(@d), day(@d), cast(@d as date); create table t1 (d date , dt datetime , ts timestamp); -insert into t1 values (9912101,9912101,9912101); +insert ignore into t1 values (9912101,9912101,9912101); insert into t1 values (11111,11111,11111); select * from t1; drop table t1; @@ -282,7 +282,7 @@ DROP TABLE t1; # lp:737496 Field_temporal::store_TIME_with_warning() in 5.1-micro # create table t1 (f1 date, key (f1)); -insert t1 values ('2010-10-10 15:foobar'); +insert ignore t1 values ('2010-10-10 15:foobar'); drop table t1; --echo # diff --git a/mysql-test/t/type_datetime.test b/mysql-test/t/type_datetime.test index b16d426ab70..99c9bb656e6 100644 --- a/mysql-test/t/type_datetime.test +++ b/mysql-test/t/type_datetime.test @@ -24,7 +24,7 @@ select * from t1; # Test some wrong dates truncate table t1; -insert into t1 values("2003-0303 12:13:14"); +insert ignore into t1 values("2003-0303 12:13:14"); select * from t1; drop table t1; @@ -88,16 +88,16 @@ drop table t1; # warnings (for both strings and numbers) # create table t1 (t datetime); -insert into t1 values (20030102030460),(20030102036301),(20030102240401), +insert ignore into t1 values (20030102030460),(20030102036301),(20030102240401), (20030132030401),(20031302030401),(100001202030401); select * from t1; delete from t1; -insert into t1 values +insert ignore into t1 values ("2003-01-02 03:04:60"),("2003-01-02 03:63:01"),("2003-01-02 24:04:01"), ("2003-01-32 03:04:01"),("2003-13-02 03:04:01"), ("10000-12-02 03:04:00"); select * from t1; delete from t1; -insert into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer"); +insert ignore into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer"); select * from t1 order by t; drop table t1; diff --git a/mysql-test/t/type_decimal.test b/mysql-test/t/type_decimal.test index 834fd0c5327..777bb2f23e5 100644 --- a/mysql-test/t/type_decimal.test +++ b/mysql-test/t/type_decimal.test @@ -162,34 +162,34 @@ create table t1 (a decimal(10,2)); insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0"); insert into t1 values ("-.1"),("+.1"),(".1"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); -insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); -insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); -insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); -insert into t1 values ("1e+4294967296"),("1e-4294967296"); -insert into t1 values ("1e+18446744073709551615"),("1e+18446744073709551616"),("1e-9223372036854775807"),("1e-9223372036854775809"); -insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); +insert ignore into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); +insert ignore into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); +insert ignore into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); +insert ignore into t1 values ("1e+4294967296"),("1e-4294967296"); +insert ignore into t1 values ("1e+18446744073709551615"),("1e+18446744073709551616"),("1e-9223372036854775807"),("1e-9223372036854775809"); +insert ignore into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); select * from t1; drop table t1; create table t1 (a decimal(10,2) unsigned); insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0"); -insert into t1 values ("-.1"),("+.1"),(".1"); +insert ignore into t1 values ("-.1"),("+.1"),(".1"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); -insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); -insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); -insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); -insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); +insert ignore into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); +insert ignore into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); +insert ignore into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); +insert ignore into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); select * from t1; drop table t1; create table t1 (a decimal(10,2) zerofill); insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0"); -insert into t1 values ("-.1"),("+.1"),(".1"); +insert ignore into t1 values ("-.1"),("+.1"),(".1"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); -insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); -insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); -insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); -insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); +insert ignore into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); +insert ignore into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); +insert ignore into t1 values ("1e+1000"),("1e-1000"),("-1e+1000"); +insert ignore into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0"); select * from t1; drop table t1; @@ -199,9 +199,9 @@ create table t1 (a decimal(10,2)); insert into t1 values (0.0),("-0.0"),(+0.0),(01.0),(+01.0),(-01.0); insert into t1 values (-.1),(+.1),(.1); insert into t1 values (00000000000001),(+0000000000001),(-0000000000001); -insert into t1 values (+111111111.11),(111111111.11),(-11111111.11); -insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11); -insert into t1 values (1e+100),(1e-100),(-1e+100); +insert ignore into t1 values (+111111111.11),(111111111.11),(-11111111.11); +insert ignore into t1 values (-111111111.11),(+1111111111.11),(1111111111.11); +insert ignore into t1 values (1e+100),(1e-100),(-1e+100); insert into t1 values (123.4e0),(123.4e+2),(123.4e-2),(123e1),(123e+0); insert into t1 values (MID("987",1,2)),("987 "),("987.6e+2 "); select * from t1; @@ -212,28 +212,28 @@ drop table t1; # create table t1 (a decimal); -insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999); +insert ignore into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999); select * from t1; drop table t1; create table t1 (a decimal unsigned); -insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); +insert ignore into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); select * from t1; drop table t1; create table t1 (a decimal zerofill); -insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); +insert ignore into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); select * from t1; drop table t1; create table t1 (a decimal unsigned zerofill); -insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); +insert ignore into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999); select * from t1; drop table t1; # Exponent overflow bug create table t1(a decimal(10,0)); -insert into t1 values ("1e4294967295"); +insert ignore into t1 values ("1e4294967295"); select * from t1; delete from t1; -insert into t1 values("1e4294967297"); +insert ignore into t1 values("1e4294967297"); select * from t1; drop table t1; diff --git a/mysql-test/t/type_enum.test b/mysql-test/t/type_enum.test index 63e9e9e7b09..105da427219 100644 --- a/mysql-test/t/type_enum.test +++ b/mysql-test/t/type_enum.test @@ -30,9 +30,9 @@ drop table t1; # create table t1 (a enum ('0','1')); -insert into t1 set a='foobar'; +insert ignore into t1 set a='foobar'; select * from t1; -update t1 set a = replace(a,'x','y'); +update ignore t1 set a = replace(a,'x','y'); select * from t1; drop table t1; @@ -165,9 +165,10 @@ CREATE TABLE t1 ( id INT AUTO_INCREMENT PRIMARY KEY, c1 ENUM('a', '', 'b') ); -INSERT INTO t1 (c1) VALUES (0), ('a'), (''), ('b'); +INSERT IGNORE INTO t1 (c1) VALUES (0), ('a'), (''), ('b'); SELECT id, c1 + 0, c1 FROM t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 CHANGE c1 c1 ENUM('a', '') NOT NULL; SELECT id, c1 + 0, c1 FROM t1; @@ -191,7 +192,7 @@ drop table t1; CREATE TABLE t1 (c1 ENUM('a', '', 'b')); INSERT INTO t1 (c1) VALUES ('b'); INSERT INTO t1 (c1) VALUES (''); -INSERT INTO t1 (c1) VALUES (0); +INSERT IGNORE INTO t1 (c1) VALUES (0); INSERT INTO t1 (c1) VALUES (''); SELECT c1 + 0, COUNT(c1) FROM t1 GROUP BY c1; @@ -398,12 +399,13 @@ DROP TABLE t1; CREATE TABLE t1 (a ENUM('9e200','9e100')); CREATE TABLE t2 (a DOUBLE); INSERT INTO t2 VALUES ('9e100'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; SELECT * FROM t1; DROP TABLE t1,t2; CREATE TABLE t1 (a DOUBLE); INSERT INTO t1 VALUES (9e100); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a ENUM('9e200','9e100'); SELECT * FROM t1; DROP TABLE t1; @@ -411,7 +413,7 @@ DROP TABLE t1; CREATE TABLE t1 (a ENUM('200','100')); CREATE TABLE t2 (a DOUBLE); INSERT INTO t2 VALUES ('100'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; SELECT * FROM t1; DROP TABLE t1,t2; @@ -419,12 +421,13 @@ DROP TABLE t1,t2; CREATE TABLE t1 (a ENUM('200','100')); CREATE TABLE t2 (a INT); INSERT INTO t2 VALUES ('100'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; SELECT * FROM t1; DROP TABLE t1,t2; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES ('200'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a ENUM('200','100'); SELECT *FROM t1; DROP TABLE t1; @@ -432,7 +435,7 @@ DROP TABLE t1; CREATE TABLE t1 (a ENUM('200','100')); CREATE TABLE t2 (a INT); INSERT INTO t2 VALUES ('100'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; SELECT * FROM t1; DROP TABLE t1,t2; @@ -441,12 +444,13 @@ DROP TABLE t1,t2; CREATE TABLE t1 (a ENUM('2001','2002')); CREATE TABLE t2 (a YEAR); INSERT INTO t2 VALUES ('2001'); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; SELECT * FROM t1; DROP TABLE t1,t2; CREATE TABLE t1 (a YEAR); INSERT INTO t1 VALUES ('2001'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a ENUM('2001','2002'); SELECT * FROM t1; DROP TABLE t1; diff --git a/mysql-test/t/type_float.test b/mysql-test/t/type_float.test index f54eacf0595..4e8cee75d63 100644 --- a/mysql-test/t/type_float.test +++ b/mysql-test/t/type_float.test @@ -83,8 +83,8 @@ create table t1 (a float(200,100), b double(200,100)); # float in a char(1) field # create table t1 (c20 char); -insert into t1 values (5000.0); -insert into t1 values (0.5e4); +insert ignore into t1 values (5000.0); +insert ignore into t1 values (0.5e4); drop table t1; # Errors @@ -98,18 +98,18 @@ drop table if exists t1; # Don't allow 'double unsigned' to be set to a negative value (Bug #7700) create table t1 (d1 double, d2 double unsigned); insert into t1 set d1 = -1.0; -update t1 set d2 = d1; +update ignore t1 set d2 = d1; select * from t1; drop table t1; # Ensure that maximum values as the result of number of decimals # being specified in table schema are enforced (Bug #7361) create table t1 (f float(4,3)); -insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +insert ignore into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); select * from t1; drop table if exists t1; create table t1 (f double(4,3)); -insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); +insert ignore into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); select * from t1; drop table if exists t1; @@ -241,14 +241,14 @@ DROP TABLE t1; create table t1 (f1 double(200, 0)); insert into t1 values (1e199), (-1e199); insert into t1 values (1e200), (-1e200); -insert into t1 values (2e200), (-2e200); +insert ignore into t1 values (2e200), (-2e200); select f1 + 0e0 from t1; drop table t1; create table t1 (f1 float(30, 0)); insert into t1 values (1e29), (-1e29); insert into t1 values (1e30), (-1e30); -insert into t1 values (2e30), (-2e30); +insert ignore into t1 values (2e30), (-2e30); select f1 + 0e0 from t1; drop table t1; @@ -339,8 +339,8 @@ select format(truncate('1.7976931348623157E+308',-12),1,'fr_BE') as foo; CREATE TABLE t1 (f FLOAT); INSERT INTO t1 VALUES ('1.'); -INSERT INTO t1 VALUES ('2.0.'); -INSERT INTO t1 VALUES ('.'); +INSERT IGNORE INTO t1 VALUES ('2.0.'); +INSERT IGNORE INTO t1 VALUES ('.'); SELECT * FROM t1 ORDER BY f; DROP TABLE t1; @@ -467,8 +467,8 @@ DROP TABLE t1; --echo # MDEV-4102 Limitation on DOUBLE or REAL length is ignored with INSERT .. SELECT --echo # CREATE TABLE t1 (d1 DOUBLE(5,2), d2 DOUBLE(10,2)); -INSERT INTO t1 VALUES (10000000.55, 10000000.55); -INSERT INTO t1 SELECT d2, d2 FROM t1; +INSERT IGNORE INTO t1 VALUES (10000000.55, 10000000.55); +INSERT IGNORE INTO t1 SELECT d2, d2 FROM t1; SELECT * FROM t1; DROP TABLE t1; @@ -481,14 +481,14 @@ CREATE TABLE t1 ( d10_10 DOUBLE PRECISION (10,10), d53_10 DOUBLE(53,10) ); -INSERT INTO t1 (f,d10_10,d53_10) VALUES ( +INSERT IGNORE INTO t1 (f,d10_10,d53_10) VALUES ( -9999999999999999999999999999999999999999999.9999999999, -9999999999999999999999999999999999999999999.9999999999, -9999999999999999999999999999999999999999999.9999999999 ); --vertical_results SELECT * FROM t1; -INSERT INTO t1 (f,d10_10,d53_10) SELECT d53_10, d53_10, d53_10 FROM t1; +INSERT IGNORE INTO t1 (f,d10_10,d53_10) SELECT d53_10, d53_10, d53_10 FROM t1; SELECT * FROM t1; ALTER TABLE t1 ADD COLUMN i INT; SELECT * FROM t1; @@ -498,14 +498,14 @@ DROP TABLE t1; CREATE TABLE t1 (d10_10 DOUBLE (10,10)); CREATE TABLE t2 (d53_10 DOUBLE (53,10)); INSERT INTO t2 VALUES (-9999999999999999999999999999999999999999999.9999999999); -INSERT INTO t1 (d10_10) SELECT d53_10 FROM t2; +INSERT IGNORE INTO t1 (d10_10) SELECT d53_10 FROM t2; SELECT * FROM t1; DROP TABLE t1,t2; CREATE TABLE t1 (d2_2 FLOAT (2,2)); CREATE TABLE t2 (d4_2 FLOAT (4,2)); INSERT INTO t2 VALUES (99.99); -INSERT INTO t1 (d2_2) SELECT d4_2 FROM t2; +INSERT IGNORE INTO t1 (d2_2) SELECT d4_2 FROM t2; SELECT * FROM t1; DROP TABLE t1,t2; diff --git a/mysql-test/t/type_newdecimal.test b/mysql-test/t/type_newdecimal.test index 152c3ade487..eb0fac57150 100644 --- a/mysql-test/t/type_newdecimal.test +++ b/mysql-test/t/type_newdecimal.test @@ -50,13 +50,13 @@ drop table t1; # create table t1 (a decimal(4,2)); -insert into t1 value (10000), (1.1e10), ("11111"), (100000.1); -insert into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1); +insert ignore into t1 value (10000), (1.1e10), ("11111"), (100000.1); +insert ignore into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1); select a from t1; drop table t1; create table t1 (a decimal(4,2) unsigned); -insert into t1 value (10000), (1.1e10), ("11111"), (100000.1); -insert into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1); +insert ignore into t1 value (10000), (1.1e10), ("11111"), (100000.1); +insert ignore into t1 value (-10000), (-1.1e10), ("-11111"), (-100000.1); select a from t1; drop table t1; @@ -65,21 +65,21 @@ drop table t1; # saving in field with overflow from decimal # create table t1 (a bigint); -insert into t1 values (18446744073709551615.0); -insert into t1 values (9223372036854775808.0); -insert into t1 values (-18446744073709551615.0); +insert ignore into t1 values (18446744073709551615.0); +insert ignore into t1 values (9223372036854775808.0); +insert ignore into t1 values (-18446744073709551615.0); select * from t1; drop table t1; create table t1 (a bigint unsigned); insert into t1 values (18446744073709551615.0); insert into t1 values (9223372036854775808.0); -insert into t1 values (9999999999999999999999999.000); -insert into t1 values (-1.0); +insert ignore into t1 values (9999999999999999999999999.000); +insert ignore into t1 values (-1.0); select * from t1; drop table t1; create table t1 (a tinyint); -insert into t1 values (18446744073709551615.0); -insert into t1 values (9223372036854775808.0); +insert ignore into t1 values (18446744073709551615.0); +insert ignore into t1 values (9223372036854775808.0); select * from t1; drop table t1; diff --git a/mysql-test/t/type_num.test b/mysql-test/t/type_num.test index 64242e34160..87f5cc609d9 100644 --- a/mysql-test/t/type_num.test +++ b/mysql-test/t/type_num.test @@ -433,17 +433,17 @@ CREATE TABLE t1 ( ); INSERT INTO t1 VALUES ('1 ','1 ','1 ','1 ','1 ','1 ','1 '); -INSERT INTO t1 VALUES ('','','','','','',''); -INSERT INTO t1 VALUES ('x','x','x','x','x','x','x'); -INSERT INTO t1 VALUES (' x',' x',' x',' x',' x',' x',' x'); -INSERT INTO t1 VALUES ('.','.','.','.','.','.','.'); -INSERT INTO t1 VALUES ('-','-','-','-','-','-','-'); -INSERT INTO t1 VALUES ('+','+','+','+','+','+','+'); -INSERT INTO t1 VALUES ('1x','1x','1x','1x','1x','1x','1x'); -INSERT INTO t1 VALUES ('1e','1e','1e','1e','1e','1e','1e'); -INSERT INTO t1 VALUES ('1e-','1e-','1e-','1e-','1e-','1e-','1e-'); -INSERT INTO t1 VALUES ('1E+','1E+','1E+','1E+','1E+','1E+','1E+'); -INSERT INTO t1 VALUES ('1e1000','1e1000','1e1000','1e1000','1e1000','1e1000','1e1000'); +INSERT IGNORE INTO t1 VALUES ('','','','','','',''); +INSERT IGNORE INTO t1 VALUES ('x','x','x','x','x','x','x'); +INSERT IGNORE INTO t1 VALUES (' x',' x',' x',' x',' x',' x',' x'); +INSERT IGNORE INTO t1 VALUES ('.','.','.','.','.','.','.'); +INSERT IGNORE INTO t1 VALUES ('-','-','-','-','-','-','-'); +INSERT IGNORE INTO t1 VALUES ('+','+','+','+','+','+','+'); +INSERT IGNORE INTO t1 VALUES ('1x','1x','1x','1x','1x','1x','1x'); +INSERT IGNORE INTO t1 VALUES ('1e','1e','1e','1e','1e','1e','1e'); +INSERT IGNORE INTO t1 VALUES ('1e-','1e-','1e-','1e-','1e-','1e-','1e-'); +INSERT IGNORE INTO t1 VALUES ('1E+','1E+','1E+','1E+','1E+','1E+','1E+'); +INSERT IGNORE INTO t1 VALUES ('1e1000','1e1000','1e1000','1e1000','1e1000','1e1000','1e1000'); DELETE FROM t1; INSERT INTO t1 VALUES (0,0,0,0,0,0,0); diff --git a/mysql-test/t/type_ranges.test b/mysql-test/t/type_ranges.test index 44b0835fcae..7bf29321d06 100644 --- a/mysql-test/t/type_ranges.test +++ b/mysql-test/t/type_ranges.test @@ -58,10 +58,10 @@ DROP INDEX test ON t1; insert into t1 values (10, 1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one'); insert into t1 values (NULL,2,2,2,2,2,2,2,2,2,2,2,2,2,NULL,NULL,NULL,NULL,NULL,NULL,2,2,'two','two,one'); -insert into t1 values (0,1/3,3,3,3,3,3,3,3,3,3,3,3,3,NULL,'19970303','10:10:10','19970303101010','','','','3',3,3); -insert into t1 values (0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,NULL,19970807,080706,19970403090807,-1,-1,-1,'-1',-1,-1); -insert into t1 values (0,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,NULL,0,0,0,-4294967295,-4294967295,-4294967295,'-4294967295',0,"one,two,tree"); -insert into t1 values (0,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,NULL,0,0,0,4294967295,4294967295,4294967295,'4294967295',0,0); +insert ignore into t1 values (0,1/3,3,3,3,3,3,3,3,3,3,3,3,3,NULL,'19970303','10:10:10','19970303101010','','','','3',3,3); +insert ignore into t1 values (0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,NULL,19970807,080706,19970403090807,-1,-1,-1,'-1',-1,-1); +insert ignore into t1 values (0,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,-4294967295,NULL,0,0,0,-4294967295,-4294967295,-4294967295,'-4294967295',0,"one,two,tree"); +insert ignore into t1 values (0,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,NULL,0,0,0,4294967295,4294967295,4294967295,'4294967295',0,0); insert into t1 (tiny) values (1); select auto,string,tiny,short,medium,long_int,longlong,real_float,real_double,utiny,ushort,umedium,ulong,ulonglong,mod(floor(time_stamp/1000000),1000000)-mod(curdate(),1000000),date_field,time_field,date_time,blob_col,tinyblob_col,mediumblob_col,longblob_col from t1; @@ -103,7 +103,7 @@ CREATE TABLE t2 ( PRIMARY KEY (auto) ); -INSERT INTO t2 (string,mediumblob_col,new_field) SELECT string,mediumblob_col,new_field from t1 where auto > 10; +INSERT IGNORE INTO t2 (string,mediumblob_col,new_field) SELECT string,mediumblob_col,new_field from t1 where auto > 10; select * from t2; diff --git a/mysql-test/t/type_set.test b/mysql-test/t/type_set.test index 16e4f42301d..7a79cd12f70 100644 --- a/mysql-test/t/type_set.test +++ b/mysql-test/t/type_set.test @@ -49,6 +49,7 @@ set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17', '18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','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','128')); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR create table t1(f1 set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17', '18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33', diff --git a/mysql-test/t/type_temporal_innodb.test b/mysql-test/t/type_temporal_innodb.test index ac5daca6508..1ab68961eaa 100644 --- a/mysql-test/t/type_temporal_innodb.test +++ b/mysql-test/t/type_temporal_innodb.test @@ -12,7 +12,7 @@ SELECT TIME'00:00:00'=''; CREATE TABLE t1 (a ENUM('a'), b TIME, c INT, KEY(b)) ENGINE=InnoDB; -INSERT INTO t1 VALUES ('','00:00:00',0); +INSERT IGNORE INTO t1 VALUES ('','00:00:00',0); SELECT * FROM t1 WHERE b=''; SELECT * FROM t1 IGNORE KEY (b) WHERE b=''; SELECT * FROM t1 WHERE a=b; @@ -29,7 +29,7 @@ DROP TABLE t1; SELECT DATE'0000-00-00'=''; CREATE TABLE t1 (a ENUM('a'), b DATE, c INT, KEY(b)) ENGINE=InnoDB; -INSERT INTO t1 VALUES ('','0000-00-00',0); +INSERT IGNORE INTO t1 VALUES ('','0000-00-00',0); SELECT * FROM t1 WHERE b=''; SELECT * FROM t1 IGNORE KEY (b) WHERE b=''; SELECT * FROM t1 WHERE a=b; @@ -46,7 +46,7 @@ DROP TABLE t1; SELECT TIMESTAMP'0000-00-00 00:00:00'=''; CREATE TABLE t1 (a ENUM('a'), b DATETIME, c INT, KEY(b)) ENGINE=InnoDB; -INSERT INTO t1 VALUES ('','0000-00-00 00:00:00',0); +INSERT IGNORE INTO t1 VALUES ('','0000-00-00 00:00:00',0); SELECT * FROM t1 WHERE b=''; SELECT * FROM t1 IGNORE KEY (b) WHERE b=''; SELECT * FROM t1 WHERE a=b; diff --git a/mysql-test/t/type_time.test b/mysql-test/t/type_time.test index c4b93d6dbb2..fb96597e296 100644 --- a/mysql-test/t/type_time.test +++ b/mysql-test/t/type_time.test @@ -11,7 +11,7 @@ insert into t1 values("10:22:33"),("12:34:56.78"),(10),(1234),(123456.78),(12345 insert t1 values (30),(1230),("1230"),("12:30"),("12:30:35"),("1 12:30:31.32"); select * from t1; # Test wrong values -insert into t1 values("10.22.22"),(1234567),(123456789),(123456789.10),("10 22:22"),("12.45a"); +insert ignore into t1 values("10.22.22"),(1234567),(123456789),(123456789.10),("10 22:22"),("12.45a"); select * from t1; drop table t1; @@ -219,7 +219,7 @@ CREATE TABLE t1 (a TIME(6)); --error ER_TRUNCATED_WRONG_VALUE INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); SET sql_mode=DEFAULT; -INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); +INSERT IGNORE INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); SELECT * FROM t1; DROP TABLE t1; SELECT TIME'00:00:00'> CAST(0xFFFFFFFF00000000 AS UNSIGNED); @@ -740,6 +740,7 @@ CREATE TABLE t1 (a YEAR, b TIME, c YEAR); CREATE TABLE t2 (a YEAR); INSERT INTO t2 VALUES (0),(1999),(2000),(2030),(2050),(2070); INSERT INTO t1 (a,b,c) SELECT a,a,a FROM t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY c TIME; SELECT * FROM t1; DROP TABLE t1,t2; diff --git a/mysql-test/t/type_timestamp.test b/mysql-test/t/type_timestamp.test index 460769f8961..b90e122aa79 100644 --- a/mysql-test/t/type_timestamp.test +++ b/mysql-test/t/type_timestamp.test @@ -78,7 +78,7 @@ truncate table t1; insert into t1 values ("00000000000000"),("20030101010160"),("20030101016001"),("20030101240101"),("20030132010101"),("20031301010101"),("20031200000000"),("20030000000000"); select ix+0 from t1; truncate table t1; -insert into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer"); +insert ignore into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer"); select ix+0 from t1; drop table t1; diff --git a/mysql-test/t/type_uint.test b/mysql-test/t/type_uint.test index 84fca993d09..ae48b30997a 100644 --- a/mysql-test/t/type_uint.test +++ b/mysql-test/t/type_uint.test @@ -9,8 +9,8 @@ SET SQL_WARNINGS=1; create table t1 (this int unsigned); insert into t1 values (1); -insert into t1 values (-1); -insert into t1 values ('5000000000'); +insert ignore into t1 values (-1); +insert ignore into t1 values ('5000000000'); select * from t1; drop table t1; diff --git a/mysql-test/t/type_year.test b/mysql-test/t/type_year.test index 22f164a757c..117906fd889 100644 --- a/mysql-test/t/type_year.test +++ b/mysql-test/t/type_year.test @@ -17,7 +17,7 @@ drop table t1; # create table t1 (y year); -insert into t1 values (now()); +insert ignore into t1 values (now()); select if(y = now(), 1, 0) from t1; drop table t1; @@ -138,7 +138,7 @@ DROP TABLE t2, t4; --echo # CREATE TABLE t1 (y YEAR NOT NULL, s VARCHAR(4)); -INSERT INTO t1 (s) VALUES ('bad'); +INSERT IGNORE INTO t1 (s) VALUES ('bad'); INSERT INTO t1 (y, s) VALUES (0, 0), (2000, 2000), (2001, 2001); SELECT * FROM t1 ta, t1 tb WHERE ta.y = tb.y; @@ -219,32 +219,34 @@ DROP TABLE t1; --echo # MDEV-9392 Copying from DECIMAL to YEAR is not consistent about warnings --echo # CREATE TABLE t1 (a YEAR); -INSERT INTO t1 VALUES (-0.1); +INSERT IGNORE INTO t1 VALUES (-0.1); DROP TABLE t1; CREATE TABLE t1 (a YEAR); CREATE TABLE t2 (a DECIMAL(10,1)); INSERT INTO t2 VALUES (-0.1); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; DROP TABLE t1,t2; CREATE TABLE t1 (a DECIMAL(10,1)); INSERT INTO t1 VALUES (-0.1); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a YEAR; DROP TABLE t1; CREATE TABLE t1 (a YEAR); -INSERT INTO t1 VALUES (-0.1e0); +INSERT IGNORE INTO t1 VALUES (-0.1e0); DROP TABLE t1; CREATE TABLE t1 (a YEAR); CREATE TABLE t2 (a DOUBLE); INSERT INTO t2 VALUES (-0.1); -INSERT INTO t1 SELECT * FROM t2; +INSERT IGNORE INTO t1 SELECT * FROM t2; DROP TABLE t1,t2; CREATE TABLE t1 (a DOUBLE); INSERT INTO t1 VALUES (-0.1); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 MODIFY a YEAR; DROP TABLE t1; diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index af509eb7b85..fbe307be5ba 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -1222,6 +1222,7 @@ drop table t1; # # changing value by trigger and CHECK OPTION # +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; create table t1 (s1 tinyint); create trigger t1_bi before insert on t1 for each row set new.s1 = 500; create view v1 as select * from t1 where s1 <> 127 with check option; @@ -1232,6 +1233,7 @@ select * from t1; drop trigger t1_bi; drop view v1; drop table t1; +SET sql_mode = default; # # CASCADED should be used for all underlaying VIEWs @@ -2678,7 +2680,7 @@ DROP TABLE t1,t2; CREATE TABLE t1 (a INT NOT NULL, b INT NULL DEFAULT NULL); CREATE VIEW v1 AS SELECT a, b FROM t1; -INSERT INTO v1 (b) VALUES (2); +INSERT IGNORE INTO v1 (b) VALUES (2); SET SQL_MODE = STRICT_ALL_TABLES; --error ER_NO_DEFAULT_FOR_VIEW_FIELD @@ -3571,7 +3573,7 @@ DROP TABLE t1; --echo # create table t1(f1 int, f2 int not null); create view v1 as select f1 from t1; -insert into v1 values(1); +insert ignore into v1 values(1); set @old_mode=@@sql_mode; set @@sql_mode=traditional; --error ER_NO_DEFAULT_FOR_VIEW_FIELD diff --git a/mysql-test/t/warnings.test b/mysql-test/t/warnings.test index 29714438835..573f3c538c7 100644 --- a/mysql-test/t/warnings.test +++ b/mysql-test/t/warnings.test @@ -21,11 +21,11 @@ create table t (i); show count(*) errors; show errors; insert into t1 values (1); -insert into t1 values ("hej"); -insert into t1 values ("hej"),("då"); +insert ignore into t1 values ("hej"); +insert ignore into t1 values ("hej"),("då"); set SQL_WARNINGS=1; -insert into t1 values ("hej"); -insert into t1 values ("hej"),("då"); +insert ignore into t1 values ("hej"); +insert ignore into t1 values ("hej"),("då"); drop table t1; set SQL_WARNINGS=0; @@ -62,17 +62,18 @@ drop table t1; # create table t1(a tinyint NOT NULL, b tinyint unsigned, c char(5)); -insert into t1 values(NULL,100,'mysql'),(10,-1,'mysql ab'),(500,256,'open source'),(20,NULL,'test'); +insert ignore into t1 values(NULL,100,'mysql'),(10,-1,'mysql ab'),(500,256,'open source'),(20,NULL,'test'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR alter table t1 modify c char(4); alter table t1 add d char(2); -update t1 set a=NULL where a=10; -update t1 set c='mysql ab' where c='test'; -update t1 set d=c; +update ignore t1 set a=NULL where a=10; +update ignore t1 set c='mysql ab' where c='test'; +update ignore t1 set d=c; create table t2(a tinyint NOT NULL, b char(3)); -insert into t2 select b,c from t1; -insert into t2(b) values('mysqlab'); +insert ignore into t2 select b,c from t1; +insert ignore into t2(b) values('mysqlab'); set sql_warnings=1; -insert into t2(b) values('mysqlab'); +insert ignore into t2(b) values('mysqlab'); set sql_warnings=0; drop table t1, t2; @@ -93,7 +94,7 @@ commit; --enable_query_log alter table t1 add b char; set max_error_count=10; -update t1 set b=a; +update ignore t1 set b=a; --disable_ps_protocol select @@warning_count; --enable_ps_protocol @@ -101,7 +102,7 @@ select @@warning_count; # Bug#9072 set max_error_count=0; show variables like 'max_error_count'; -update t1 set b='hi'; +update ignore t1 set b='hi'; --disable_ps_protocol select @@warning_count; --enable_ps_protocol @@ -119,7 +120,7 @@ drop table t1; create table t1 (a int); insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); # should generate 10 warnings -update t1 set a='abc'; +update ignore t1 set a='abc'; show warnings limit 2, 1; show warnings limit 0, 10; show warnings limit 9, 1; @@ -152,6 +153,7 @@ INSERT INTO t3 VALUES ( 'a`', 'a`', '1000-01-1' ); DROP PROCEDURE IF EXISTS sp1; DROP PROCEDURE IF EXISTS sp2; DROP PROCEDURE IF EXISTS sp3; +SET sql_mode = ''; delimiter //; CREATE PROCEDURE sp1() BEGIN @@ -172,8 +174,10 @@ delimiter ;// CALL sp1(); CALL sp2(); CALL sp3(); +SET sql_mode = DEFAULT; DROP PROCEDURE IF EXISTS sp1; +SET sql_mode = ''; delimiter //; CREATE PROCEDURE sp1() BEGIN @@ -182,6 +186,7 @@ SELECT f1 into x from t2 limit 1; END// delimiter ;// CALL sp1(); +SET sql_mode = DEFAULT; DROP TABLE t1; DROP TABLE t2; DROP TABLE t3; diff --git a/mysql-test/t/xtradb_mrr.test b/mysql-test/t/xtradb_mrr.test index b56cbb0459f..3e84668955a 100644 --- a/mysql-test/t/xtradb_mrr.test +++ b/mysql-test/t/xtradb_mrr.test @@ -403,7 +403,7 @@ INSERT INTO t1 VALUES ('IB','IBM- Inc.'), ('GO','Google Inc.'); -INSERT INTO t2 VALUES +INSERT IGNORE INTO t2 VALUES ('AB','Sweden'), ('JA','USA'), ('MS','United States of America'), diff --git a/storage/connect/mysql-test/connect/r/dir.result b/storage/connect/mysql-test/connect/r/dir.result index 34a591fb26c..99556c9b72d 100644 --- a/storage/connect/mysql-test/connect/r/dir.result +++ b/storage/connect/mysql-test/connect/r/dir.result @@ -25,6 +25,7 @@ SELECT fname, ftype, size FROM t1 ORDER BY fname, ftype, size; fname ftype size boys .txt 282 boyswin .txt 288 +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES ('','','',''); ERROR HY000: Got error 174 'COLBLK SetBuffer: undefined Access Method' from CONNECT DROP TABLE t1; diff --git a/storage/connect/mysql-test/connect/r/mysql_exec.result b/storage/connect/mysql-test/connect/r/mysql_exec.result index b6606ab5978..1801456fd74 100644 --- a/storage/connect/mysql-test/connect/r/mysql_exec.result +++ b/storage/connect/mysql-test/connect/r/mysql_exec.result @@ -31,9 +31,8 @@ insert into t1(msg) values('One'),(NULL),('Three') 1 3 Affected rows Warning 0 1048 Column 'msg' cannot be null insert into t1 values(2,'Deux') on duplicate key update msg = 'Two' 0 2 Affected rows insert into t1(message) values('Four'),('Five'),('Six') 0 1054 Remote: Unknown column 'message' in 'field list' -insert into t1(id) values(NULL) 1 1 Affected rows -Warning 0 1364 Field 'msg' doesn't have a default value -update t1 set msg = 'Four' where id = 4 0 1 Affected rows +insert into t1(id) values(NULL) 0 1364 Remote: Field 'msg' doesn't have a default value +update t1 set msg = 'Four' where id = 4 0 0 Affected rows select * from t1 0 2 Result set columns # # Checking Using Procedure @@ -46,11 +45,10 @@ READS SQL DATA SELECT * FROM t1 WHERE command IN ('Warning','Note',cmd); CALL p1('insert into t1(id) values(NULL)'); command warnings number message -insert into t1(id) values(NULL) 1 1 Affected rows -Warning 0 1364 Field 'msg' doesn't have a default value +insert into t1(id) values(NULL) 0 1364 Remote: Field 'msg' doesn't have a default value CALL p1('update t1 set msg = "Five" where id = 5'); command warnings number message -update t1 set msg = "Five" where id = 5 0 1 Affected rows +update t1 set msg = "Five" where id = 5 0 0 Affected rows DROP PROCEDURE p1; DROP TABLE t1; connection slave; @@ -59,8 +57,6 @@ id msg 1 One 2 Two 3 Three -4 Four -5 Five DROP TABLE t1; connection master; DROP TABLE IF EXISTS connect.t1; diff --git a/storage/connect/mysql-test/connect/r/mysql_new.result b/storage/connect/mysql-test/connect/r/mysql_new.result index 9236ee691e5..69402ff7532 100644 --- a/storage/connect/mysql-test/connect/r/mysql_new.result +++ b/storage/connect/mysql-test/connect/r/mysql_new.result @@ -203,7 +203,7 @@ t1 CREATE TABLE `t1` ( `d` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), `e` year(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 VALUES('2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23'); +INSERT IGNORE INTO t1 VALUES('2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23'); Warnings: Note 1265 Data truncated for column 'a' at row 1 Note 1265 Data truncated for column 'c' at row 1 diff --git a/storage/connect/mysql-test/connect/r/unsigned.result b/storage/connect/mysql-test/connect/r/unsigned.result index b993133a3c4..ca5a5ffe31e 100644 --- a/storage/connect/mysql-test/connect/r/unsigned.result +++ b/storage/connect/mysql-test/connect/r/unsigned.result @@ -27,13 +27,13 @@ UPDATE t1 SET e = d; SELECT * FROM t1; a b c d e 255 65535 4294967295 18446744073709551615 18446744073709551615 -UPDATE t1 SET c = d; +UPDATE IGNORE t1 SET c = d; Warnings: Warning 1264 Out of range value for column 'c' at row 1 SELECT * FROM t1; a b c d e 255 65535 4294967295 18446744073709551615 18446744073709551615 -UPDATE t1 SET c = e; +UPDATE IGNORE t1 SET c = e; Warnings: Warning 1264 Out of range value for column 'c' at row 1 SELECT * FROM t1; diff --git a/storage/connect/mysql-test/connect/r/upd.result b/storage/connect/mysql-test/connect/r/upd.result index fa519c4b688..8faf00896bb 100644 --- a/storage/connect/mysql-test/connect/r/upd.result +++ b/storage/connect/mysql-test/connect/r/upd.result @@ -1,3 +1,4 @@ +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; CREATE TABLE employee ( serialno CHAR(5) NOT NULL, @@ -1625,3 +1626,4 @@ serialno name sex title manager department secretary salary # DROP PROCEDURE test.tst_up; DROP TABLE employee; +SET sql_mode = DEFAULT; diff --git a/storage/connect/mysql-test/connect/t/dir.test b/storage/connect/mysql-test/connect/t/dir.test index fb69813d9f0..8a56d4f8829 100644 --- a/storage/connect/mysql-test/connect/t/dir.test +++ b/storage/connect/mysql-test/connect/t/dir.test @@ -26,6 +26,7 @@ SELECT fname, ftype, size FROM t1 ORDER BY fname, ftype, size; # TODO: add a better error message --error ER_GET_ERRMSG +SET STATEMENT sql_mode = '' FOR INSERT INTO t1 VALUES ('','','',''); DROP TABLE t1; diff --git a/storage/connect/mysql-test/connect/t/mysql_new.test b/storage/connect/mysql-test/connect/t/mysql_new.test index de9cae7b87b..db9b1b704fc 100644 --- a/storage/connect/mysql-test/connect/t/mysql_new.test +++ b/storage/connect/mysql-test/connect/t/mysql_new.test @@ -306,7 +306,7 @@ DROP TABLE t1; CREATE TABLE t1 (a date, b datetime, c time, d timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, e year); SHOW CREATE TABLE t1; -INSERT INTO t1 VALUES('2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23'); +INSERT IGNORE INTO t1 VALUES('2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23'); SELECT * FROM t1; connection master; diff --git a/storage/connect/mysql-test/connect/t/unsigned.test b/storage/connect/mysql-test/connect/t/unsigned.test index 44eb832f8ae..48f6bdc835c 100644 --- a/storage/connect/mysql-test/connect/t/unsigned.test +++ b/storage/connect/mysql-test/connect/t/unsigned.test @@ -13,9 +13,9 @@ INSERT INTO t1(a,b,c,d) VALUES(255,65535,4294967295,18446744073709551615); SELECT * FROM t1; UPDATE t1 SET e = d; SELECT * FROM t1; -UPDATE t1 SET c = d; +UPDATE IGNORE t1 SET c = d; SELECT * FROM t1; -UPDATE t1 SET c = e; +UPDATE IGNORE t1 SET c = e; SELECT * FROM t1; UPDATE t1 SET d = e; SELECT * FROM t1; diff --git a/storage/connect/mysql-test/connect/t/upd.test b/storage/connect/mysql-test/connect/t/upd.test index a3716694c4a..28b566b5641 100644 --- a/storage/connect/mysql-test/connect/t/upd.test +++ b/storage/connect/mysql-test/connect/t/upd.test @@ -1,6 +1,8 @@ let $MYSQLD_DATADIR= `select @@datadir`; --copy_file $MTR_SUITE_DIR/std_data/employee.dat $MYSQLD_DATADIR/test/employee.dat +SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; + CREATE TABLE employee ( serialno CHAR(5) NOT NULL, @@ -150,4 +152,6 @@ CALL test.tst_up(); DROP PROCEDURE test.tst_up; DROP TABLE employee; +SET sql_mode = DEFAULT; + --remove_file $MYSQLD_DATADIR/test/employee.dat diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/alter_table_change_column_rename_multiple.result b/storage/mroonga/mysql-test/mroonga/storage/r/alter_table_change_column_rename_multiple.result index 31906776bf4..c8360f2fbfa 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/alter_table_change_column_rename_multiple.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/alter_table_change_column_rename_multiple.result @@ -24,7 +24,7 @@ diaries CREATE TABLE `diaries` ( `subject` text DEFAULT NULL, PRIMARY KEY (`internal_id`) ) ENGINE=Mroonga DEFAULT CHARSET=utf8 -INSERT INTO diaries (subject, description) +INSERT IGNORE INTO diaries (subject, description) VALUES ("groonga (1)", "starting groonga."); Warnings: Warning 1364 Field 'internal_id' doesn't have a default value diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/column_date_zero_date.result b/storage/mroonga/mysql-test/mroonga/storage/r/column_date_zero_date.result index b2364e1158e..022d6c00715 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/column_date_zero_date.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/column_date_zero_date.result @@ -10,12 +10,14 @@ timestamps CREATE TABLE `timestamps` ( `create_dt` date DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=Mroonga DEFAULT CHARSET=utf8 +SET sql_mode = ''; INSERT INTO timestamps (create_dt) VALUES ("2012-00-01"); Warnings: Warning 1265 Data truncated for column 'create_dt' at row 1 INSERT INTO timestamps (create_dt) VALUES ("2012-01-00"); Warnings: Warning 1265 Data truncated for column 'create_dt' at row 1 +SET sql_mode = DEFAULT; SELECT * FROM timestamps; id create_dt 1 2012-01-01 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_version_56_or_later_out_of_range.result b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_version_56_or_later_out_of_range.result index 7cca8d2f83e..db22d3d4c7c 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_version_56_or_later_out_of_range.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_64bit_version_56_or_later_out_of_range.result @@ -12,11 +12,13 @@ diaries CREATE TABLE `diaries` ( `created_at` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=Mroonga DEFAULT CHARSET=utf8 -INSERT INTO diaries (title, created_at) -VALUES ('2012', '2012'); +SET STATEMENT sql_mode = '' FOR +INSERT INTO diaries (title, created_at) VALUES ('2012', '2012'); Warnings: Warning 1265 Data truncated for column 'created_at' at row 1 Warning 1265 Data truncated for column 'created_at' at row 1 +INSERT INTO diaries (title, created_at) VALUES ('2012', '2012'); +ERROR 22007: Incorrect datetime value: '2012' for column 'created_at' at row 1 SELECT * FROM diaries; id title created_at 1 2012 0000-01-01 00:00:00 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_zero_date.result b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_zero_date.result index c22a63f9744..4e05f0a2c52 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_zero_date.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_zero_date.result @@ -10,12 +10,14 @@ timestamps CREATE TABLE `timestamps` ( `create_dt` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=Mroonga DEFAULT CHARSET=utf8 +SET sql_mode=''; INSERT INTO timestamps (create_dt) VALUES ("2012-00-01 00:00:00"); Warnings: Warning 1265 Data truncated for column 'create_dt' at row 1 INSERT INTO timestamps (create_dt) VALUES ("2012-01-00 00:00:00"); Warnings: Warning 1265 Data truncated for column 'create_dt' at row 1 +SET sql_mode = DEFAULT; SELECT * FROM timestamps; id create_dt 1 2012-01-01 00:00:00 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/geometry_bulk_insert_null.result b/storage/mroonga/mysql-test/mroonga/storage/r/geometry_bulk_insert_null.result index 5e831860c5e..fc16c590dc0 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/geometry_bulk_insert_null.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/geometry_bulk_insert_null.result @@ -2,7 +2,7 @@ DROP TABLE IF EXISTS shops; CREATE TABLE shops ( location GEOMETRY NOT NULL ); -INSERT INTO shops VALUES (NULL), (NULL); +INSERT IGNORE INTO shops VALUES (NULL), (NULL); Warnings: Warning 1048 Column 'location' cannot be null Warning 1048 Column 'location' cannot be null diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/index_hash_id_primary.result b/storage/mroonga/mysql-test/mroonga/storage/r/index_hash_id_primary.result index 508ee135ef2..b27c0ee028c 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/index_hash_id_primary.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/index_hash_id_primary.result @@ -2,16 +2,16 @@ drop table if exists t1, t2, t3; create table t1 (_id int, a int, primary key (_id) using hash); insert into t1 values(null, 100); ERROR 23000: Column '_id' cannot be null -insert into t1 values(1,100); +insert ignore into t1 values(1,100); Warnings: Warning 1265 Data truncated for column '_id' at row 1 -insert into t1 values(1,100); +insert ignore into t1 values(1,100); Warnings: Warning 1265 Data truncated for column '_id' at row 1 -insert into t1 values(1,100); +insert ignore into t1 values(1,100); Warnings: Warning 1265 Data truncated for column '_id' at row 1 -insert into t1 values(1,100); +insert ignore into t1 values(1,100); Warnings: Warning 1265 Data truncated for column '_id' at row 1 select * from t1; diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_primary_update.result b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_primary_update.result index 86b06bc94dd..ff2f975f94f 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_primary_update.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_primary_update.result @@ -22,7 +22,7 @@ Jiro Yamada 27 Taro Yamada -12 Taro Yamada 10 Taro Yamada 29 -update scores set name = "Taro Yamada" where name = "Jiro Yamada" and score = 27; +update ignore scores set name = "Taro Yamada" where name = "Jiro Yamada" and score = 27; Warnings: Warning 1265 data truncated for primary key column: select * from scores where name = "Taro Yamada" and (score >= -12 and score < 29); diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_datetime_insert_delete_insert_invalid_value.result b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_datetime_insert_delete_insert_invalid_value.result index 155faf85510..130c03edd44 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_datetime_insert_delete_insert_invalid_value.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_datetime_insert_delete_insert_invalid_value.result @@ -5,14 +5,14 @@ start datetime, end datetime, UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, "1990-00-00 00:00:00", "2012-10-05 23:59:59"); +INSERT IGNORE INTO ranges VALUES (1, "1990-00-00 00:00:00", "2012-10-05 23:59:59"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 SELECT * FROM ranges; id start end 1 1990-01-01 00:00:00 2012-10-05 23:59:59 DELETE FROM ranges WHERE id = 1; -INSERT INTO ranges VALUES (1, "1990-00-00 00:00:00", "2012-10-05 23:59:59"); +INSERT IGNORE INTO ranges VALUES (1, "1990-00-00 00:00:00", "2012-10-05 23:59:59"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 SELECT * FROM ranges; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/alter_table_change_column_rename_multiple.test b/storage/mroonga/mysql-test/mroonga/storage/t/alter_table_change_column_rename_multiple.test index a9bbe403da1..ee25b482daa 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/alter_table_change_column_rename_multiple.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/alter_table_change_column_rename_multiple.test @@ -34,7 +34,7 @@ ALTER TABLE diaries CHANGE id internal_id INT; SHOW CREATE TABLE diaries; -INSERT INTO diaries (subject, description) +INSERT IGNORE INTO diaries (subject, description) VALUES ("groonga (1)", "starting groonga."); SELECT * FROM diaries; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/column_date_zero_date.test b/storage/mroonga/mysql-test/mroonga/storage/t/column_date_zero_date.test index b6225075959..3442abca805 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/column_date_zero_date.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/column_date_zero_date.test @@ -26,8 +26,10 @@ CREATE TABLE timestamps ( ) DEFAULT CHARSET UTF8; SHOW CREATE TABLE timestamps; +SET sql_mode = ''; INSERT INTO timestamps (create_dt) VALUES ("2012-00-01"); INSERT INTO timestamps (create_dt) VALUES ("2012-01-00"); +SET sql_mode = DEFAULT; SELECT * FROM timestamps; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_64bit_version_56_or_later_out_of_range.test b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_64bit_version_56_or_later_out_of_range.test index 18b501178bc..a4ab4da20a6 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_64bit_version_56_or_later_out_of_range.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_64bit_version_56_or_later_out_of_range.test @@ -32,8 +32,10 @@ CREATE TABLE diaries ( ) DEFAULT CHARSET UTF8; SHOW CREATE TABLE diaries; -INSERT INTO diaries (title, created_at) - VALUES ('2012', '2012'); +SET STATEMENT sql_mode = '' FOR +INSERT INTO diaries (title, created_at) VALUES ('2012', '2012'); +--error ER_TRUNCATED_WRONG_VALUE +INSERT INTO diaries (title, created_at) VALUES ('2012', '2012'); SELECT * FROM diaries; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_zero_date.test b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_zero_date.test index 5c39086d452..c41344cf655 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_zero_date.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_zero_date.test @@ -26,8 +26,10 @@ CREATE TABLE timestamps ( ) DEFAULT CHARSET UTF8; SHOW CREATE TABLE timestamps; +SET sql_mode=''; INSERT INTO timestamps (create_dt) VALUES ("2012-00-01 00:00:00"); INSERT INTO timestamps (create_dt) VALUES ("2012-01-00 00:00:00"); +SET sql_mode = DEFAULT; SELECT * FROM timestamps; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/geometry_bulk_insert_null.test b/storage/mroonga/mysql-test/mroonga/storage/t/geometry_bulk_insert_null.test index a5f42e2c9f3..dc9ac4319ce 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/geometry_bulk_insert_null.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/geometry_bulk_insert_null.test @@ -27,7 +27,7 @@ CREATE TABLE shops ( location GEOMETRY NOT NULL ); -INSERT INTO shops VALUES (NULL), (NULL); +INSERT IGNORE INTO shops VALUES (NULL), (NULL); SELECT ST_AsText(location) FROM shops; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/index_hash_id_primary.test b/storage/mroonga/mysql-test/mroonga/storage/t/index_hash_id_primary.test index 60ca970aa45..6aa4e04f7c8 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/index_hash_id_primary.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/index_hash_id_primary.test @@ -23,10 +23,10 @@ drop table if exists t1, t2, t3; create table t1 (_id int, a int, primary key (_id) using hash); --error ER_BAD_NULL_ERROR insert into t1 values(null, 100); -insert into t1 values(1,100); -insert into t1 values(1,100); -insert into t1 values(1,100); -insert into t1 values(1,100); +insert ignore into t1 values(1,100); +insert ignore into t1 values(1,100); +insert ignore into t1 values(1,100); +insert ignore into t1 values(1,100); select * from t1; select * from t1 where _id = 2; select * from t1 where _id = 20; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_primary_update.test b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_primary_update.test index 26c76dd5207..c0f1e78552a 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_primary_update.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_primary_update.test @@ -32,7 +32,7 @@ insert into scores (name, score) values("Taro Yamada", -12); insert into scores (name, score) values("Jiro Yamada", 27); insert into scores (name, score) values("Taro Yamada", 10); select * from scores; -update scores set name = "Taro Yamada" where name = "Jiro Yamada" and score = 27; +update ignore scores set name = "Taro Yamada" where name = "Jiro Yamada" and score = 27; select * from scores where name = "Taro Yamada" and (score >= -12 and score < 29); drop table scores; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_datetime_insert_delete_insert_invalid_value.test b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_datetime_insert_delete_insert_invalid_value.test index 2782fc15363..65e639181fe 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_datetime_insert_delete_insert_invalid_value.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_datetime_insert_delete_insert_invalid_value.test @@ -27,11 +27,11 @@ CREATE TABLE ranges ( UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, "1990-00-00 00:00:00", "2012-10-05 23:59:59"); +INSERT IGNORE INTO ranges VALUES (1, "1990-00-00 00:00:00", "2012-10-05 23:59:59"); SELECT * FROM ranges; DELETE FROM ranges WHERE id = 1; -INSERT INTO ranges VALUES (1, "1990-00-00 00:00:00", "2012-10-05 23:59:59"); +INSERT IGNORE INTO ranges VALUES (1, "1990-00-00 00:00:00", "2012-10-05 23:59:59"); SELECT * FROM ranges; DROP TABLE ranges; diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_master_tokudb.result b/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_master_tokudb.result index 58291bc7fd1..6ee39039985 100644 --- a/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_master_tokudb.result +++ b/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_master_tokudb.result @@ -191,11 +191,11 @@ INSERT into t3 set f1=1, f2=1, f3=1, f4='first', f10='f10: some var char'; INSERT into t4 set f1=1, f2=1, f3=1, f4='first', f7='f7: medium size blob', f10='f10: binary data'; INSERT into t31 set f1=1, f2=1, f3=1, f4='first'; -INSERT into t31 set f1=1, f2=1, f3=2, f4='second', +insert ignore into t31 set f1=1, f2=1, f3=2, f4='second', f9=2.2, f10='seven samurai', f28=222.222, f35='222'; Warnings: Warning 1366 Incorrect integer value: 'seven samurai' for column 'f10' at row 1 -INSERT into t31 values (1, 1, 3, 'third', +insert ignore into t31 values (1, 1, 3, 'third', /* f5 BIGINT, */ 333333333333333333333333, /* f6 BLOB, */ '3333333333333333333333', /* f7 DATE, */ '2007-07-18', @@ -231,7 +231,7 @@ INSERT into t31 values (1, 1, 3, 'third', Warnings: Warning 1264 Out of range value for column 'f5' at row 1 Warning 1264 Out of range value for column 'f24' at row 1 -INSERT into t31 values (1, 1, 4, 'fourth', +insert ignore into t31 values (1, 1, 4, 'fourth', /* f5 BIGINT, */ 333333333333333333333333, /* f6 BLOB, */ '3333333333333333333333', /* f7 DATE, */ '2007-07-18', @@ -409,7 +409,7 @@ connection master; update t31 set f5=555555555555555 where f3=6; update t31 set f2=2 where f3=2; update t31 set f1=NULL where f3=1; -update t31 set f3=NULL, f27=NULL, f35='f35 new value' where f3=3; +update ignore t31 set f3=NULL, f27=NULL, f35='f35 new value' where f3=3; Warnings: Warning 1048 Column 'f3' cannot be null diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result b/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result index aa3c1ce50b9..32a42143180 100644 --- a/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result +++ b/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result @@ -681,33 +681,33 @@ CREATE TABLE t1 (a bit) ENGINE='TokuDB'; INSERT IGNORE INTO t1 VALUES (NULL); INSERT INTO t1 ( a ) VALUES ( 0 ); UPDATE t1 SET a = 0 WHERE a = 1 LIMIT 3; -INSERT INTO t1 ( a ) VALUES ( 5 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); DELETE FROM t1 WHERE a < 2 LIMIT 4; DELETE FROM t1 WHERE a < 9 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 9 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 9 ); UPDATE t1 SET a = 8 WHERE a = 0 LIMIT 6; -INSERT INTO t1 ( a ) VALUES ( 8 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 8 ); UPDATE t1 SET a = 0 WHERE a < 6 LIMIT 0; -INSERT INTO t1 ( a ) VALUES ( 4 ); -INSERT INTO t1 ( a ) VALUES ( 3 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 4 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 3 ); UPDATE t1 SET a = 0 WHERE a = 7 LIMIT 6; DELETE FROM t1 WHERE a = 4 LIMIT 7; -UPDATE t1 SET a = 9 WHERE a < 2 LIMIT 9; +UPDATE IGNORE t1 SET a = 9 WHERE a < 2 LIMIT 9; UPDATE t1 SET a = 0 WHERE a < 9 LIMIT 2; DELETE FROM t1 WHERE a < 0 LIMIT 5; -INSERT INTO t1 ( a ) VALUES ( 5 ); -UPDATE t1 SET a = 4 WHERE a < 6 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 5 ); -UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 8; +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); +UPDATE IGNORE t1 SET a = 4 WHERE a < 6 LIMIT 4; +INSERT IGNORE INTO t1 ( a ) VALUES ( 5 ); +UPDATE IGNORE t1 SET a = 9 WHERE a < 5 LIMIT 8; DELETE FROM t1 WHERE a < 8 LIMIT 8; -INSERT INTO t1 ( a ) VALUES ( 6 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 6 ); DELETE FROM t1 WHERE a < 6 LIMIT 7; UPDATE t1 SET a = 7 WHERE a = 3 LIMIT 7; UPDATE t1 SET a = 8 WHERE a = 0 LIMIT 6; -INSERT INTO t1 ( a ) VALUES ( 7 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 7 ); DELETE FROM t1 WHERE a < 9 LIMIT 4; -INSERT INTO t1 ( a ) VALUES ( 7 ); -INSERT INTO t1 ( a ) VALUES ( 6 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 7 ); +INSERT IGNORE INTO t1 ( a ) VALUES ( 6 ); UPDATE t1 SET a = 8 WHERE a = 3 LIMIT 4; DELETE FROM t1 WHERE a = 2 LIMIT 9; DELETE FROM t1 WHERE a = 1 LIMIT 4; @@ -716,7 +716,7 @@ INSERT INTO t1 ( a ) VALUES ( 0 ); DELETE FROM t1 WHERE a < 3 LIMIT 0; UPDATE t1 SET a = 8 WHERE a = 5 LIMIT 2; INSERT INTO t1 ( a ) VALUES ( 1 ); -UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 3; +UPDATE IGNORE t1 SET a = 9 WHERE a < 5 LIMIT 3; connection slave; SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; include/diff_tables.inc [master:t1, slave:t1] diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_row_rec_comp_tokudb.result b/storage/tokudb/mysql-test/rpl/r/rpl_row_rec_comp_tokudb.result index b4b3fffc696..df1fe125aa4 100644 --- a/storage/tokudb/mysql-test/rpl/r/rpl_row_rec_comp_tokudb.result +++ b/storage/tokudb/mysql-test/rpl/r/rpl_row_rec_comp_tokudb.result @@ -6,7 +6,7 @@ connection master; CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 varchar(1) DEFAULT '', c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0, c8 bigint(20) DEFAULT 0) ENGINE=TokuDB DEFAULT CHARSET=latin1; INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 ); INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 ); -UPDATE t1 SET c5 = 'a'; +UPDATE IGNORE t1 SET c5 = 'a'; connection slave; include/diff_tables.inc [master:t1, slave:t1] connection master; @@ -19,7 +19,7 @@ connection master; CREATE TABLE t1 (c1 bigint(20) DEFAULT 0, c2 bigint(20) DEFAULT 0, c3 bigint(20) DEFAULT 0, c4 bigint(20) DEFAULT 0, c5 bigint(20) DEFAULT 0, c6 bigint(20) DEFAULT 0, c7 bigint(20) DEFAULT 0) ENGINE=TokuDB DEFAULT CHARSET=latin1; INSERT INTO t1 ( c5, c6 ) VALUES ( 1 , 35 ); INSERT INTO t1 ( c5, c6 ) VALUES ( NULL, 35 ); -UPDATE t1 SET c5 = 'a'; +UPDATE IGNORE t1 SET c5 = 'a'; connection slave; include/diff_tables.inc [master:t1, slave:t1] connection master; diff --git a/storage/tokudb/mysql-test/tokudb/r/ctype_cp1250_ch.result b/storage/tokudb/mysql-test/tokudb/r/ctype_cp1250_ch.result index 3efeb757b61..2dae25d4aa4 100644 --- a/storage/tokudb/mysql-test/tokudb/r/ctype_cp1250_ch.result +++ b/storage/tokudb/mysql-test/tokudb/r/ctype_cp1250_ch.result @@ -60,7 +60,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; @@ -162,7 +162,7 @@ want1result location DROP TABLE t1; create table t1 (a set('a') not null); -insert into t1 values (),(); +insert ignore into t1 values (),(); Warnings: Warning 1364 Field 'a' doesn't have a default value select cast(a as char(1)) from t1; diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/r/mod_enum.result b/storage/tokudb/mysql-test/tokudb_alter_table/r/mod_enum.result index 21bfb990ba9..4ab905cfa71 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/r/mod_enum.result +++ b/storage/tokudb/mysql-test/tokudb_alter_table/r/mod_enum.result @@ -49,6 +49,7 @@ ALTER TABLE test_enum MODIFY COLUMN col2 ENUM('value1','value2','value4'); ERROR 42000: Table 'test_enum' uses an extension that doesn't exist in this XYZ version set tokudb_disable_hot_alter=1; set tokudb_disable_slow_alter=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE test_enum MODIFY COLUMN col2 ENUM('value1','value2','value4'); Warnings: Warning 1265 Data truncated for column 'col2' at row 3 diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_add_key.result b/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_add_key.result index 9e1504a9d89..82373ac318e 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_add_key.result +++ b/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_add_key.result @@ -38,6 +38,7 @@ c31 date, key(c31)) ENGINE=tokudb; INSERT INTO t (c25) VALUES (NULL); UPDATE t SET c27=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD PRIMARY KEY(c19,c27)USING HASH; Warnings: Warning 1265 Data truncated for column 'c19' at row 1 diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_col_rename.result b/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_col_rename.result index 45a12fba8d2..95a869add10 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_col_rename.result +++ b/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_col_rename.result @@ -38,6 +38,7 @@ c31 date, key(c31)) ENGINE=tokudb; INSERT INTO t (c25) VALUES (NULL); UPDATE t SET c27=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD PRIMARY KEY(c19,c27)USING HASH; Warnings: Warning 1265 Data truncated for column 'c19' at row 1 diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_default.result b/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_default.result index d5ff7e092fe..4cb323d0161 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_default.result +++ b/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_default.result @@ -38,6 +38,7 @@ c31 date, key(c31)) ENGINE=tokudb; INSERT INTO t (c25) VALUES (NULL); UPDATE t SET c27=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD PRIMARY KEY(c19,c27)USING HASH; Warnings: Warning 1265 Data truncated for column 'c19' at row 1 diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_key.result b/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_key.result index 09b0deaf990..59ca690adc4 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_key.result +++ b/storage/tokudb/mysql-test/tokudb_alter_table/r/null_bytes_drop_key.result @@ -38,6 +38,7 @@ c31 date, key(c31)) ENGINE=tokudb; INSERT INTO t (c25) VALUES (NULL); UPDATE t SET c27=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD PRIMARY KEY(c19,c27)USING HASH; Warnings: Warning 1265 Data truncated for column 'c19' at row 1 diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/t/mod_enum.test b/storage/tokudb/mysql-test/tokudb_alter_table/t/mod_enum.test index 4efa3afd96e..5166c6cc10e 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/t/mod_enum.test +++ b/storage/tokudb/mysql-test/tokudb_alter_table/t/mod_enum.test @@ -50,6 +50,7 @@ ALTER TABLE test_enum MODIFY COLUMN col2 ENUM('value1','value2','value4'); set tokudb_disable_hot_alter=1; set tokudb_disable_slow_alter=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE test_enum MODIFY COLUMN col2 ENUM('value1','value2','value4'); SELECT * FROM test_enum; diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_add_key.test b/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_add_key.test index 70e2a07e4cc..28870a86bdc 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_add_key.test +++ b/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_add_key.test @@ -47,6 +47,7 @@ c31 date, key(c31)) ENGINE=tokudb; INSERT INTO t (c25) VALUES (NULL); UPDATE t SET c27=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD PRIMARY KEY(c19,c27)USING HASH; UPDATE t SET c27=0; ALTER TABLE t ROW_FORMAT=FIXED KEY_BLOCK_SIZE=1; diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_col_rename.test b/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_col_rename.test index 048e39dc757..fe7b4ec1544 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_col_rename.test +++ b/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_col_rename.test @@ -47,6 +47,7 @@ c31 date, key(c31)) ENGINE=tokudb; INSERT INTO t (c25) VALUES (NULL); UPDATE t SET c27=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD PRIMARY KEY(c19,c27)USING HASH; UPDATE t SET c27=0; ALTER TABLE t ROW_FORMAT=FIXED KEY_BLOCK_SIZE=1; diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_default.test b/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_default.test index a5695e8a4c6..ef2b83a3d31 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_default.test +++ b/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_default.test @@ -47,6 +47,7 @@ c31 date, key(c31)) ENGINE=tokudb; INSERT INTO t (c25) VALUES (NULL); UPDATE t SET c27=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD PRIMARY KEY(c19,c27)USING HASH; UPDATE t SET c27=0; ALTER TABLE t ROW_FORMAT=FIXED KEY_BLOCK_SIZE=1; diff --git a/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_key.test b/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_key.test index d2726c30ddd..41ea0e2fd2e 100644 --- a/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_key.test +++ b/storage/tokudb/mysql-test/tokudb_alter_table/t/null_bytes_drop_key.test @@ -47,6 +47,7 @@ c31 date, key(c31)) ENGINE=tokudb; INSERT INTO t (c25) VALUES (NULL); UPDATE t SET c27=0; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t ADD PRIMARY KEY(c19,c27)USING HASH; UPDATE t SET c27=0; ALTER TABLE t ADD KEY (c25); diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/alter_table_copy_table.result b/storage/tokudb/mysql-test/tokudb_bugs/r/alter_table_copy_table.result index e8765ec7ab9..25e181d90cc 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/r/alter_table_copy_table.result +++ b/storage/tokudb/mysql-test/tokudb_bugs/r/alter_table_copy_table.result @@ -3,6 +3,7 @@ set tokudb_disable_hot_alter=ON; set default_storage_engine=tokudb; create table t (id int, x char(2), primary key (id), unique key (x)); insert into t values (1,'aa'),(2,'ab'); +set statement sql_mode = '' for alter table t modify x char(1); ERROR 23000: Duplicate entry 'a' for key 'x' drop table t; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db397_delete_trigger.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db397_delete_trigger.result index c8565fb4b2b..dce79487f51 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/r/db397_delete_trigger.result +++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db397_delete_trigger.result @@ -12,6 +12,7 @@ ts timestamp not null default now()); insert into t1 (col1,col2) values (0,0); insert into t1_audit (col1,action) values (0,'DUMMY'); set local tokudb_prelock_empty=0; +set statement sql_mode = '' for create trigger t1_trigger before delete on t1 for each row insert into t1_audit (col1, action) values (old.col1, 'BEFORE DELETE'); @@ -32,6 +33,7 @@ locks_dname locks_key_left locks_key_right ./test/t1_audit-main 0200000000000000 0200000000000000 commit; drop trigger t1_trigger; +set statement sql_mode = '' for create trigger t1_trigger after delete on t1 for each row insert into t1_audit (col1, action) values (old.col1, 'AFTER DELETE'); diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db945.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db945.result index 6b3c239d602..edebae3b9e0 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/r/db945.result +++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db945.result @@ -7,7 +7,7 @@ set session tokudb_analyze_throttle = 0; set session tokudb_analyze_time = 0; create table t1(a int, b text(1), c text(1), filler text(1), primary key(a, b(1)), unique key (a, c(1))); lock tables t1 write, t1 as a read, t1 as b read; -insert into t1(a) values(1); +insert ignore into t1(a) values(1); Warnings: Warning 1364 Field 'b' doesn't have a default value alter table t1 drop key a; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/alter_table_copy_table.test b/storage/tokudb/mysql-test/tokudb_bugs/t/alter_table_copy_table.test index 6e4433183b0..0c85115bd20 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/t/alter_table_copy_table.test +++ b/storage/tokudb/mysql-test/tokudb_bugs/t/alter_table_copy_table.test @@ -8,5 +8,6 @@ set default_storage_engine=tokudb; create table t (id int, x char(2), primary key (id), unique key (x)); insert into t values (1,'aa'),(2,'ab'); --error 1062 +set statement sql_mode = '' for alter table t modify x char(1); drop table t; \ No newline at end of file diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db397_delete_trigger.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db397_delete_trigger.test index 79043664607..dfd935b17ff 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/t/db397_delete_trigger.test +++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db397_delete_trigger.test @@ -20,6 +20,7 @@ insert into t1 (col1,col2) values (0,0); insert into t1_audit (col1,action) values (0,'DUMMY'); set local tokudb_prelock_empty=0; +set statement sql_mode = '' for create trigger t1_trigger before delete on t1 for each row insert into t1_audit (col1, action) values (old.col1, 'BEFORE DELETE'); @@ -33,6 +34,7 @@ select locks_dname,locks_key_left,locks_key_right from information_schema.tokudb commit; drop trigger t1_trigger; +set statement sql_mode = '' for create trigger t1_trigger after delete on t1 for each row insert into t1_audit (col1, action) values (old.col1, 'AFTER DELETE'); diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db945.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db945.test index 27b0d284484..c7774877291 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/t/db945.test +++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db945.test @@ -12,7 +12,7 @@ set session tokudb_analyze_time = 0; create table t1(a int, b text(1), c text(1), filler text(1), primary key(a, b(1)), unique key (a, c(1))); lock tables t1 write, t1 as a read, t1 as b read; -insert into t1(a) values(1); +insert ignore into t1(a) values(1); alter table t1 drop key a; unlock tables; From 616f4a773a29c92b8159c29f8c7a940a726d52da Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Wed, 8 Feb 2017 15:28:52 -0500 Subject: [PATCH 177/258] MDEV-7635: Reset sync_binlog back to 0 --- sql/sys_vars.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 1dd6e8f38ce..4ec528f1c6b 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -4674,7 +4674,7 @@ static Sys_var_uint Sys_sync_binlog_period( "sync_binlog", "Synchronously flush binary log to disk after " "every #th event. Use 0 (default) to disable synchronous flushing", GLOBAL_VAR(sync_binlog_period), CMD_LINE(REQUIRED_ARG), - VALID_RANGE(0, UINT_MAX), DEFAULT(1), BLOCK_SIZE(1)); + VALID_RANGE(0, UINT_MAX), DEFAULT(0), BLOCK_SIZE(1)); static Sys_var_uint Sys_sync_masterinfo_period( "sync_master_info", "Synchronously flush master info to disk " From c0209f87369538c1f321fede4c35be5473fae309 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Wed, 8 Feb 2017 15:35:33 -0500 Subject: [PATCH 178/258] MDEV-11908: New default configuration produces warnings about itself upon startup Print the message as a note instead of warning. --- sql/mysqld.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 800aeb4db3a..8a859a6f511 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -9533,7 +9533,10 @@ static int get_options(int *argc_ptr, char ***argv_ptr) if ((opt_log_slow_admin_statements || opt_log_queries_not_using_indexes || opt_log_slow_slave_statements) && !global_system_variables.sql_log_slow) - sql_print_warning("options --log-slow-admin-statements, --log-queries-not-using-indexes and --log-slow-slave-statements have no effect if --log_slow_queries is not set"); + sql_print_information("options --log-slow-admin-statements, " + "--log-queries-not-using-indexes and " + "--log-slow-slave-statements have no " + "effect if --log_slow_queries is not set"); if (global_system_variables.net_buffer_length > global_system_variables.max_allowed_packet) { From c513c4cbf595ef949d7325988f3c250bcb52ab1b Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Mon, 6 Feb 2017 03:13:36 +0200 Subject: [PATCH 179/258] MDEV-7635: Additional test fixes --- .../rpl_tests/create_recursive_construct.inc | 5 +- .../extra/rpl_tests/rpl_row_annotate.test | 6 +- mysql-test/r/bootstrap.result | 4 +- mysql-test/r/ctype_utf16.result | 10 +- mysql-test/r/ctype_utf32.result | 5 +- mysql-test/r/mysqld--help,win.rdiff | 2 +- mysql-test/r/order_by_zerolength-4285.result | 19 +- mysql-test/r/statistics.result | 246 +++++++++--------- .../suite/binlog/r/binlog_row_binlog.result | 8 +- .../binlog/t/binlog_row_binlog-master.opt | 2 +- .../rpl_domain_id_filter_master_crash.result | 8 +- .../suite/rpl/r/rpl_row_annotate_do.result | 7 +- .../suite/rpl/r/rpl_row_annotate_dont.result | 29 +-- mysql-test/suite/rpl/r/rpl_timezone.result | 5 +- .../t/rpl_domain_id_filter_master_crash.test | 6 +- .../rpl/t/rpl_row_annotate_dont-slave.opt | 2 +- mysql-test/suite/rpl/t/rpl_timezone.test | 5 +- mysql-test/t/bootstrap.test | 2 +- mysql-test/t/ctype_utf16.test | 2 + mysql-test/t/ctype_utf32.test | 1 + mysql-test/t/order_by_zerolength-4285.test | 11 +- mysql-test/t/statistics.test | 72 ++++- 22 files changed, 254 insertions(+), 203 deletions(-) diff --git a/mysql-test/extra/rpl_tests/create_recursive_construct.inc b/mysql-test/extra/rpl_tests/create_recursive_construct.inc index 90a62d8f624..b7405aa4c7f 100644 --- a/mysql-test/extra/rpl_tests/create_recursive_construct.inc +++ b/mysql-test/extra/rpl_tests/create_recursive_construct.inc @@ -357,8 +357,9 @@ if ($CRC_RET_stmt_sidef) { SHOW BINLOG EVENTS; --die Wrong events in binlog. } - # The first event is format_description, the second is Binlog_checkpoint, - # the third is Query_event('BEGIN'), and the fourth should be our Table_map + # The first event is format_description, the second is Gtid list, + # the third is Binlog_checkpoint, the fourth is Query_event('BEGIN'), + # the fifth is Annotate_rows, and the sixth should be our Table_map # for unsafe statement. if (`SELECT $unsafe_type != 3 AND '$event_type' != 'Table_map'`) { --enable_query_log diff --git a/mysql-test/extra/rpl_tests/rpl_row_annotate.test b/mysql-test/extra/rpl_tests/rpl_row_annotate.test index b7ab4f4eade..317a9c86539 100644 --- a/mysql-test/extra/rpl_tests/rpl_row_annotate.test +++ b/mysql-test/extra/rpl_tests/rpl_row_annotate.test @@ -123,7 +123,7 @@ source include/wait_for_slave_sql_error.inc; --disable_query_log --eval SELECT "$err" as 'Last_SQL_Error (expected "Delete_rows_v1 event on table test1.t3; Can\'t find record in \'t3\'" error)' --enable_query_log -call mtr.add_suppression("Slave: Can't find record in 't3' Error_code: 1032"); +call mtr.add_suppression("Can't find record in 't3'"); SET GLOBAL sql_slave_skip_counter=1; START SLAVE; @@ -182,8 +182,4 @@ DROP DATABASE test1; sync_slave_with_master; --enable_query_log -use test; -connection slave; -call mtr.add_suppression("Can't find record in 't3'"); - --source include/rpl_end.inc diff --git a/mysql-test/r/bootstrap.result b/mysql-test/r/bootstrap.result index a4e42295c36..5cefc281996 100644 --- a/mysql-test/r/bootstrap.result +++ b/mysql-test/r/bootstrap.result @@ -3,9 +3,7 @@ drop table t1; drop table t1; ERROR 42S02: Unknown table 'test.t1' set @my_max_allowed_packet= @@max_allowed_packet; -set global max_allowed_packet=100*@@max_allowed_packet; -Warnings: -Warning 1292 Truncated incorrect max_allowed_packet value: '1677721600' +set global max_allowed_packet=64*@@max_allowed_packet; set global max_allowed_packet=@my_max_allowed_packet; drop table t1; End of 5.1 tests diff --git a/mysql-test/r/ctype_utf16.result b/mysql-test/r/ctype_utf16.result index 2371dd54bff..8de21a14bd9 100644 --- a/mysql-test/r/ctype_utf16.result +++ b/mysql-test/r/ctype_utf16.result @@ -1560,6 +1560,7 @@ Warning 1301 Result of space() was larger than max_allowed_packet (16777216) - t # Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT # SET NAMES utf8, @@character_set_connection=utf16; +SET STATEMENT group_concat_max_len=1024 FOR SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body UNION ALL @@ -1567,13 +1568,18 @@ SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1 GROUP BY id ORDER BY l DESC; id l -a 1401 +a 512 +Warnings: +Warning 1260 Row 1 was cut by GROUP_CONCAT() +SET STATEMENT group_concat_max_len=1024 FOR SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body UNION ALL SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1; id l -a 1401 +a 512 +Warnings: +Warning 1260 Row 1 was cut by GROUP_CONCAT() # # MDEV-6865 Merge Bug#18935421 RPAD DIES WITH CERTAIN PADSTR INTPUTS.. # diff --git a/mysql-test/r/ctype_utf32.result b/mysql-test/r/ctype_utf32.result index e597af0f6b6..37cda220db0 100644 --- a/mysql-test/r/ctype_utf32.result +++ b/mysql-test/r/ctype_utf32.result @@ -1614,6 +1614,7 @@ DROP TABLE t1; # Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT # SET NAMES utf8, @@character_set_connection=utf32; +SET STATEMENT group_concat_max_len=1024 FOR SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body UNION ALL @@ -1621,7 +1622,9 @@ SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1 GROUP BY id ORDER BY l DESC; id l -a 1401 +a 256 +Warnings: +Warning 1260 Row 1 was cut by GROUP_CONCAT() # # incorrect charset for val_str_ascii # diff --git a/mysql-test/r/mysqld--help,win.rdiff b/mysql-test/r/mysqld--help,win.rdiff index 77a1427d893..b1544862a59 100644 --- a/mysql-test/r/mysqld--help,win.rdiff +++ b/mysql-test/r/mysqld--help,win.rdiff @@ -42,7 +42,7 @@ --stack-trace Print a symbolic stack trace on failure (Defaults to on; use --skip-stack-trace to disable.) + --standalone Dummy option to start as a standalone program (NT). - --standards-compliant-cte + --standard-compliant-cte Allow only standards compiant CTE (Defaults to on; use --skip-standards-compliant-cte to disable.) @@ -1109,6 +1117,11 @@ diff --git a/mysql-test/r/order_by_zerolength-4285.result b/mysql-test/r/order_by_zerolength-4285.result index 52204d14191..e6902105f20 100644 --- a/mysql-test/r/order_by_zerolength-4285.result +++ b/mysql-test/r/order_by_zerolength-4285.result @@ -3,16 +3,17 @@ insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); select * from t1 order by now(), cast(pk as char(0)); pk 1 -9 -8 -7 -6 -5 -4 -3 -2 10 -Warnings: +2 +3 +4 +5 +6 +7 +8 +9 +show warnings; +Level Code Message Warning 1292 Truncated incorrect CHAR(0) value: '1' Warning 1292 Truncated incorrect CHAR(0) value: '2' Warning 1292 Truncated incorrect CHAR(0) value: '3' diff --git a/mysql-test/r/statistics.result b/mysql-test/r/statistics.result index 6e028a35480..a64a69ad368 100644 --- a/mysql-test/r/statistics.result +++ b/mysql-test/r/statistics.result @@ -413,11 +413,11 @@ t1 CREATE TABLE `t1` ( SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL -test t1 x vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL -test t1 y 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL +test t1 x vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL +test t1 y 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL ALTER TABLE t1 CHANGE COLUMN x b varchar(32), CHANGE COLUMN y e double; SHOW CREATE TABLE t1; @@ -465,11 +465,11 @@ test s1 40 SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram test s1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL -test s1 x vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL test s1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL test s1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL test s1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL test s1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL +test s1 x vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency test s1 PRIMARY 1 1.0000 @@ -592,14 +592,14 @@ test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency test t1 PRIMARY 1 1.0000 -test t1 idx4 3 1.1304 -test t1 idx4 2 1.6875 +test t1 idx1 1 6.4000 +test t1 idx1 2 1.6875 test t1 idx2 1 7.0000 test t1 idx2 2 2.3846 test t1 idx3 1 8.5000 test t1 idx4 1 6.2000 -test t1 idx1 2 1.6875 -test t1 idx1 1 6.4000 +test t1 idx4 2 1.6875 +test t1 idx4 3 1.1304 SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/save_column_stats' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM mysql.column_stats WHERE column_name='b'; @@ -681,14 +681,14 @@ test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency test t1 PRIMARY 1 1.0000 -test t1 idx4 3 1.1304 +test t1 idx1 1 6.4000 +test t1 idx1 2 1.6875 test t1 idx2 1 7.0000 test t1 idx2 2 2.3846 test t1 idx3 1 8.5000 -test t1 idx4 2 1.6875 test t1 idx4 1 6.2000 -test t1 idx1 2 1.6875 -test t1 idx1 1 6.4000 +test t1 idx4 2 1.6875 +test t1 idx4 3 1.1304 ALTER TABLE t1 DROP COLUMN b; SHOW CREATE TABLE t1; Table Create Table @@ -793,11 +793,11 @@ test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency test t1 PRIMARY 1 1.0000 -test t1 idx2 1 7.0000 -test t1 idx1 2 NULL test t1 idx1 1 NULL -test t1 idx3 1 8.5000 +test t1 idx1 2 NULL +test t1 idx2 1 7.0000 test t1 idx2 2 2.3846 +test t1 idx3 1 8.5000 test t1 idx4 1 6.2000 test t1 idx4 2 NULL test t1 idx4 3 NULL @@ -817,11 +817,11 @@ test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency test t1 PRIMARY 1 1.0000 -test t1 idx2 1 7.0000 -test t1 idx1 2 1.6875 test t1 idx1 1 6.4000 -test t1 idx3 1 8.5000 +test t1 idx1 2 1.6875 +test t1 idx2 1 7.0000 test t1 idx2 2 2.3846 +test t1 idx3 1 8.5000 test t1 idx4 1 6.2000 test t1 idx4 2 1.6875 test t1 idx4 3 1.1304 @@ -894,13 +894,13 @@ test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency test t1 PRIMARY 1 1.0000 +test t1 idx1 1 6.4000 +test t1 idx1 2 1.6875 +test t1 idx2 1 7.0000 +test t1 idx2 2 2.3846 +test t1 idx3 1 8.5000 test t1 idx4 1 6.2000 test t1 idx4 2 1.6875 -test t1 idx3 1 8.5000 -test t1 idx2 2 2.3846 -test t1 idx2 1 7.0000 -test t1 idx1 2 1.6875 -test t1 idx1 1 6.4000 test t1 idx4 3 1.1304 DELETE FROM mysql.table_stats; DELETE FROM mysql.column_stats; @@ -926,23 +926,23 @@ test t1 40 SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL -test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL +test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 idx4 3 1.1304 -test t1 idx4 2 1.6875 -test t1 idx4 1 6.2000 -test t1 idx2 2 2.3846 test t1 idx2 1 7.0000 +test t1 idx2 2 2.3846 +test t1 idx4 1 6.2000 +test t1 idx4 2 1.6875 +test t1 idx4 3 1.1304 DELETE FROM mysql.index_stats WHERE table_name='t1' AND index_name='primary'; SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 idx4 3 1.1304 -test t1 idx4 2 1.6875 -test t1 idx4 1 6.2000 -test t1 idx2 2 2.3846 test t1 idx2 1 7.0000 +test t1 idx2 2 2.3846 +test t1 idx4 1 6.2000 +test t1 idx4 2 1.6875 +test t1 idx4 3 1.1304 ANALYZE TABLE t1 PERSISTENT FOR COLUMNS() INDEXES(primary); Table Op Msg_type Msg_text test.t1 analyze status Engine-independent statistics collected @@ -950,11 +950,11 @@ test.t1 analyze status Table is already up to date SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency test t1 PRIMARY 1 1.0000 -test t1 idx4 3 1.1304 -test t1 idx4 2 1.6875 -test t1 idx4 1 6.2000 -test t1 idx2 2 2.3846 test t1 idx2 1 7.0000 +test t1 idx2 2 2.3846 +test t1 idx4 1 6.2000 +test t1 idx4 2 1.6875 +test t1 idx4 3 1.1304 DELETE FROM mysql.table_stats; DELETE FROM mysql.column_stats; DELETE FROM mysql.index_stats; @@ -967,22 +967,22 @@ db_name table_name cardinality test t1 40 SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL -test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL -test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL +test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL +test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL +test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 idx4 2 1.6875 -test t1 idx4 1 6.2000 +test t1 PRIMARY 1 1.0000 +test t1 idx1 1 6.4000 +test t1 idx1 2 1.6875 test t1 idx2 1 7.0000 test t1 idx2 2 2.3846 -test t1 idx1 2 1.6875 -test t1 idx1 1 6.4000 test t1 idx3 1 8.5000 -test t1 PRIMARY 1 1.0000 +test t1 idx4 1 6.2000 +test t1 idx4 2 1.6875 test t1 idx4 3 1.1304 CREATE TABLE t2 LIKE t1; ALTER TABLE t2 ENGINE=InnoDB; @@ -996,10 +996,10 @@ SELECT * FROM mysql.table_stats; db_name table_name cardinality test t1 40 test t2 40 -SELECT * FROM mysql.column_stats ORDER BY column_name; +SELECT * FROM mysql.column_stats ORDER BY column_name, table_name; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL +test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL test t1 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL test t2 b vvvvvvvvvvvvv zzzzzzzzzzzzzzzzzz 0.2000 17.1250 6.4000 0 NULL NULL test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL @@ -1193,22 +1193,22 @@ ADD INDEX idx1 (b(4), e), ADD INDEX idx4 (e, b(4), d); SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL -test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL -test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL -test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL +test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL +test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL +test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL +test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency test t2 PRIMARY 1 1.0000 -test t2 idx3 2 1.0000 +test t2 idx2 1 7.0000 +test t2 idx2 2 2.3846 test t2 idx2 3 1.0000 +test t2 idx3 1 8.5000 +test t2 idx3 2 1.0000 test t2 idx4 1 6.2000 test t2 idx4 2 2.2308 test t2 idx4 3 1.0000 -test t2 idx2 2 2.3846 -test t2 idx2 1 7.0000 -test t2 idx3 1 8.5000 ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status Engine-independent statistics collected @@ -1216,36 +1216,36 @@ test.t1 analyze Warning Engine-independent statistics are not collected for colu test.t1 analyze status OK SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL -test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL -test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL -test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL -test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL -test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL -test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL +test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL +test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL +test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL test t2 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL +test t2 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL +test t2 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL +test t2 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL +test t2 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 idx1 2 NULL -test t2 PRIMARY 1 1.0000 -test t2 idx3 2 1.0000 -test t2 idx2 3 1.0000 -test t2 idx4 1 6.2000 -test t2 idx4 2 2.2308 -test t2 idx4 3 1.0000 test t1 PRIMARY 1 1.0000 -test t1 idx3 1 8.5000 -test t2 idx2 2 2.3846 -test t2 idx2 1 7.0000 -test t1 idx2 2 2.3846 -test t1 idx2 1 7.0000 -test t2 idx3 1 8.5000 test t1 idx1 1 NULL +test t1 idx1 2 NULL +test t1 idx2 1 7.0000 +test t1 idx2 2 2.3846 +test t1 idx3 1 8.5000 test t1 idx4 1 6.2000 test t1 idx4 2 NULL test t1 idx4 3 NULL +test t2 PRIMARY 1 1.0000 +test t2 idx2 1 7.0000 +test t2 idx2 2 2.3846 +test t2 idx2 3 1.0000 +test t2 idx3 1 8.5000 +test t2 idx3 2 1.0000 +test t2 idx4 1 6.2000 +test t2 idx4 2 2.2308 +test t2 idx4 3 1.0000 DELETE FROM mysql.table_stats; DELETE FROM mysql.column_stats; DELETE FROM mysql.index_stats; @@ -1272,22 +1272,22 @@ db_name table_name cardinality test t1 40 SELECT * FROM mysql.column_stats; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL -test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL -test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL -test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL test t1 a 0 49 0.0000 4.0000 1.0000 0 NULL NULL +test t1 c aaaa dddddddd 0.1250 6.6571 7.0000 0 NULL NULL +test t1 d 1989-03-12 1999-07-23 0.1500 3.0000 8.5000 0 NULL NULL +test t1 e 0.01 0.112 0.2250 8.0000 6.2000 0 NULL NULL +test t1 f 1 5 0.2000 1.0000 6.4000 0 NULL NULL SELECT * FROM mysql.index_stats; db_name table_name index_name prefix_arity avg_frequency -test t1 idx4 3 NULL -test t1 idx4 2 NULL -test t1 idx4 1 6.2000 -test t1 idx1 2 NULL -test t1 idx1 1 NULL -test t1 idx2 2 2.3846 -test t1 idx2 1 7.0000 -test t1 idx3 1 8.5000 test t1 PRIMARY 1 1.0000 +test t1 idx1 1 NULL +test t1 idx1 2 NULL +test t1 idx2 1 7.0000 +test t1 idx2 2 2.3846 +test t1 idx3 1 8.5000 +test t1 idx4 1 6.2000 +test t1 idx4 2 NULL +test t1 idx4 3 NULL DELETE FROM mysql.table_stats; DELETE FROM mysql.column_stats; DELETE FROM mysql.index_stats; @@ -1347,22 +1347,22 @@ ANALYZE TABLE Country, City, CountryLanguage; SELECT UPPER(db_name), UPPER(table_name), cardinality FROM mysql.table_stats; UPPER(db_name) UPPER(table_name) cardinality -WORLD COUNTRY 239 WORLD CITY 4079 +WORLD COUNTRY 239 WORLD COUNTRYLANGUAGE 984 SELECT UPPER(db_name), UPPER(table_name), column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency FROM mysql.column_stats; UPPER(db_name) UPPER(table_name) column_name min_value max_value nulls_ratio avg_length avg_frequency -WORLD CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195 -WORLD CITY Population 42 10500000 0.0000 4.0000 1.0467 WORLD CITY Country ABW ZWE 0.0000 3.0000 17.5819 WORLD CITY ID 1 4079 0.0000 4.0000 1.0000 +WORLD CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195 +WORLD CITY Population 42 10500000 0.0000 4.0000 1.0467 WORLD COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 +WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 +WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 WORLD COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 WORLD COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 -WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 -WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 WORLD COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232 WORLD COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532 WORLD COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640 @@ -1370,14 +1370,14 @@ SELECT UPPER(db_name), UPPER(table_name), index_name, prefix_arity, avg_frequency FROM mysql.index_stats; UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency -WORLD COUNTRYLANGUAGE Percentage 1 2.7640 -WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000 -WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232 WORLD CITY Country 1 17.5819 -WORLD CITY Population 1 1.0467 WORLD CITY PRIMARY 1 1.0000 +WORLD CITY Population 1 1.0467 WORLD COUNTRY Name 1 1.0000 WORLD COUNTRY PRIMARY 1 1.0000 +WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232 +WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000 +WORLD COUNTRYLANGUAGE Percentage 1 2.7640 use test; set use_stat_tables='never'; CREATE DATABASE world_innodb; @@ -1415,37 +1415,37 @@ ANALYZE TABLE Country, City, CountryLanguage; SELECT UPPER(db_name), UPPER(table_name), cardinality FROM mysql.table_stats; UPPER(db_name) UPPER(table_name) cardinality -WORLD COUNTRY 239 WORLD CITY 4079 +WORLD COUNTRY 239 WORLD COUNTRYLANGUAGE 984 -WORLD_INNODB COUNTRY 239 WORLD_INNODB CITY 4079 +WORLD_INNODB COUNTRY 239 WORLD_INNODB COUNTRYLANGUAGE 984 SELECT UPPER(db_name), UPPER(table_name), column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency FROM mysql.column_stats; UPPER(db_name) UPPER(table_name) column_name min_value max_value nulls_ratio avg_length avg_frequency -WORLD CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195 -WORLD CITY Population 42 10500000 0.0000 4.0000 1.0467 WORLD CITY Country ABW ZWE 0.0000 3.0000 17.5819 WORLD CITY ID 1 4079 0.0000 4.0000 1.0000 +WORLD CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195 +WORLD CITY Population 42 10500000 0.0000 4.0000 1.0467 WORLD COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 +WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 +WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 WORLD COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 WORLD COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 -WORLD COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 -WORLD COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 WORLD COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232 WORLD COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532 WORLD COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640 -WORLD_INNODB COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 -WORLD_INNODB COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 -WORLD_INNODB COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 -WORLD_INNODB COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 -WORLD_INNODB COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 +WORLD_INNODB CITY Country ABW ZWE 0.0000 3.0000 17.5819 WORLD_INNODB CITY ID 1 4079 0.0000 4.0000 1.0000 WORLD_INNODB CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195 -WORLD_INNODB CITY Country ABW ZWE 0.0000 3.0000 17.5819 WORLD_INNODB CITY Population 42 10500000 0.0000 4.0000 1.0467 +WORLD_INNODB COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 +WORLD_INNODB COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 +WORLD_INNODB COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 +WORLD_INNODB COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 +WORLD_INNODB COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 WORLD_INNODB COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232 WORLD_INNODB COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532 WORLD_INNODB COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640 @@ -1453,19 +1453,19 @@ SELECT UPPER(db_name), UPPER(table_name), index_name, prefix_arity, avg_frequency FROM mysql.index_stats; UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency -WORLD_INNODB CITY Country 1 17.5819 -WORLD_INNODB CITY Population 1 1.0467 -WORLD_INNODB CITY PRIMARY 1 1.0000 -WORLD_INNODB COUNTRY Name 1 1.0000 -WORLD_INNODB COUNTRY PRIMARY 1 1.0000 -WORLD COUNTRYLANGUAGE Percentage 1 2.7640 -WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000 -WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232 WORLD CITY Country 1 17.5819 -WORLD CITY Population 1 1.0467 WORLD CITY PRIMARY 1 1.0000 +WORLD CITY Population 1 1.0467 WORLD COUNTRY Name 1 1.0000 WORLD COUNTRY PRIMARY 1 1.0000 +WORLD COUNTRYLANGUAGE PRIMARY 1 4.2232 +WORLD COUNTRYLANGUAGE PRIMARY 2 1.0000 +WORLD COUNTRYLANGUAGE Percentage 1 2.7640 +WORLD_INNODB CITY Country 1 17.5819 +WORLD_INNODB CITY PRIMARY 1 1.0000 +WORLD_INNODB CITY Population 1 1.0467 +WORLD_INNODB COUNTRY Name 1 1.0000 +WORLD_INNODB COUNTRY PRIMARY 1 1.0000 WORLD_INNODB COUNTRYLANGUAGE PRIMARY 1 4.2232 WORLD_INNODB COUNTRYLANGUAGE PRIMARY 2 1.0000 WORLD_INNODB COUNTRYLANGUAGE Percentage 1 2.7640 @@ -1511,22 +1511,22 @@ DROP DATABASE world; SELECT UPPER(db_name), UPPER(table_name), cardinality FROM mysql.table_stats; UPPER(db_name) UPPER(table_name) cardinality -WORLD_INNODB COUNTRY 239 WORLD_INNODB CITY 4079 +WORLD_INNODB COUNTRY 239 WORLD_INNODB COUNTRYLANGUAGE 984 SELECT UPPER(db_name), UPPER(table_name), column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency FROM mysql.column_stats; UPPER(db_name) UPPER(table_name) column_name min_value max_value nulls_ratio avg_length avg_frequency -WORLD_INNODB COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 -WORLD_INNODB COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 -WORLD_INNODB COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 -WORLD_INNODB COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 -WORLD_INNODB COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 +WORLD_INNODB CITY Country ABW ZWE 0.0000 3.0000 17.5819 WORLD_INNODB CITY ID 1 4079 0.0000 4.0000 1.0000 WORLD_INNODB CITY Name A Coruña (La Coruña) Ürgenc 0.0000 8.6416 1.0195 -WORLD_INNODB CITY Country ABW ZWE 0.0000 3.0000 17.5819 WORLD_INNODB CITY Population 42 10500000 0.0000 4.0000 1.0467 +WORLD_INNODB COUNTRY Capital 1 4074 0.0293 4.0000 1.0000 +WORLD_INNODB COUNTRY Code ABW ZWE 0.0000 3.0000 1.0000 +WORLD_INNODB COUNTRY Name Afghanistan Zimbabwe 0.0000 10.1088 1.0000 +WORLD_INNODB COUNTRY Population 0 1277558000 0.0000 4.0000 1.0575 +WORLD_INNODB COUNTRY SurfaceArea 0.40 17075400.00 0.0000 4.0000 1.0042 WORLD_INNODB COUNTRYLANGUAGE Country ABW ZWE 0.0000 3.0000 4.2232 WORLD_INNODB COUNTRYLANGUAGE Language Abhyasi [South]Mande 0.0000 7.1778 2.1532 WORLD_INNODB COUNTRYLANGUAGE Percentage 0.0 99.9 0.0000 4.0000 2.7640 @@ -1535,8 +1535,8 @@ index_name, prefix_arity, avg_frequency FROM mysql.index_stats; UPPER(db_name) UPPER(table_name) index_name prefix_arity avg_frequency WORLD_INNODB CITY Country 1 17.5819 -WORLD_INNODB CITY Population 1 1.0467 WORLD_INNODB CITY PRIMARY 1 1.0000 +WORLD_INNODB CITY Population 1 1.0467 WORLD_INNODB COUNTRY Name 1 1.0000 WORLD_INNODB COUNTRY PRIMARY 1 1.0000 WORLD_INNODB COUNTRYLANGUAGE PRIMARY 1 4.2232 diff --git a/mysql-test/suite/binlog/r/binlog_row_binlog.result b/mysql-test/suite/binlog/r/binlog_row_binlog.result index b0f99e1368a..4068a80771c 100644 --- a/mysql-test/suite/binlog/r/binlog_row_binlog.result +++ b/mysql-test/suite/binlog/r/binlog_row_binlog.result @@ -903,7 +903,11 @@ master-bin.000001 # Annotate_rows # # UPDATE user SET password=password('Another master-bin.000001 # Table_map # # table_id: # (mysql.user) master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F master-bin.000001 # Query # # COMMIT -master-bin.000001 # Rotate # # master-bin.000002;pos=POS +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE FROM user WHERE host='localhost' AND user='@#@' +master-bin.000001 # Table_map # # table_id: # (mysql.user) +master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT drop table t1,t2,t3,tt1; reset master; create table t1 (a int not null auto_increment, primary key (a)) engine=myisam; @@ -955,7 +959,7 @@ insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); *** show new binlog index after rotating *** -File master-bin.000003 +File master-bin.000002 drop table t3; # # Bug #45998: database crashes when running "create as select" diff --git a/mysql-test/suite/binlog/t/binlog_row_binlog-master.opt b/mysql-test/suite/binlog/t/binlog_row_binlog-master.opt index 099f07e5d4e..e4c44226ff5 100644 --- a/mysql-test/suite/binlog/t/binlog_row_binlog-master.opt +++ b/mysql-test/suite/binlog/t/binlog_row_binlog-master.opt @@ -1 +1 @@ ---max_binlog_size=4096 --default-storage-engine=MyISAM +--max_binlog_size=8192 --default-storage-engine=MyISAM diff --git a/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result b/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result index 0b723a0f9c0..457947cabe0 100644 --- a/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result +++ b/mysql-test/suite/rpl/r/rpl_domain_id_filter_master_crash.result @@ -1,7 +1,7 @@ include/master-slave.inc [connection master] connection master; -call mtr.add_suppression("mysqld: Table './mysql/gtid_slave_pos' is marked as crashed and should be repaired"); +call mtr.add_suppression("mysqld: Table '.*gtid_slave_pos' is marked as crashed and should be repaired"); call mtr.add_suppression("Checking table: './mysql/gtid_slave_pos'"); call mtr.add_suppression("mysql.gtid_slave_pos: 1 client is using or hasn't closed the table properly"); SET @@session.gtid_domain_id= 0; @@ -57,10 +57,4 @@ connection slave; include/stop_slave.inc CHANGE MASTER TO DO_DOMAIN_IDS=(), IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=NO; include/start_slave.inc -connection master; -call mtr.add_suppression("Table 'gtid_slave_pos' is marked as crashed and should be repaired"); -Warnings: -Error 145 Table './mtr/test_suppressions' is marked as crashed and should be repaired -Error 1194 Table 'test_suppressions' is marked as crashed and should be repaired -Error 1034 1 client is using or hasn't closed the table properly include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_row_annotate_do.result b/mysql-test/suite/rpl/r/rpl_row_annotate_do.result index 4cd3debf3f3..52f7b180fae 100644 --- a/mysql-test/suite/rpl/r/rpl_row_annotate_do.result +++ b/mysql-test/suite/rpl/r/rpl_row_annotate_do.result @@ -67,7 +67,7 @@ connection slave; include/wait_for_slave_sql_error.inc [errno=1032] Last_SQL_Error (expected "Delete_rows_v1 event on table test1.t3; Can't find record in 't3'" error) Could not execute Delete_rows_v1 event on table test1.t3; Can't find record in 't3', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log master-bin.000002, end_log_pos END_LOG_POS -call mtr.add_suppression("Slave: Can't find record in 't3' Error_code: 1032"); +call mtr.add_suppression("Can't find record in 't3'"); SET GLOBAL sql_slave_skip_counter=1; START SLAVE; connection master; @@ -168,7 +168,7 @@ slave-bin.000001 # Table_map 1 # table_id: # (test1.t3) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 2 # BEGIN GTID 0-2-27 -slave-bin.000001 # Annotate_rows 2 # INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Slave: Can\'t find record in \'t3\' Error_code: 1032' COLLATE 'latin1_swedish_ci')) +slave-bin.000001 # Annotate_rows 2 # INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Can\'t find record in \'t3\'' COLLATE 'latin1_swedish_ci')) slave-bin.000001 # Table_map 2 # table_id: # (mtr.test_suppressions) slave-bin.000001 # Write_rows_v1 2 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 2 # COMMIT @@ -193,7 +193,4 @@ connection slave; ######################################################################## FLUSH LOGS; connection master; -use test; -connection slave; -call mtr.add_suppression("Can't find record in 't3'"); include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_row_annotate_dont.result b/mysql-test/suite/rpl/r/rpl_row_annotate_dont.result index 4cd3debf3f3..c657cf2fbb5 100644 --- a/mysql-test/suite/rpl/r/rpl_row_annotate_dont.result +++ b/mysql-test/suite/rpl/r/rpl_row_annotate_dont.result @@ -45,15 +45,7 @@ a b 5 gås ######################################################################## # EVENTS ON SLAVE -# The following Annotate_rows events should appear below: -# - UPDATE t1 SET b = b + 1; -# - REPLACE t1 VALUES (1,1), (2,2), (3,3); -# - INSERT INTO t2 VALUES (1,1), (2,2), (3,3) -# - INSERT INTO t3 VALUES (1,1), (2,2), (3,3) -# - DELETE t1, t2 FROM <...> -# - INSERT INTO t2 VALUES (1,1), (2,2), (3,3) -# - DELETE xt1, t2 FROM <...> -# - INSERT INTO t5(b) VALUES <...> (3 instances) +# No Annotate_rows events should appear below ######################################################################## # Ensure that a replication failure doesn't segfault - MDEV-7864 ######################################################################## @@ -67,7 +59,7 @@ connection slave; include/wait_for_slave_sql_error.inc [errno=1032] Last_SQL_Error (expected "Delete_rows_v1 event on table test1.t3; Can't find record in 't3'" error) Could not execute Delete_rows_v1 event on table test1.t3; Can't find record in 't3', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log master-bin.000002, end_log_pos END_LOG_POS -call mtr.add_suppression("Slave: Can't find record in 't3' Error_code: 1032"); +call mtr.add_suppression("Can't find record in 't3'"); SET GLOBAL sql_slave_skip_counter=1; START SLAVE; connection master; @@ -100,55 +92,45 @@ slave-bin.000001 # Table_map 1 # table_id: # (test1.t1) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-11 -slave-bin.000001 # Annotate_rows 1 # UPDATE t1 SET b = b + 1 slave-bin.000001 # Table_map 1 # table_id: # (test1.t1) slave-bin.000001 # Update_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-12 -slave-bin.000001 # Annotate_rows 1 # REPLACE t1 VALUES (1,1), (2,2), (3,3) slave-bin.000001 # Table_map 1 # table_id: # (test1.t1) slave-bin.000001 # Update_rows_v1 1 # table_id: # slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-13 -slave-bin.000001 # Annotate_rows 1 # INSERT INTO t2 VALUES (1,1), (2,2), (3,3) slave-bin.000001 # Table_map 1 # table_id: # (test1.t2) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-14 -slave-bin.000001 # Annotate_rows 1 # INSERT INTO t3 VALUES (1,1), (2,2), (3,3) slave-bin.000001 # Table_map 1 # table_id: # (test1.t3) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-15 -slave-bin.000001 # Annotate_rows 1 # DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.a=t2.a AND t2.a=t3.a slave-bin.000001 # Table_map 1 # table_id: # (test1.t2) slave-bin.000001 # Table_map 1 # table_id: # (test1.t1) slave-bin.000001 # Delete_rows_v1 1 # table_id: # slave-bin.000001 # Delete_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-17 -slave-bin.000001 # Annotate_rows 1 # INSERT INTO t2 VALUES (1,1), (2,2), (3,3) slave-bin.000001 # Table_map 1 # table_id: # (test1.t2) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-18 -slave-bin.000001 # Annotate_rows 1 # DELETE xt1, t2 FROM xt1 INNER JOIN t2 INNER JOIN t3 WHERE xt1.a=t2.a AND t2.a=t3.a slave-bin.000001 # Table_map 1 # table_id: # (test1.t2) slave-bin.000001 # Delete_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-22 -slave-bin.000001 # Annotate_rows 1 # INSERT INTO t5(b) VALUES ('foo'), ('bar'), ('baz') slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-23 -slave-bin.000001 # Annotate_rows 1 # INSERT INTO t5(b) VALUES ('gås') slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-24 -slave-bin.000001 # Annotate_rows 1 # INSERT INTO t5(b) VALUES ('gÃ¥s') slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT @@ -158,17 +140,15 @@ slave-bin.000001 # Table_map 2 # table_id: # (test1.t3) slave-bin.000001 # Delete_rows_v1 2 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 2 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-25 -slave-bin.000001 # Annotate_rows 1 # INSERT INTO t5 (a) SELECT a.a*10000+b.a*1000+c.a*100+d.a*10 FROM t5 a, t5 b, t5 c, t5 d slave-bin.000001 # Table_map 1 # table_id: # (test1.t5) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 1 # BEGIN GTID 0-1-26 -slave-bin.000001 # Annotate_rows 1 # INSERT INTO t3 (a) SELECT a FROM t5 WHERE a > 10 slave-bin.000001 # Table_map 1 # table_id: # (test1.t3) slave-bin.000001 # Write_rows_v1 1 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 1 # COMMIT slave-bin.000001 # Gtid 2 # BEGIN GTID 0-2-27 -slave-bin.000001 # Annotate_rows 2 # INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Slave: Can\'t find record in \'t3\' Error_code: 1032' COLLATE 'latin1_swedish_ci')) +slave-bin.000001 # Annotate_rows 2 # INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Can\'t find record in \'t3\'' COLLATE 'latin1_swedish_ci')) slave-bin.000001 # Table_map 2 # table_id: # (mtr.test_suppressions) slave-bin.000001 # Write_rows_v1 2 # table_id: # flags: STMT_END_F slave-bin.000001 # Query 2 # COMMIT @@ -193,7 +173,4 @@ connection slave; ######################################################################## FLUSH LOGS; connection master; -use test; -connection slave; -call mtr.add_suppression("Can't find record in 't3'"); include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_timezone.result b/mysql-test/suite/rpl/r/rpl_timezone.result index 076f0ff20f1..d1978102f4e 100644 --- a/mysql-test/suite/rpl/r/rpl_timezone.result +++ b/mysql-test/suite/rpl/r/rpl_timezone.result @@ -125,10 +125,7 @@ connection master; CREATE TABLE t1 (a INT, b TIMESTAMP); INSERT INTO t1 VALUES (1, NOW()); SET @@session.time_zone='Japan'; -SET STATEMENT sql_mode = '' FOR -UPDATE t1 SET b= '1970-01-01 08:59:59' WHERE a= 1; -Warnings: -Warning 1264 Out of range value for column 'b' at row 1 +UPDATE IGNORE t1 SET b= '1970-01-01 08:59:59' WHERE a= 1; SELECT * FROM t1 ORDER BY a; a b 1 0000-00-00 00:00:00 diff --git a/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test b/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test index 07c391b6fb6..3619ede2c01 100644 --- a/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test +++ b/mysql-test/suite/rpl/t/rpl_domain_id_filter_master_crash.test @@ -6,10 +6,9 @@ connection master; -call mtr.add_suppression("mysqld: Table './mysql/gtid_slave_pos' is marked as crashed and should be repaired"); +call mtr.add_suppression("mysqld: Table '.*gtid_slave_pos' is marked as crashed and should be repaired"); call mtr.add_suppression("Checking table: './mysql/gtid_slave_pos'"); call mtr.add_suppression("mysql.gtid_slave_pos: 1 client is using or hasn't closed the table properly"); - SET @@session.gtid_domain_id= 0; create table ti (a int auto_increment primary key) engine=innodb; @@ -86,7 +85,4 @@ sync_slave_with_master; CHANGE MASTER TO DO_DOMAIN_IDS=(), IGNORE_DOMAIN_IDS=(), MASTER_USE_GTID=NO; --source include/start_slave.inc -connection master; -call mtr.add_suppression("Table 'gtid_slave_pos' is marked as crashed and should be repaired"); - --source include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_row_annotate_dont-slave.opt b/mysql-test/suite/rpl/t/rpl_row_annotate_dont-slave.opt index 74ac3bfefcb..feef43f702c 100644 --- a/mysql-test/suite/rpl/t/rpl_row_annotate_dont-slave.opt +++ b/mysql-test/suite/rpl/t/rpl_row_annotate_dont-slave.opt @@ -1 +1 @@ ---log-slave-updates --replicate-ignore-table=test1.xt1 --replicate-ignore-table=test1.xt2 \ No newline at end of file +--log-slave-updates --skip-replicate-annotate-row-events --replicate-ignore-table=test1.xt1 --replicate-ignore-table=test1.xt2 diff --git a/mysql-test/suite/rpl/t/rpl_timezone.test b/mysql-test/suite/rpl/t/rpl_timezone.test index 2c02cda9875..4b5778ca245 100644 --- a/mysql-test/suite/rpl/t/rpl_timezone.test +++ b/mysql-test/suite/rpl/t/rpl_timezone.test @@ -157,8 +157,9 @@ CREATE TABLE t1 (a INT, b TIMESTAMP); INSERT INTO t1 VALUES (1, NOW()); SET @@session.time_zone='Japan'; -SET STATEMENT sql_mode = '' FOR -UPDATE t1 SET b= '1970-01-01 08:59:59' WHERE a= 1; +--disable_warnings +UPDATE IGNORE t1 SET b= '1970-01-01 08:59:59' WHERE a= 1; +--enable_warnings SELECT * FROM t1 ORDER BY a; sync_slave_with_master; diff --git a/mysql-test/t/bootstrap.test b/mysql-test/t/bootstrap.test index a7e0ff17494..f9823192c18 100644 --- a/mysql-test/t/bootstrap.test +++ b/mysql-test/t/bootstrap.test @@ -36,7 +36,7 @@ remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_error.sql; # Bootstrap with a query larger than 2*thd->net.max_packet # set @my_max_allowed_packet= @@max_allowed_packet; -set global max_allowed_packet=100*@@max_allowed_packet; +set global max_allowed_packet=64*@@max_allowed_packet; --disable_query_log create table t1 select 2 as a, concat(repeat('MySQL', @@max_allowed_packet/10), ';') as b; eval select * into outfile '$MYSQLTEST_VARDIR/tmp/long_query.sql' from t1; diff --git a/mysql-test/t/ctype_utf16.test b/mysql-test/t/ctype_utf16.test index fc16a4b8400..526f5251055 100644 --- a/mysql-test/t/ctype_utf16.test +++ b/mysql-test/t/ctype_utf16.test @@ -773,6 +773,7 @@ SELECT space(date_add(101, INTERVAL CHAR('1' USING utf16) hour_second)); --echo # SET NAMES utf8, @@character_set_connection=utf16; +SET STATEMENT group_concat_max_len=1024 FOR SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body UNION ALL @@ -780,6 +781,7 @@ SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1 GROUP BY id ORDER BY l DESC; +SET STATEMENT group_concat_max_len=1024 FOR SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body UNION ALL diff --git a/mysql-test/t/ctype_utf32.test b/mysql-test/t/ctype_utf32.test index bb2ce1cb6e6..343b3c3d54b 100644 --- a/mysql-test/t/ctype_utf32.test +++ b/mysql-test/t/ctype_utf32.test @@ -861,6 +861,7 @@ DROP TABLE t1; --echo # SET NAMES utf8, @@character_set_connection=utf32; +SET STATEMENT group_concat_max_len=1024 FOR SELECT id, CHAR_LENGTH(GROUP_CONCAT(body)) AS l FROM (SELECT 'a' AS id, REPEAT('foo bar', 100) AS body UNION ALL diff --git a/mysql-test/t/order_by_zerolength-4285.test b/mysql-test/t/order_by_zerolength-4285.test index 2fb58edd36d..079ce8da71e 100644 --- a/mysql-test/t/order_by_zerolength-4285.test +++ b/mysql-test/t/order_by_zerolength-4285.test @@ -3,6 +3,13 @@ # create table t1 (pk int primary key); insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); -select * from t1 order by now(), cast(pk as char(0)); -drop table t1; +# In strict mode the query produces result in a different order +# (not ordered implicitly by PK and indeterministic), so we force sorting. +# However, sorting also affects warnings, so we'll check them separately. +--disable_warnings +--sorted_result +select * from t1 order by now(), cast(pk as char(0)); +--enable_warnings +show warnings; +drop table t1; diff --git a/mysql-test/t/statistics.test b/mysql-test/t/statistics.test index d75a01333cb..61ef20605af 100644 --- a/mysql-test/t/statistics.test +++ b/mysql-test/t/statistics.test @@ -7,7 +7,9 @@ drop table if exists t1,t2; set @save_use_stat_tables=@@use_stat_tables; DELETE FROM mysql.table_stats; +--sorted_result DELETE FROM mysql.column_stats; +--sorted_result DELETE FROM mysql.index_stats; set use_stat_tables='preferably'; @@ -171,6 +173,7 @@ DELETE FROM mysql.column_stats; set histogram_size=4; ANALYZE TABLE t1; +--sorted_result SELECT db_name, table_name, column_name, min_value, max_value, nulls_ratio, avg_frequency, @@ -183,6 +186,7 @@ set histogram_size=8; set histogram_type='DOUBLE_PREC_HB'; ANALYZE TABLE t1; +--sorted_result SELECT db_name, table_name, column_name, min_value, max_value, nulls_ratio, avg_frequency, @@ -224,23 +228,34 @@ INSERT INTO t3 VALUES ANALYZE TABLE t3; +--sorted_result SELECT * FROM mysql.table_stats; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ALTER TABLE t1 RENAME TO s1; +--sorted_result SELECT * FROM mysql.table_stats; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; RENAME TABLE s1 TO t1; +--sorted_result SELECT * FROM mysql.table_stats; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; DROP TABLE t3; SELECT * FROM mysql.table_stats; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; @@ -253,37 +268,49 @@ INSERT INTO t0 SELECT a,b FROM t1; ALTER TABLE t1 CHANGE COLUMN b x varchar(32), CHANGE COLUMN e y double; SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; ALTER TABLE t1 CHANGE COLUMN x b varchar(32), CHANGE COLUMN y e double; SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; ALTER TABLE t1 RENAME TO s1, CHANGE COLUMN b x varchar(32); SHOW CREATE TABLE s1; SELECT * FROM mysql.table_stats; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ALTER TABLE s1 RENAME TO t1, CHANGE COLUMN x b varchar(32); SHOW CREATE TABLE t1; SELECT * FROM mysql.table_stats; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ALTER TABLE t1 CHANGE COLUMN b x varchar(30); SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ALTER TABLE t1 CHANGE COLUMN x b varchar(32); SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(b) INDEXES(idx1, idx4); +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR @@ -299,12 +326,16 @@ SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/save_index_stats' ALTER TABLE t1 CHANGE COLUMN b x varchar(30); SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ALTER TABLE t1 CHANGE COLUMN x b varchar(32); SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR @@ -317,7 +348,9 @@ eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/save_index_stats' INTO TABLE mysql.index_stats FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; remove_file $MYSQLTEST_VARDIR/tmp/save_column_stats; remove_file $MYSQLTEST_VARDIR/tmp/save_index_stats; @@ -325,11 +358,14 @@ remove_file $MYSQLTEST_VARDIR/tmp/save_index_stats; ALTER TABLE t1 DROP COLUMN b; SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; DROP INDEX idx2 ON t1; SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.index_stats; DROP INDEX idx1 ON t1; @@ -341,22 +377,30 @@ CREATE INDEX idx1 ON t1(b, e); CREATE INDEX idx2 ON t1(c, d); CREATE INDEX idx4 ON t1(e, b, d); SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(b) INDEXES(idx1, idx2, idx4); +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; UPDATE t1 SET b=(SELECT b FROM t0 WHERE t0.a= t1.a); ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(b) INDEXES(idx1, idx2, idx4); +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ALTER TABLE t1 DROP COLUMN b, DROP INDEX idx1, DROP INDEX idx2, DROP INDEX idx4; SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ALTER TABLE t1 ADD COLUMN b varchar(32); @@ -364,10 +408,14 @@ ALTER TABLE t1 ADD INDEX idx1 (b, e), ADD INDEX idx2 (c, d), ADD INDEX idx4 (e, b, d); UPDATE t1 SET b=(SELECT b FROM t0 WHERE t0.a= t1.a); SHOW CREATE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(b) INDEXES(idx1, idx2, idx4); +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; DELETE FROM mysql.table_stats; @@ -381,12 +429,16 @@ SELECT * FROM mysql.index_stats; ANALYZE TABLE t1 PERSISTENT FOR COLUMNS(c,e,b) INDEXES(idx2,idx4); SELECT * FROM mysql.table_stats; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; DELETE FROM mysql.index_stats WHERE table_name='t1' AND index_name='primary'; +--sorted_result SELECT * FROM mysql.index_stats; ANALYZE TABLE t1 PERSISTENT FOR COLUMNS() INDEXES(primary); +--sorted_result SELECT * FROM mysql.index_stats; DELETE FROM mysql.table_stats; @@ -396,7 +448,9 @@ DELETE FROM mysql.index_stats; ANALYZE TABLE t1 PERSISTENT FOR COLUMNS ALL INDEXES ALL; SELECT * FROM mysql.table_stats; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; CREATE TABLE t2 LIKE t1; @@ -407,8 +461,9 @@ set optimizer_switch='extended_keys=off'; ANALYZE TABLE t2; +--sorted_result SELECT * FROM mysql.table_stats; -SELECT * FROM mysql.column_stats ORDER BY column_name; +SELECT * FROM mysql.column_stats ORDER BY column_name, table_name; SELECT * FROM mysql.index_stats ORDER BY index_name, prefix_arity, table_name; DELETE FROM mysql.table_stats; @@ -461,12 +516,16 @@ ALTER TABLE t1 ADD INDEX idx1 (b(4), e), ADD INDEX idx4 (e, b(4), d); +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; ANALYZE TABLE t1; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; DELETE FROM mysql.table_stats; @@ -486,7 +545,9 @@ set use_stat_tables='never'; ANALYZE TABLE t1 PERSISTENT FOR ALL; SELECT * FROM mysql.table_stats; +--sorted_result SELECT * FROM mysql.column_stats; +--sorted_result SELECT * FROM mysql.index_stats; @@ -529,11 +590,14 @@ set use_stat_tables='preferably'; ANALYZE TABLE Country, City, CountryLanguage; --enable_result_log +--sorted_result SELECT UPPER(db_name), UPPER(table_name), cardinality FROM mysql.table_stats; +--sorted_result SELECT UPPER(db_name), UPPER(table_name), column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency FROM mysql.column_stats; +--sorted_result SELECT UPPER(db_name), UPPER(table_name), index_name, prefix_arity, avg_frequency FROM mysql.index_stats; @@ -566,11 +630,14 @@ set use_stat_tables='preferably'; ANALYZE TABLE Country, City, CountryLanguage; --enable_result_log +--sorted_result SELECT UPPER(db_name), UPPER(table_name), cardinality FROM mysql.table_stats; +--sorted_result SELECT UPPER(db_name), UPPER(table_name), column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency FROM mysql.column_stats; +--sorted_result SELECT UPPER(db_name), UPPER(table_name), index_name, prefix_arity, avg_frequency FROM mysql.index_stats; @@ -596,11 +663,14 @@ set histogram_size=default; use test; DROP DATABASE world; +--sorted_result SELECT UPPER(db_name), UPPER(table_name), cardinality FROM mysql.table_stats; +--sorted_result SELECT UPPER(db_name), UPPER(table_name), column_name, min_value, max_value, nulls_ratio, avg_length, avg_frequency FROM mysql.column_stats; +--sorted_result SELECT UPPER(db_name), UPPER(table_name), index_name, prefix_arity, avg_frequency FROM mysql.index_stats; From 6f42c3c5a4dfb25bcd951f534e4aaa8431609b87 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Thu, 9 Feb 2017 20:42:05 -0500 Subject: [PATCH 180/258] MDEV-7635: Fix for mroonga 32-bit test failures. --- .../mroonga/storage/r/column_datetime_32bit_2038.result | 2 +- .../r/column_datetime_32bit_before_unix_epoch.result | 2 +- .../mroonga/storage/r/column_datetime_32bit_max.result | 2 +- .../storage/r/column_datetime_32bit_out_of_range.result | 2 +- .../index_multiple_column_unique_date_32bit_equal.result | 8 ++++---- ...dex_multiple_column_unique_date_order_32bit_asc.result | 8 ++++---- ...ex_multiple_column_unique_date_order_32bit_desc.result | 8 ++++---- .../index_multiple_column_unique_year_32bit_equal.result | 8 ++++---- ...dex_multiple_column_unique_year_order_32bit_asc.result | 8 ++++---- ...ex_multiple_column_unique_year_order_32bit_desc.result | 8 ++++---- .../mroonga/storage/t/column_datetime_32bit_2038.test | 2 +- .../t/column_datetime_32bit_before_unix_epoch.test | 2 +- .../mroonga/storage/t/column_datetime_32bit_max.test | 2 +- .../storage/t/column_datetime_32bit_out_of_range.test | 2 +- .../t/index_multiple_column_unique_date_32bit_equal.test | 8 ++++---- ...index_multiple_column_unique_date_order_32bit_asc.test | 8 ++++---- ...ndex_multiple_column_unique_date_order_32bit_desc.test | 8 ++++---- .../t/index_multiple_column_unique_year_32bit_equal.test | 8 ++++---- ...index_multiple_column_unique_year_order_32bit_asc.test | 8 ++++---- ...ndex_multiple_column_unique_year_order_32bit_desc.test | 8 ++++---- 20 files changed, 56 insertions(+), 56 deletions(-) diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_2038.result b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_2038.result index f7e0c7ed4e6..c5764cc110c 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_2038.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_2038.result @@ -14,7 +14,7 @@ diaries CREATE TABLE `diaries` ( ) ENGINE=Mroonga DEFAULT CHARSET=utf8 INSERT INTO diaries (title, created_at) VALUES ('2038-01-18 03:14:07', '2038-01-18 03:14:07'); -INSERT INTO diaries (title, created_at) +INSERT IGNORE INTO diaries (title, created_at) VALUES ('2038-01-20 03:14:08', '2038-01-20 03:14:08'); Warnings: Warning 1265 Data truncated for column 'created_at' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_before_unix_epoch.result b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_before_unix_epoch.result index fa0c74686a4..a85d60af383 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_before_unix_epoch.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_before_unix_epoch.result @@ -12,7 +12,7 @@ diaries CREATE TABLE `diaries` ( `created_at` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=Mroonga DEFAULT CHARSET=utf8 -INSERT INTO diaries (title, created_at) +INSERT IGNORE INTO diaries (title, created_at) VALUES ('1000-01-01 00:00:00', '1000-01-01 00:00:00'); Warnings: Warning 1265 Data truncated for column 'created_at' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_max.result b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_max.result index 45af052b8d4..71dfa08c762 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_max.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_max.result @@ -12,7 +12,7 @@ diaries CREATE TABLE `diaries` ( `created_at` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=Mroonga DEFAULT CHARSET=utf8 -INSERT INTO diaries (title, created_at) +INSERT IGNORE INTO diaries (title, created_at) VALUES ('9999-12-31 23:59:59', '9999-12-31 23:59:59'); Warnings: Warning 1265 Data truncated for column 'created_at' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_out_of_range.result b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_out_of_range.result index bc91116f150..6044e24ad61 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_out_of_range.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/column_datetime_32bit_out_of_range.result @@ -12,7 +12,7 @@ diaries CREATE TABLE `diaries` ( `created_at` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=Mroonga DEFAULT CHARSET=utf8 -INSERT INTO diaries (title, created_at) +INSERT IGNORE INTO diaries (title, created_at) VALUES ('2012', '2012'); Warnings: Warning 1265 Data truncated for column 'created_at' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_32bit_equal.result b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_32bit_equal.result index 2174efc1b4f..61ce4406987 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_32bit_equal.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_32bit_equal.result @@ -5,17 +5,17 @@ start DATE, end DATE, UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, "1000-01-01", "2012-10-05"); +INSERT IGNORE INTO ranges VALUES (1, "1000-01-01", "2012-10-05"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 -INSERT INTO ranges VALUES (2, "1000-01-01", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (2, "1000-01-01", "9999-12-31"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (3, "2012-10-25", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (3, "2012-10-25", "9999-12-31"); Warnings: Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (4, "9999-12-31", "1000-01-01"); +INSERT IGNORE INTO ranges VALUES (4, "9999-12-31", "1000-01-01"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_order_32bit_asc.result b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_order_32bit_asc.result index 0a64a822fb5..bc1c3c57daa 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_order_32bit_asc.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_order_32bit_asc.result @@ -5,17 +5,17 @@ start DATE, end DATE, UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, "2012-10-25", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (1, "2012-10-25", "9999-12-31"); Warnings: Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (2, "1000-01-01", "2012-10-05"); +INSERT IGNORE INTO ranges VALUES (2, "1000-01-01", "2012-10-05"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 -INSERT INTO ranges VALUES (3, "9999-12-31", "1000-01-01"); +INSERT IGNORE INTO ranges VALUES (3, "9999-12-31", "1000-01-01"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (4, "1000-01-01", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (4, "1000-01-01", "9999-12-31"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_order_32bit_desc.result b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_order_32bit_desc.result index 24439fdf5fa..820ee4f4465 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_order_32bit_desc.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_date_order_32bit_desc.result @@ -5,17 +5,17 @@ start DATE, end DATE, UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, "2012-10-25", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (1, "2012-10-25", "9999-12-31"); Warnings: Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (2, "1000-01-01", "2012-10-05"); +INSERT IGNORE INTO ranges VALUES (2, "1000-01-01", "2012-10-05"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 -INSERT INTO ranges VALUES (3, "9999-12-31", "1000-01-01"); +INSERT IGNORE INTO ranges VALUES (3, "9999-12-31", "1000-01-01"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (4, "1000-01-01", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (4, "1000-01-01", "9999-12-31"); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_32bit_equal.result b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_32bit_equal.result index 04b3ba38395..ad936268b46 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_32bit_equal.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_32bit_equal.result @@ -5,17 +5,17 @@ start YEAR, end YEAR, UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, 1901, 2012); +INSERT IGNORE INTO ranges VALUES (1, 1901, 2012); Warnings: Warning 1265 Data truncated for column 'start' at row 1 -INSERT INTO ranges VALUES (2, 1901, 2155); +INSERT IGNORE INTO ranges VALUES (2, 1901, 2155); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (3, 2012, 2155); +INSERT IGNORE INTO ranges VALUES (3, 2012, 2155); Warnings: Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (4, 2155, 1901); +INSERT IGNORE INTO ranges VALUES (4, 2155, 1901); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_order_32bit_asc.result b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_order_32bit_asc.result index 9a84d115a87..8200263a93c 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_order_32bit_asc.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_order_32bit_asc.result @@ -5,17 +5,17 @@ start YEAR, end YEAR, UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, 2012, 2155); +INSERT IGNORE INTO ranges VALUES (1, 2012, 2155); Warnings: Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (2, 1901, 2012); +INSERT IGNORE INTO ranges VALUES (2, 1901, 2012); Warnings: Warning 1265 Data truncated for column 'start' at row 1 -INSERT INTO ranges VALUES (3, 2155, 1901); +INSERT IGNORE INTO ranges VALUES (3, 2155, 1901); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (4, 1901, 2155); +INSERT IGNORE INTO ranges VALUES (4, 1901, 2155); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_order_32bit_desc.result b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_order_32bit_desc.result index 3deb7435030..fc85d2a98a1 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_order_32bit_desc.result +++ b/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_unique_year_order_32bit_desc.result @@ -5,17 +5,17 @@ start YEAR, end YEAR, UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, 2012, 2155); +INSERT IGNORE INTO ranges VALUES (1, 2012, 2155); Warnings: Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (2, 1901, 2012); +INSERT IGNORE INTO ranges VALUES (2, 1901, 2012); Warnings: Warning 1265 Data truncated for column 'start' at row 1 -INSERT INTO ranges VALUES (3, 2155, 1901); +INSERT IGNORE INTO ranges VALUES (3, 2155, 1901); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 -INSERT INTO ranges VALUES (4, 1901, 2155); +INSERT IGNORE INTO ranges VALUES (4, 1901, 2155); Warnings: Warning 1265 Data truncated for column 'start' at row 1 Warning 1265 Data truncated for column 'end' at row 1 diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_2038.test b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_2038.test index 9c3344cbe98..023f4e8b0b7 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_2038.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_2038.test @@ -30,7 +30,7 @@ SHOW CREATE TABLE diaries; INSERT INTO diaries (title, created_at) VALUES ('2038-01-18 03:14:07', '2038-01-18 03:14:07'); -INSERT INTO diaries (title, created_at) +INSERT IGNORE INTO diaries (title, created_at) VALUES ('2038-01-20 03:14:08', '2038-01-20 03:14:08'); SELECT * FROM diaries; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_before_unix_epoch.test b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_before_unix_epoch.test index 61eecbb2ac8..7e357067b54 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_before_unix_epoch.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_before_unix_epoch.test @@ -28,7 +28,7 @@ CREATE TABLE diaries ( ) DEFAULT CHARSET UTF8; SHOW CREATE TABLE diaries; -INSERT INTO diaries (title, created_at) +INSERT IGNORE INTO diaries (title, created_at) VALUES ('1000-01-01 00:00:00', '1000-01-01 00:00:00'); SELECT * FROM diaries; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_max.test b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_max.test index 7bbfcbe7a3a..863bae8ecf1 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_max.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_max.test @@ -28,7 +28,7 @@ CREATE TABLE diaries ( ) DEFAULT CHARSET UTF8; SHOW CREATE TABLE diaries; -INSERT INTO diaries (title, created_at) +INSERT IGNORE INTO diaries (title, created_at) VALUES ('9999-12-31 23:59:59', '9999-12-31 23:59:59'); SELECT * FROM diaries; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_out_of_range.test b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_out_of_range.test index 2cc99562231..68ff4b664fa 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_out_of_range.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/column_datetime_32bit_out_of_range.test @@ -28,7 +28,7 @@ CREATE TABLE diaries ( ) DEFAULT CHARSET UTF8; SHOW CREATE TABLE diaries; -INSERT INTO diaries (title, created_at) +INSERT IGNORE INTO diaries (title, created_at) VALUES ('2012', '2012'); SELECT * FROM diaries; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_32bit_equal.test b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_32bit_equal.test index b206333d28d..66a0c463a34 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_32bit_equal.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_32bit_equal.test @@ -29,10 +29,10 @@ CREATE TABLE ranges ( UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, "1000-01-01", "2012-10-05"); -INSERT INTO ranges VALUES (2, "1000-01-01", "9999-12-31"); -INSERT INTO ranges VALUES (3, "2012-10-25", "9999-12-31"); -INSERT INTO ranges VALUES (4, "9999-12-31", "1000-01-01"); +INSERT IGNORE INTO ranges VALUES (1, "1000-01-01", "2012-10-05"); +INSERT IGNORE INTO ranges VALUES (2, "1000-01-01", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (3, "2012-10-25", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (4, "9999-12-31", "1000-01-01"); SELECT * FROM ranges FORCE INDEX(range_key) WHERE start = "1000-01-01" AND end = "9999-12-31"; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_order_32bit_asc.test b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_order_32bit_asc.test index b877ed2f01a..09306536da9 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_order_32bit_asc.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_order_32bit_asc.test @@ -29,10 +29,10 @@ CREATE TABLE ranges ( UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, "2012-10-25", "9999-12-31"); -INSERT INTO ranges VALUES (2, "1000-01-01", "2012-10-05"); -INSERT INTO ranges VALUES (3, "9999-12-31", "1000-01-01"); -INSERT INTO ranges VALUES (4, "1000-01-01", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (1, "2012-10-25", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (2, "1000-01-01", "2012-10-05"); +INSERT IGNORE INTO ranges VALUES (3, "9999-12-31", "1000-01-01"); +INSERT IGNORE INTO ranges VALUES (4, "1000-01-01", "9999-12-31"); SELECT * FROM ranges FORCE INDEX(range_key) ORDER BY start, end; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_order_32bit_desc.test b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_order_32bit_desc.test index c3185bb0fdc..a3306fc776f 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_order_32bit_desc.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_date_order_32bit_desc.test @@ -29,10 +29,10 @@ CREATE TABLE ranges ( UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, "2012-10-25", "9999-12-31"); -INSERT INTO ranges VALUES (2, "1000-01-01", "2012-10-05"); -INSERT INTO ranges VALUES (3, "9999-12-31", "1000-01-01"); -INSERT INTO ranges VALUES (4, "1000-01-01", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (1, "2012-10-25", "9999-12-31"); +INSERT IGNORE INTO ranges VALUES (2, "1000-01-01", "2012-10-05"); +INSERT IGNORE INTO ranges VALUES (3, "9999-12-31", "1000-01-01"); +INSERT IGNORE INTO ranges VALUES (4, "1000-01-01", "9999-12-31"); SELECT * FROM ranges FORCE INDEX(range_key) ORDER BY start DESC, end DESC; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_32bit_equal.test b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_32bit_equal.test index 3daf3fa4153..b09214d0037 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_32bit_equal.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_32bit_equal.test @@ -29,10 +29,10 @@ CREATE TABLE ranges ( UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, 1901, 2012); -INSERT INTO ranges VALUES (2, 1901, 2155); -INSERT INTO ranges VALUES (3, 2012, 2155); -INSERT INTO ranges VALUES (4, 2155, 1901); +INSERT IGNORE INTO ranges VALUES (1, 1901, 2012); +INSERT IGNORE INTO ranges VALUES (2, 1901, 2155); +INSERT IGNORE INTO ranges VALUES (3, 2012, 2155); +INSERT IGNORE INTO ranges VALUES (4, 2155, 1901); SELECT * FROM ranges FORCE INDEX(range_key) WHERE start = 1901 AND end = 2155; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_order_32bit_asc.test b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_order_32bit_asc.test index 774c06772a7..ffc00ddf1c1 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_order_32bit_asc.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_order_32bit_asc.test @@ -29,10 +29,10 @@ CREATE TABLE ranges ( UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, 2012, 2155); -INSERT INTO ranges VALUES (2, 1901, 2012); -INSERT INTO ranges VALUES (3, 2155, 1901); -INSERT INTO ranges VALUES (4, 1901, 2155); +INSERT IGNORE INTO ranges VALUES (1, 2012, 2155); +INSERT IGNORE INTO ranges VALUES (2, 1901, 2012); +INSERT IGNORE INTO ranges VALUES (3, 2155, 1901); +INSERT IGNORE INTO ranges VALUES (4, 1901, 2155); SELECT * FROM ranges FORCE INDEX(range_key) ORDER BY start, end; diff --git a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_order_32bit_desc.test b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_order_32bit_desc.test index bd0d20fe973..c714f4424d6 100644 --- a/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_order_32bit_desc.test +++ b/storage/mroonga/mysql-test/mroonga/storage/t/index_multiple_column_unique_year_order_32bit_desc.test @@ -29,10 +29,10 @@ CREATE TABLE ranges ( UNIQUE KEY range_key(start, end) ); -INSERT INTO ranges VALUES (1, 2012, 2155); -INSERT INTO ranges VALUES (2, 1901, 2012); -INSERT INTO ranges VALUES (3, 2155, 1901); -INSERT INTO ranges VALUES (4, 1901, 2155); +INSERT IGNORE INTO ranges VALUES (1, 2012, 2155); +INSERT IGNORE INTO ranges VALUES (2, 1901, 2012); +INSERT IGNORE INTO ranges VALUES (3, 2155, 1901); +INSERT IGNORE INTO ranges VALUES (4, 1901, 2155); SELECT * FROM ranges FORCE INDEX(range_key) ORDER BY start DESC, end DESC; From 1b4f694adfa257d41b5ddb141e5bcc23e6dfd9c8 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Fri, 10 Feb 2017 14:17:19 +0000 Subject: [PATCH 181/258] MDEV-10291 : Fix race condition in bootstrap main thread may destroy mutexes that bootstrap is using in THD destructor. --- sql/sql_parse.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index ab1781edfac..e413b73f62c 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1085,9 +1085,10 @@ void do_handle_bootstrap(THD *thd) handle_bootstrap_impl(thd); end: - in_bootstrap= FALSE; delete thd; + mysql_mutex_lock(&LOCK_thread_count); + in_bootstrap = FALSE; mysql_cond_broadcast(&COND_thread_count); mysql_mutex_unlock(&LOCK_thread_count); From 559345806216369bad999539018bd3943860a5d5 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Fri, 10 Feb 2017 17:20:46 -0800 Subject: [PATCH 182/258] Fixed bug mdev-12015. Corrected an assertion in JOIN::create_postjoin_aggr_table(): JOIN::join_tab[0] can be the first aggregation table if the query uses window functions. --- mysql-test/r/win.result | 11 +++++++++++ mysql-test/t/win.test | 15 +++++++++++++++ sql/sql_select.cc | 4 ++-- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index f693d6641df..b863ee4ddd6 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2842,3 +2842,14 @@ max(i) min(i) f 16 14 2 20 17 3 drop table t1; +# +# MDEV-12015: window function over select with WHERE +# that is always FALSE +# +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (3), (1), (2); +SELECT i, ROW_NUMBER() OVER () FROM t1 WHERE 1 = 2; +i ROW_NUMBER() OVER () +SELECT i, COUNT(*) OVER () FROM t1 WHERE 1 = 2; +i COUNT(*) OVER () +DROP TABLE t1; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index c231c1eeecf..f92334e4079 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1636,3 +1636,18 @@ select max(i), min(i), min(max(i)-min(i)) over (partition by count(i)) f group by b; drop table t1; + +--echo # +--echo # MDEV-12015: window function over select with WHERE +--echo # that is always FALSE +--echo # + +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (3), (1), (2); + +SELECT i, ROW_NUMBER() OVER () FROM t1 WHERE 1 = 2; + +SELECT i, COUNT(*) OVER () FROM t1 WHERE 1 = 2; + +DROP TABLE t1; + diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 865d852d371..38752a153b5 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2779,8 +2779,8 @@ JOIN::create_postjoin_aggr_table(JOIN_TAB *tab, List *table_fields, tmp_table_param.using_outer_summary_function= tab->tmp_table_param->using_outer_summary_function; tab->join= this; - DBUG_ASSERT(tab > tab->join->join_tab || !tables_list); - if (tables_list) + DBUG_ASSERT(tab > join_tab || select_lex->have_window_funcs()); + if (tab > join_tab) (tab - 1)->next_select= sub_select_postjoin_aggr; tab->aggr= new (thd->mem_root) AGGR_OP(tab); if (!tab->aggr) From f04efa839dd0288396f88c4a1d63e1d599573ace Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Sat, 11 Feb 2017 11:16:36 -0500 Subject: [PATCH 183/258] MDEV-7635: Fix for ctype_gbk_export_import.test --- mysql-test/t/ctype_gbk_export_import.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/t/ctype_gbk_export_import.test b/mysql-test/t/ctype_gbk_export_import.test index 02d18fe60d4..f0d0b70fce6 100644 --- a/mysql-test/t/ctype_gbk_export_import.test +++ b/mysql-test/t/ctype_gbk_export_import.test @@ -100,7 +100,7 @@ CALL populate(); --vertical_results TRUNCATE TABLE t1; --eval SELECT display_file(LOAD_FILE('\$MYSQLTEST_VARDIR/tmp/t1')) AS file; ---exec LC_ALL=$LOCALE \$MYSQL $RESTORE_OPTIONS gbk -e "LOAD DATA INFILE '\$MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t1 $RESTORE_CHARSET_CLAUSE" +--exec LC_ALL=$LOCALE \$MYSQL $RESTORE_OPTIONS gbk -e "LOAD DATA INFILE '\$MYSQLTEST_VARDIR/tmp/t1' IGNORE INTO TABLE t1 $RESTORE_CHARSET_CLAUSE" SELECT * FROM v1; --echo End of {$LOCALE}{$DUMP_OPTIONS $DUMP_CHARSET_CLAUSE}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE} --echo @@ -139,7 +139,7 @@ CALL populate(); --vertical_results TRUNCATE TABLE t1; --eval SELECT display_file(LOAD_FILE('\$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.txt')) AS file; ---exec LC_ALL=$LOCALE \$MYSQL $RESTORE_OPTIONS gbk -e "LOAD DATA INFILE '\$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.txt' INTO TABLE t1 $RESTORE_CHARSET_CLAUSE" +--exec LC_ALL=$LOCALE \$MYSQL $RESTORE_OPTIONS gbk -e "LOAD DATA INFILE '\$MYSQLTEST_VARDIR/tmp/tmpgbk/t1.txt' IGNORE INTO TABLE t1 $RESTORE_CHARSET_CLAUSE" SELECT * FROM v1; --echo End of {$LOCALE}{$DUMP_OPTIONS}{$RESTORE_OPTIONS $RESTORE_CHARSET_CLAUSE} --echo From d35aea54075e0ad521e0cfda522d0660afe4b201 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Sun, 12 Feb 2017 15:50:14 -0800 Subject: [PATCH 184/258] Fixed bugs mdev-12051, mdev-10885. These are different bugs, but the fixing code is the same: if window functions are used over implicit grouping then now the execution should follow the general path calling the function set in JOIN::first_select. --- mysql-test/r/win.result | 72 +++++++++++++++++++++++++++++++++++++++++ mysql-test/t/win.test | 60 ++++++++++++++++++++++++++++++++++ sql/sql_select.cc | 22 +++++++++---- 3 files changed, 147 insertions(+), 7 deletions(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index b863ee4ddd6..fd3aea80083 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2850,6 +2850,78 @@ CREATE TABLE t1 (i INT); INSERT INTO t1 VALUES (3), (1), (2); SELECT i, ROW_NUMBER() OVER () FROM t1 WHERE 1 = 2; i ROW_NUMBER() OVER () +NULL 1 SELECT i, COUNT(*) OVER () FROM t1 WHERE 1 = 2; i COUNT(*) OVER () +NULL 1 DROP TABLE t1; +# +# MDEV-12051: window function in query with implicit grouping +# on always empty set +# +create table t1 (a int, b varchar(8)); +insert into t1 values (1,'foo'),(2,'bar'); +select max(a), row_number() over () from t1 where a > 10; +max(a) row_number() over () +NULL 1 +select max(a), sum(max(a)) over () from t1 where a > 10; +max(a) sum(max(a)) over () +NULL NULL +select max(a), sum(max(a)) over (partition by max(a)) from t1 where a > 10; +max(a) sum(max(a)) over (partition by max(a)) +NULL NULL +select max(a), row_number() over () from t1 where 1 = 2; +max(a) row_number() over () +NULL 1 +select max(a), sum(max(a)) over () from t1 where 1 = 2; +max(a) sum(max(a)) over () +NULL NULL +select max(a), sum(max(a)) over (partition by max(a)) from t1 where 1 = 2; +max(a) sum(max(a)) over (partition by max(a)) +NULL NULL +select max(a), row_number() over () from t1 where 1 = 2 +having max(a) is not null; +max(a) row_number() over () +select max(a), sum(max(a)) over () from t1 where 1 = 2 +having max(a) is not null; +max(a) sum(max(a)) over () +drop table t1; +# +# MDEV-10885: window function in query with implicit grouping +# with constant condition evaluated to false +# +CREATE TABLE t1 (a INT, b VARCHAR(8)); +INSERT INTO t1 VALUES (1,'foo'),(2,'bar'); +CREATE TABLE t2 (c INT); +INSERT INTO t2 VALUES (3),(4); +CREATE TABLE t3 (d INT); +INSERT INTO t3 VALUES (5),(6); +SELECT MAX(a), ROW_NUMBER() OVER (PARTITION BY MAX(a)) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); +MAX(a) ROW_NUMBER() OVER (PARTITION BY MAX(a)) +NULL 1 +SELECT MAX(a), COUNT(MAX(a)) OVER (PARTITION BY MAX(a)) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); +MAX(a) COUNT(MAX(a)) OVER (PARTITION BY MAX(a)) +NULL 0 +SELECT MAX(a), SUM(MAX(a)) OVER (PARTITION BY MAX(a)) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); +MAX(a) SUM(MAX(a)) OVER (PARTITION BY MAX(a)) +NULL NULL +SELECT MAX(a), ROW_NUMBER() OVER (PARTITION BY MAX(a)) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ) +HAVING MAX(a) IS NOT NULL; +MAX(a) ROW_NUMBER() OVER (PARTITION BY MAX(a)) +SELECT a, MAX(a), ROW_NUMBER() OVER (PARTITION BY b) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); +a MAX(a) ROW_NUMBER() OVER (PARTITION BY b) +NULL NULL 1 +SELECT a, COUNT(a), AVG(a) OVER (PARTITION BY b) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); +a COUNT(a) AVG(a) OVER (PARTITION BY b) +NULL 0 NULL +SELECT a, MAX(a), AVG(a) OVER (PARTITION BY b) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); +a MAX(a) AVG(a) OVER (PARTITION BY b) +NULL NULL NULL +DROP TABLE t1,t2,t3; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index f92334e4079..aa636f7a294 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1651,3 +1651,63 @@ SELECT i, COUNT(*) OVER () FROM t1 WHERE 1 = 2; DROP TABLE t1; +--echo # +--echo # MDEV-12051: window function in query with implicit grouping +--echo # on always empty set +--echo # + +create table t1 (a int, b varchar(8)); +insert into t1 values (1,'foo'),(2,'bar'); + +select max(a), row_number() over () from t1 where a > 10; +select max(a), sum(max(a)) over () from t1 where a > 10; +select max(a), sum(max(a)) over (partition by max(a)) from t1 where a > 10; + +select max(a), row_number() over () from t1 where 1 = 2; +select max(a), sum(max(a)) over () from t1 where 1 = 2; +select max(a), sum(max(a)) over (partition by max(a)) from t1 where 1 = 2; + +select max(a), row_number() over () from t1 where 1 = 2 + having max(a) is not null; +select max(a), sum(max(a)) over () from t1 where 1 = 2 + having max(a) is not null; + +drop table t1; + +--echo # +--echo # MDEV-10885: window function in query with implicit grouping +--echo # with constant condition evaluated to false +--echo # + +CREATE TABLE t1 (a INT, b VARCHAR(8)); +INSERT INTO t1 VALUES (1,'foo'),(2,'bar'); + +CREATE TABLE t2 (c INT); +INSERT INTO t2 VALUES (3),(4); + +CREATE TABLE t3 (d INT); +INSERT INTO t3 VALUES (5),(6); + +SELECT MAX(a), ROW_NUMBER() OVER (PARTITION BY MAX(a)) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); + +SELECT MAX(a), COUNT(MAX(a)) OVER (PARTITION BY MAX(a)) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); + +SELECT MAX(a), SUM(MAX(a)) OVER (PARTITION BY MAX(a)) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); + +SELECT MAX(a), ROW_NUMBER() OVER (PARTITION BY MAX(a)) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ) +HAVING MAX(a) IS NOT NULL; + +SELECT a, MAX(a), ROW_NUMBER() OVER (PARTITION BY b) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); + +SELECT a, COUNT(a), AVG(a) OVER (PARTITION BY b) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); + +SELECT a, MAX(a), AVG(a) OVER (PARTITION BY b) FROM t1 +WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); + +DROP TABLE t1,t2,t3; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index ce9d75e9744..ac4b842e328 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -3342,13 +3342,21 @@ void JOIN::exec_inner() if (zero_result_cause) { - (void) return_zero_rows(this, result, select_lex->leaf_tables, - *columns_list, - send_row_on_empty_set(), - select_options, - zero_result_cause, - having ? having : tmp_having, all_fields); - DBUG_VOID_RETURN; + if (select_lex->have_window_funcs()) + { + const_tables= table_count; + first_select= sub_select_postjoin_aggr; + } + else + { + (void) return_zero_rows(this, result, select_lex->leaf_tables, + *columns_list, + send_row_on_empty_set(), + select_options, + zero_result_cause, + having ? having : tmp_having, all_fields); + DBUG_VOID_RETURN; + } } /* From 412ee0330caf1e586a67d40c1e7dd710481a973a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 10 Feb 2017 20:06:24 +0200 Subject: [PATCH 185/258] Fix a memory leak on aborted InnoDB startup. innodb_shutdown(), trx_sys_close(): Startup may be aborted between purge_sys and trx_sys creation. Therefore, purge_sys must be freed independently of trx_sys. innobase_start_or_create_for_mysql(): Remember to free purge_queue if it was not yet attached to purge_sys. --- storage/innobase/srv/srv0start.cc | 5 +++++ storage/innobase/trx/trx0sys.cc | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 06feb5d25ef..69d094cdc86 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -2206,6 +2206,7 @@ files_checked: DBUG_PRINT("ib_log", ("apply completed")); if (err != DB_SUCCESS) { + UT_DELETE(purge_queue); return(srv_init_abort(err)); } @@ -2280,6 +2281,7 @@ files_checked: " a startup if you are trying to" " recover a badly corrupt database."; + UT_DELETE(purge_queue); return(srv_init_abort(DB_ERROR)); } } @@ -2796,6 +2798,9 @@ innodb_shutdown() trx_sys_file_format_close(); trx_sys_close(); } + if (purge_sys) { + trx_purge_sys_close(); + } if (buf_dblwr) { buf_dblwr_free(); } diff --git a/storage/innobase/trx/trx0sys.cc b/storage/innobase/trx/trx0sys.cc index 434e29bcf27..27321d73bd2 100644 --- a/storage/innobase/trx/trx0sys.cc +++ b/storage/innobase/trx/trx0sys.cc @@ -1092,10 +1092,6 @@ trx_sys_close(void) trx_dummy_sess = NULL; } - if (purge_sys) { - trx_purge_sys_close(); - } - /* Only prepared transactions may be left in the system. Free them. */ ut_a(UT_LIST_GET_LEN(trx_sys->rw_trx_list) == trx_sys->n_prepared_trx || !srv_was_started From 96c4b9d49f76eebb3dda9fa1524da394bd67b0ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 10 Feb 2017 19:32:03 +0200 Subject: [PATCH 186/258] MDEV-11782 preparation: Remove recv_sys_t::last_block. We can use log_sys->buf instead of recv_sys->last_block during crash recovery. Remove the redundant buffer. --- storage/innobase/include/log0recv.h | 6 ------ storage/innobase/log/log0recv.cc | 31 +++++++++-------------------- 2 files changed, 9 insertions(+), 28 deletions(-) diff --git a/storage/innobase/include/log0recv.h b/storage/innobase/include/log0recv.h index b0ba72427a1..6b4f817a9d0 100644 --- a/storage/innobase/include/log0recv.h +++ b/storage/innobase/include/log0recv.h @@ -214,12 +214,6 @@ struct recv_sys_t{ ibool apply_batch_on; /*!< this is TRUE when a log rec application batch is running */ - byte* last_block; - /*!< possible incomplete last recovered log - block */ - byte* last_block_buf_start; - /*!< the nonaligned start address of the - preceding buffer */ byte* buf; /*!< buffer for parsing log records */ ulint len; /*!< amount of data in buf */ lsn_t parse_start_lsn; diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index befa7e58ccd..3c141b744ce 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -474,7 +474,6 @@ recv_sys_close(void) } ut_free(recv_sys->buf); - ut_free(recv_sys->last_block_buf_start); ut_ad(!recv_writer_thread_active); mutex_free(&recv_sys->writer_mutex); @@ -512,7 +511,6 @@ recv_sys_mem_free(void) } ut_free(recv_sys->buf); - ut_free(recv_sys->last_block_buf_start); ut_free(recv_sys); recv_sys = NULL; } @@ -631,12 +629,6 @@ recv_sys_init( recv_sys->apply_log_recs = FALSE; recv_sys->apply_batch_on = FALSE; - recv_sys->last_block_buf_start = static_cast( - ut_malloc_nokey(2 * OS_FILE_LOG_BLOCK_SIZE)); - - recv_sys->last_block = static_cast(ut_align( - recv_sys->last_block_buf_start, OS_FILE_LOG_BLOCK_SIZE)); - recv_sys->found_corrupt_log = false; recv_sys->found_corrupt_fs = false; recv_sys->mlog_checkpoint_lsn = 0; @@ -680,12 +672,10 @@ recv_sys_debug_free(void) hash_table_free(recv_sys->addr_hash); mem_heap_free(recv_sys->heap); ut_free(recv_sys->buf); - ut_free(recv_sys->last_block_buf_start); recv_sys->buf = NULL; recv_sys->heap = NULL; recv_sys->addr_hash = NULL; - recv_sys->last_block_buf_start = NULL; /* wake page cleaner up to progress */ if (!srv_read_only_mode) { @@ -708,25 +698,24 @@ void recv_synchronize_groups(void) /*=========================*/ { - lsn_t start_lsn; - lsn_t end_lsn; - lsn_t recovered_lsn; - - recovered_lsn = recv_sys->recovered_lsn; + const lsn_t recovered_lsn = recv_sys->recovered_lsn; /* Read the last recovered log block to the recovery system buffer: the block is always incomplete */ - start_lsn = ut_uint64_align_down(recovered_lsn, - OS_FILE_LOG_BLOCK_SIZE); - end_lsn = ut_uint64_align_up(recovered_lsn, OS_FILE_LOG_BLOCK_SIZE); + const lsn_t start_lsn = ut_uint64_align_down(recovered_lsn, + OS_FILE_LOG_BLOCK_SIZE); + const lsn_t end_lsn = ut_uint64_align_up(recovered_lsn, + OS_FILE_LOG_BLOCK_SIZE); - ut_a(start_lsn != end_lsn); + ut_ad(start_lsn != end_lsn); - log_group_read_log_seg(recv_sys->last_block, + log_group_read_log_seg(log_sys->buf, UT_LIST_GET_FIRST(log_sys->log_groups), start_lsn, end_lsn); + ut_ad(UT_LIST_GET_LEN(log_sys->log_groups) == 1); + for (log_group_t* group = UT_LIST_GET_FIRST(log_sys->log_groups); group; group = UT_LIST_GET_NEXT(log_groups, group)) { @@ -3404,8 +3393,6 @@ recv_recovery_from_checkpoint_start( srv_start_lsn = recv_sys->recovered_lsn; } - ut_memcpy(log_sys->buf, recv_sys->last_block, OS_FILE_LOG_BLOCK_SIZE); - log_sys->buf_free = (ulint) log_sys->lsn % OS_FILE_LOG_BLOCK_SIZE; log_sys->buf_next_to_write = log_sys->buf_free; log_sys->write_lsn = log_sys->lsn; From 3272a1974190e0238da63052b8d26f53aea8e03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 10 Feb 2017 20:26:02 +0200 Subject: [PATCH 187/258] MDEV-11782 preparation: Add separate code for validating the 10.1 redo log. log_crypt_101_read_checkpoint(): Read the encryption information from a MariaDB 10.1 checkpoint page. log_crypt_101_read_block(): Attempt to decrypt a MariaDB 10.1 redo log page. recv_log_format_0_recover(): Only attempt decryption on checksum mismatch. NOTE: With the MariaDB 10.1 innodb_encrypt_log format, we can actually determine from the cleartext portion of the redo log whether the redo log is empty. We do not really have to decrypt the redo log here, if we did not want to determine if the checksum is valid. --- storage/innobase/include/log0crypt.h | 15 ++++- storage/innobase/log/log0crypt.cc | 82 +++++++++++++++++++++++++++- storage/innobase/log/log0recv.cc | 7 +-- 3 files changed, 98 insertions(+), 6 deletions(-) diff --git a/storage/innobase/include/log0crypt.h b/storage/innobase/include/log0crypt.h index 6b164e90d6e..6762b621155 100644 --- a/storage/innobase/include/log0crypt.h +++ b/storage/innobase/include/log0crypt.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (C) 2013, 2015, Google Inc. All Rights Reserved. -Copyright (C) 2014, 2016, MariaDB Corporation. All Rights Reserved. +Copyright (C) 2014, 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -54,6 +54,19 @@ log_crypt_write_checkpoint_buf( /*===========================*/ byte* buf); /*!< in/out: checkpoint buffer */ +/** Read the MariaDB 10.1 checkpoint crypto (version, msg and iv) info. +@param[in] buf checkpoint buffer +@return whether the operation was successful */ +UNIV_INTERN +bool +log_crypt_101_read_checkpoint(const byte* buf); + +/** Decrypt a MariaDB 10.1 redo log block. +@param[in,out] buf log block +@return whether the decryption was successful */ +bool +log_crypt_101_read_block(byte* buf); + /*********************************************************************//** Read the crypto (version, msg and iv) info, which has been used for log blocks with lsn <= this checkpoint's lsn, from a log header's diff --git a/storage/innobase/log/log0crypt.cc b/storage/innobase/log/log0crypt.cc index b0a89be8de2..cde9768e78e 100644 --- a/storage/innobase/log/log0crypt.cc +++ b/storage/innobase/log/log0crypt.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (C) 2013, 2015, Google Inc. All Rights Reserved. -Copyright (C) 2014, 2016, MariaDB Corporation. All Rights Reserved. +Copyright (C) 2014, 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -455,6 +455,86 @@ log_decrypt_after_read( } } +/** Read the MariaDB 10.1 checkpoint crypto (version, msg and iv) info. +@param[in] buf checkpoint buffer +@return whether the operation was successful */ +UNIV_INTERN +bool +log_crypt_101_read_checkpoint(const byte* buf) +{ + buf += 20 + 32 * 9; + + const size_t n = *buf++ == 2 ? std::min(unsigned(*buf++), 5U) : 0; + + for (size_t i = 0; i < n; i++) { + struct crypt_info_t info; + info.checkpoint_no = mach_read_from_4(buf); + info.key_version = mach_read_from_4(buf + 4); + memcpy(info.crypt_msg, buf + 8, MY_AES_BLOCK_SIZE); + memcpy(info.crypt_nonce, buf + 24, MY_AES_BLOCK_SIZE); + + if (!add_crypt_info(&info, true)) { + return false; + } + buf += 4 + 4 + 2 * MY_AES_BLOCK_SIZE; + } + + return true; +} + +/** Decrypt a MariaDB 10.1 redo log block. +@param[in,out] buf log block +@return whether the decryption was successful */ +UNIV_INTERN +bool +log_crypt_101_read_block(byte* buf) +{ + ut_ad(log_block_calc_checksum_format_0(buf) + != log_block_get_checksum(buf)); + const crypt_info_t* info = get_crypt_info(buf); + + if (!info || info->key_version == 0) { + return false; + } + + byte dst[OS_FILE_LOG_BLOCK_SIZE]; + uint dst_len; + byte aes_ctr_counter[MY_AES_BLOCK_SIZE]; + + const uint src_len = OS_FILE_LOG_BLOCK_SIZE - LOG_BLOCK_HDR_SIZE; + + ulint log_block_no = log_block_get_hdr_no(buf); + lsn_t log_block_start_lsn = log_block_get_start_lsn( + srv_start_lsn, log_block_no); + + /* The log block header is not encrypted. */ + memcpy(dst, buf, LOG_BLOCK_HDR_SIZE); + + memcpy(aes_ctr_counter, info->crypt_nonce, 3); + mach_write_to_8(aes_ctr_counter + 3, log_block_start_lsn); + mach_write_to_4(aes_ctr_counter + 11, log_block_no); + aes_ctr_counter[15] = 0; + + int rc = encryption_crypt(buf + LOG_BLOCK_HDR_SIZE, src_len, + dst + LOG_BLOCK_HDR_SIZE, &dst_len, + const_cast(info->crypt_key), + MY_AES_BLOCK_SIZE, + aes_ctr_counter, MY_AES_BLOCK_SIZE, + ENCRYPTION_FLAG_DECRYPT + | ENCRYPTION_FLAG_NOPAD, + LOG_DEFAULT_ENCRYPTION_KEY, + info->key_version); + + if (rc != MY_AES_OK || dst_len != src_len + || log_block_calc_checksum_format_0(dst) + != log_block_get_checksum(dst)) { + return false; + } + + memcpy(buf, dst, sizeof dst); + return true; +} + /*********************************************************************//** Writes the crypto (version, msg and iv) info, which has been used for log blocks with lsn <= this checkpoint's lsn, to a log header's diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index 3c141b744ce..8c6080d4d7e 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -798,7 +798,7 @@ recv_find_max_checkpoint_0( checkpoint_no = mach_read_from_8( buf + LOG_CHECKPOINT_NO); - if (!log_crypt_read_checkpoint_buf(buf)) { + if (!log_crypt_101_read_checkpoint(buf)) { ib::warn() << "Decrypting checkpoint failed"; continue; } @@ -859,10 +859,9 @@ recv_log_format_0_recover(lsn_t lsn) % univ_page_size.physical()), OS_FILE_LOG_BLOCK_SIZE, buf, NULL); - log_decrypt_after_read(buf, OS_FILE_LOG_BLOCK_SIZE); - if (log_block_calc_checksum_format_0(buf) - != log_block_get_checksum(buf)) { + != log_block_get_checksum(buf) + && !log_crypt_101_read_block(buf)) { ib::error() << NO_UPGRADE_RECOVERY_MSG << ", and it appears corrupted" << NO_UPGRADE_RTFM_MSG; From a45866c6dbfe744d86c04617b33ed8433aed5ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Sat, 11 Feb 2017 17:45:36 +0200 Subject: [PATCH 188/258] MDEV-12050 Remove unused InnoDB Memcached hooks Oracle introduced a Memcached plugin interface to the InnoDB storage engine in MySQL 5.6. That interface is essentially a fork of Memcached development snapshot 1.6.0-beta1 of an old development branch 'engine-pu'. To my knowledge, there have not been any updates to the Memcached code between MySQL 5.6 and 5.7; only bug fixes and extensions related to the Oracle modifications. The Memcached plugin is not part of the MariaDB Server. Therefore it does not make sense to include the InnoDB interfaces for the Memcached plugin, or to have any related configuration parameters: innodb_api_bk_commit_interval innodb_api_disable_rowlock innodb_api_enable_binlog innodb_api_enable_mdl innodb_api_trx_level Removing this code in one commit makes it possible to easily restore it, in case it turns out to be needed later. --- ...innodb_api_bk_commit_interval_basic.result | 100 - .../r/innodb_api_disable_rowlock_basic.result | 53 - .../r/innodb_api_enable_binlog_basic.result | 53 - .../r/innodb_api_enable_mdl_basic.result | 53 - .../r/innodb_api_trx_level_basic.result | 66 - .../sys_vars/r/sysvars_innodb,32bit.rdiff | 9 - .../suite/sys_vars/r/sysvars_innodb.result | 70 - .../innodb_api_bk_commit_interval_basic.test | 85 - .../t/innodb_api_disable_rowlock_basic.test | 106 - .../t/innodb_api_enable_binlog_basic.test | 106 - .../t/innodb_api_enable_mdl_basic.test | 106 - .../t/innodb_api_trx_level_basic.test | 64 - storage/innobase/CMakeLists.txt | 4 +- storage/innobase/api/api0api.cc | 3438 ----------------- storage/innobase/api/api0misc.cc | 132 - storage/innobase/handler/ha_innodb.cc | 111 - storage/innobase/handler/handler0alter.cc | 27 +- storage/innobase/include/api0api.h | 1040 ----- storage/innobase/include/api0misc.h | 76 - storage/innobase/include/db0err.h | 10 - storage/innobase/include/dict0mem.h | 13 +- storage/innobase/include/ha_prototypes.h | 1 - storage/innobase/include/mach0data.h | 11 - storage/innobase/include/mach0data.ic | 25 - storage/innobase/include/row0mysql.h | 4 - storage/innobase/include/trx0trx.h | 4 +- storage/innobase/row/row0sel.cc | 18 +- storage/innobase/row/row0trunc.cc | 23 - storage/innobase/trx/trx0trx.cc | 13 +- storage/innobase/ut/ut0new.cc | 1 - storage/innobase/ut/ut0ut.cc | 4 - 31 files changed, 12 insertions(+), 5814 deletions(-) delete mode 100644 mysql-test/suite/sys_vars/r/innodb_api_bk_commit_interval_basic.result delete mode 100644 mysql-test/suite/sys_vars/r/innodb_api_disable_rowlock_basic.result delete mode 100644 mysql-test/suite/sys_vars/r/innodb_api_enable_binlog_basic.result delete mode 100644 mysql-test/suite/sys_vars/r/innodb_api_enable_mdl_basic.result delete mode 100644 mysql-test/suite/sys_vars/r/innodb_api_trx_level_basic.result delete mode 100644 mysql-test/suite/sys_vars/t/innodb_api_bk_commit_interval_basic.test delete mode 100644 mysql-test/suite/sys_vars/t/innodb_api_disable_rowlock_basic.test delete mode 100644 mysql-test/suite/sys_vars/t/innodb_api_enable_binlog_basic.test delete mode 100644 mysql-test/suite/sys_vars/t/innodb_api_enable_mdl_basic.test delete mode 100644 mysql-test/suite/sys_vars/t/innodb_api_trx_level_basic.test delete mode 100644 storage/innobase/api/api0api.cc delete mode 100644 storage/innobase/api/api0misc.cc delete mode 100644 storage/innobase/include/api0api.h delete mode 100644 storage/innobase/include/api0misc.h diff --git a/mysql-test/suite/sys_vars/r/innodb_api_bk_commit_interval_basic.result b/mysql-test/suite/sys_vars/r/innodb_api_bk_commit_interval_basic.result deleted file mode 100644 index 0bc17e10b06..00000000000 --- a/mysql-test/suite/sys_vars/r/innodb_api_bk_commit_interval_basic.result +++ /dev/null @@ -1,100 +0,0 @@ -SET @start_global_value = @@global.innodb_api_bk_commit_interval; -SELECT @start_global_value; -@start_global_value -5 -Valid values are positive number -SELECT @@global.innodb_api_bk_commit_interval > 0; -@@global.innodb_api_bk_commit_interval > 0 -1 -SELECT @@global.innodb_api_bk_commit_interval <= 1024*1024*1024; -@@global.innodb_api_bk_commit_interval <= 1024*1024*1024 -1 -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -5 -SELECT @@session.innodb_api_bk_commit_interval; -ERROR HY000: Variable 'innodb_api_bk_commit_interval' is a GLOBAL variable -SHOW global variables LIKE 'innodb_api_bk_commit_interval'; -Variable_name Value -innodb_api_bk_commit_interval 5 -SHOW session variables LIKE 'innodb_api_bk_commit_interval'; -Variable_name Value -innodb_api_bk_commit_interval 5 -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_bk_commit_interval'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_BK_COMMIT_INTERVAL 5 -SELECT * FROM information_schema.session_variables -WHERE variable_name='innodb_api_bk_commit_interval'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_BK_COMMIT_INTERVAL 5 -SET global innodb_api_bk_commit_interval=100; -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -100 -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_bk_commit_interval'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_BK_COMMIT_INTERVAL 100 -SELECT * FROM information_schema.session_variables -WHERE variable_name='innodb_api_bk_commit_interval'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_BK_COMMIT_INTERVAL 100 -SET session innodb_api_bk_commit_interval=1; -ERROR HY000: Variable 'innodb_api_bk_commit_interval' is a GLOBAL variable and should be set with SET GLOBAL -SET global innodb_api_bk_commit_interval=1; -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -1 -SET global innodb_api_bk_commit_interval=100000; -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -100000 -SET global innodb_api_bk_commit_interval=1073741824; -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -1073741824 -SET global innodb_api_bk_commit_interval=0; -Warnings: -Warning 1292 Truncated incorrect innodb_api_bk_commit_interval value: '0' -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -1 -SET global innodb_api_bk_commit_interval=-1024; -Warnings: -Warning 1292 Truncated incorrect innodb_api_bk_commit_interval value: '-1024' -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -1 -SET global innodb_api_bk_commit_interval=1073741825; -Warnings: -Warning 1292 Truncated incorrect innodb_api_bk_commit_interval value: '1073741825' -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -1073741824 -SET global innodb_api_bk_commit_interval=4294967295; -Warnings: -Warning 1292 Truncated incorrect innodb_api_bk_commit_interval value: '4294967295' -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -1073741824 -SET global innodb_api_bk_commit_interval=1.1; -ERROR 42000: Incorrect argument type to variable 'innodb_api_bk_commit_interval' -SET global innodb_api_bk_commit_interval=1e1; -ERROR 42000: Incorrect argument type to variable 'innodb_api_bk_commit_interval' -SET global innodb_api_bk_commit_interval="foo"; -ERROR 42000: Incorrect argument type to variable 'innodb_api_bk_commit_interval' -SET global innodb_api_bk_commit_interval=-7; -Warnings: -Warning 1292 Truncated incorrect innodb_api_bk_commit_interval value: '-7' -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -1 -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_bk_commit_interval'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_BK_COMMIT_INTERVAL 1 -SET @@global.innodb_api_bk_commit_interval = @start_global_value; -SELECT @@global.innodb_api_bk_commit_interval; -@@global.innodb_api_bk_commit_interval -5 diff --git a/mysql-test/suite/sys_vars/r/innodb_api_disable_rowlock_basic.result b/mysql-test/suite/sys_vars/r/innodb_api_disable_rowlock_basic.result deleted file mode 100644 index 5256c1ece8a..00000000000 --- a/mysql-test/suite/sys_vars/r/innodb_api_disable_rowlock_basic.result +++ /dev/null @@ -1,53 +0,0 @@ -'#---------------------BS_STVARS_035_01----------------------#' -SELECT COUNT(@@GLOBAL.innodb_api_disable_rowlock); -COUNT(@@GLOBAL.innodb_api_disable_rowlock) -1 -1 Expected -'#---------------------BS_STVARS_035_02----------------------#' -SET @@GLOBAL.innodb_api_disable_rowlock=1; -ERROR HY000: Variable 'innodb_api_disable_rowlock' is a read only variable -Expected error 'Read only variable' -SELECT COUNT(@@GLOBAL.innodb_api_disable_rowlock); -COUNT(@@GLOBAL.innodb_api_disable_rowlock) -1 -1 Expected -'#---------------------BS_STVARS_035_03----------------------#' -SELECT IF(@@GLOBAL.innodb_api_disable_rowlock, 'ON', 'OFF') = VARIABLE_VALUE -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_disable_rowlock'; -IF(@@GLOBAL.innodb_api_disable_rowlock, 'ON', 'OFF') = VARIABLE_VALUE -1 -1 Expected -SELECT COUNT(@@GLOBAL.innodb_api_disable_rowlock); -COUNT(@@GLOBAL.innodb_api_disable_rowlock) -1 -1 Expected -SELECT COUNT(VARIABLE_VALUE) -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_disable_rowlock'; -COUNT(VARIABLE_VALUE) -1 -1 Expected -'#---------------------BS_STVARS_035_04----------------------#' -SELECT @@innodb_api_disable_rowlock = @@GLOBAL.innodb_api_enable_binlog; -@@innodb_api_disable_rowlock = @@GLOBAL.innodb_api_enable_binlog -1 -1 Expected -'#---------------------BS_STVARS_035_05----------------------#' -SELECT COUNT(@@innodb_api_disable_rowlock); -COUNT(@@innodb_api_disable_rowlock) -1 -1 Expected -SELECT COUNT(@@local.innodb_api_disable_rowlock); -ERROR HY000: Variable 'innodb_api_disable_rowlock' is a GLOBAL variable -Expected error 'Variable is a GLOBAL variable' -SELECT COUNT(@@SESSION.innodb_api_disable_rowlock); -ERROR HY000: Variable 'innodb_api_disable_rowlock' is a GLOBAL variable -Expected error 'Variable is a GLOBAL variable' -SELECT COUNT(@@GLOBAL.innodb_api_disable_rowlock); -COUNT(@@GLOBAL.innodb_api_disable_rowlock) -1 -1 Expected -SELECT innodb_api_disable_rowlock = @@SESSION.innodb_api_enable_binlog; -ERROR 42S22: Unknown column 'innodb_api_disable_rowlock' in 'field list' -Expected error 'Readonly variable' diff --git a/mysql-test/suite/sys_vars/r/innodb_api_enable_binlog_basic.result b/mysql-test/suite/sys_vars/r/innodb_api_enable_binlog_basic.result deleted file mode 100644 index f06fbeb8da7..00000000000 --- a/mysql-test/suite/sys_vars/r/innodb_api_enable_binlog_basic.result +++ /dev/null @@ -1,53 +0,0 @@ -'#---------------------BS_STVARS_035_01----------------------#' -SELECT COUNT(@@GLOBAL.innodb_api_enable_binlog); -COUNT(@@GLOBAL.innodb_api_enable_binlog) -1 -1 Expected -'#---------------------BS_STVARS_035_02----------------------#' -SET @@GLOBAL.innodb_api_enable_binlog=1; -ERROR HY000: Variable 'innodb_api_enable_binlog' is a read only variable -Expected error 'Read only variable' -SELECT COUNT(@@GLOBAL.innodb_api_enable_binlog); -COUNT(@@GLOBAL.innodb_api_enable_binlog) -1 -1 Expected -'#---------------------BS_STVARS_035_03----------------------#' -SELECT IF(@@GLOBAL.innodb_api_enable_binlog, 'ON', 'OFF') = VARIABLE_VALUE -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_enable_binlog'; -IF(@@GLOBAL.innodb_api_enable_binlog, 'ON', 'OFF') = VARIABLE_VALUE -1 -1 Expected -SELECT COUNT(@@GLOBAL.innodb_api_enable_binlog); -COUNT(@@GLOBAL.innodb_api_enable_binlog) -1 -1 Expected -SELECT COUNT(VARIABLE_VALUE) -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_enable_binlog'; -COUNT(VARIABLE_VALUE) -1 -1 Expected -'#---------------------BS_STVARS_035_04----------------------#' -SELECT @@innodb_api_enable_binlog = @@GLOBAL.innodb_api_enable_binlog; -@@innodb_api_enable_binlog = @@GLOBAL.innodb_api_enable_binlog -1 -1 Expected -'#---------------------BS_STVARS_035_05----------------------#' -SELECT COUNT(@@innodb_api_enable_binlog); -COUNT(@@innodb_api_enable_binlog) -1 -1 Expected -SELECT COUNT(@@local.innodb_api_enable_binlog); -ERROR HY000: Variable 'innodb_api_enable_binlog' is a GLOBAL variable -Expected error 'Variable is a GLOBAL variable' -SELECT COUNT(@@SESSION.innodb_api_enable_binlog); -ERROR HY000: Variable 'innodb_api_enable_binlog' is a GLOBAL variable -Expected error 'Variable is a GLOBAL variable' -SELECT COUNT(@@GLOBAL.innodb_api_enable_binlog); -COUNT(@@GLOBAL.innodb_api_enable_binlog) -1 -1 Expected -SELECT innodb_api_enable_binlog = @@SESSION.innodb_api_enable_binlog; -ERROR 42S22: Unknown column 'innodb_api_enable_binlog' in 'field list' -Expected error 'Readonly variable' diff --git a/mysql-test/suite/sys_vars/r/innodb_api_enable_mdl_basic.result b/mysql-test/suite/sys_vars/r/innodb_api_enable_mdl_basic.result deleted file mode 100644 index 4484b151396..00000000000 --- a/mysql-test/suite/sys_vars/r/innodb_api_enable_mdl_basic.result +++ /dev/null @@ -1,53 +0,0 @@ -'#---------------------BS_STVARS_035_01----------------------#' -SELECT COUNT(@@GLOBAL.innodb_api_enable_mdl); -COUNT(@@GLOBAL.innodb_api_enable_mdl) -1 -1 Expected -'#---------------------BS_STVARS_035_02----------------------#' -SET @@GLOBAL.innodb_api_enable_mdl=1; -ERROR HY000: Variable 'innodb_api_enable_mdl' is a read only variable -Expected error 'Read only variable' -SELECT COUNT(@@GLOBAL.innodb_api_enable_mdl); -COUNT(@@GLOBAL.innodb_api_enable_mdl) -1 -1 Expected -'#---------------------BS_STVARS_035_03----------------------#' -SELECT IF(@@GLOBAL.innodb_api_enable_mdl, 'ON', 'OFF') = VARIABLE_VALUE -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_enable_mdl'; -IF(@@GLOBAL.innodb_api_enable_mdl, 'ON', 'OFF') = VARIABLE_VALUE -1 -1 Expected -SELECT COUNT(@@GLOBAL.innodb_api_enable_mdl); -COUNT(@@GLOBAL.innodb_api_enable_mdl) -1 -1 Expected -SELECT COUNT(VARIABLE_VALUE) -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_enable_mdl'; -COUNT(VARIABLE_VALUE) -1 -1 Expected -'#---------------------BS_STVARS_035_04----------------------#' -SELECT @@innodb_api_enable_mdl = @@GLOBAL.innodb_api_enable_mdl; -@@innodb_api_enable_mdl = @@GLOBAL.innodb_api_enable_mdl -1 -1 Expected -'#---------------------BS_STVARS_035_05----------------------#' -SELECT COUNT(@@innodb_api_enable_mdl); -COUNT(@@innodb_api_enable_mdl) -1 -1 Expected -SELECT COUNT(@@local.innodb_api_enable_mdl); -ERROR HY000: Variable 'innodb_api_enable_mdl' is a GLOBAL variable -Expected error 'Variable is a GLOBAL variable' -SELECT COUNT(@@SESSION.innodb_api_enable_mdl); -ERROR HY000: Variable 'innodb_api_enable_mdl' is a GLOBAL variable -Expected error 'Variable is a GLOBAL variable' -SELECT COUNT(@@GLOBAL.innodb_api_enable_mdl); -COUNT(@@GLOBAL.innodb_api_enable_mdl) -1 -1 Expected -SELECT innodb_api_enable_mdl = @@SESSION.innodb_api_enable_mdl; -ERROR 42S22: Unknown column 'innodb_api_enable_mdl' in 'field list' -Expected error 'Readonly variable' diff --git a/mysql-test/suite/sys_vars/r/innodb_api_trx_level_basic.result b/mysql-test/suite/sys_vars/r/innodb_api_trx_level_basic.result deleted file mode 100644 index 41071799883..00000000000 --- a/mysql-test/suite/sys_vars/r/innodb_api_trx_level_basic.result +++ /dev/null @@ -1,66 +0,0 @@ -SET @start_global_value = @@global.innodb_api_trx_level; -SELECT @start_global_value; -@start_global_value -0 -Valid values are zero or above -SELECT @@global.innodb_api_trx_level >=0; -@@global.innodb_api_trx_level >=0 -1 -SELECT @@global.innodb_api_trx_level <=3; -@@global.innodb_api_trx_level <=3 -1 -SELECT @@global.innodb_api_trx_level; -@@global.innodb_api_trx_level -0 -SELECT @@session.innodb_api_trx_level; -ERROR HY000: Variable 'innodb_api_trx_level' is a GLOBAL variable -SHOW global variables LIKE 'innodb_api_trx_level'; -Variable_name Value -innodb_api_trx_level 0 -SHOW session variables LIKE 'innodb_api_trx_level'; -Variable_name Value -innodb_api_trx_level 0 -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_trx_level'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_TRX_LEVEL 0 -SELECT * FROM information_schema.session_variables -WHERE variable_name='innodb_api_trx_level'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_TRX_LEVEL 0 -SET global innodb_api_trx_level=100; -Warnings: -Warning 1292 Truncated incorrect innodb_api_trx_level value: '100' -SELECT @@global.innodb_api_trx_level; -@@global.innodb_api_trx_level -3 -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_trx_level'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_TRX_LEVEL 3 -SELECT * FROM information_schema.session_variables -WHERE variable_name='innodb_api_trx_level'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_TRX_LEVEL 3 -SET session innodb_api_trx_level=1; -ERROR HY000: Variable 'innodb_api_trx_level' is a GLOBAL variable and should be set with SET GLOBAL -SET global innodb_api_trx_level=1.1; -ERROR 42000: Incorrect argument type to variable 'innodb_api_trx_level' -SET global innodb_api_trx_level=1e1; -ERROR 42000: Incorrect argument type to variable 'innodb_api_trx_level' -SET global innodb_api_trx_level="foo"; -ERROR 42000: Incorrect argument type to variable 'innodb_api_trx_level' -SET global innodb_api_trx_level=-7; -Warnings: -Warning 1292 Truncated incorrect innodb_api_trx_level value: '-7' -SELECT @@global.innodb_api_trx_level; -@@global.innodb_api_trx_level -0 -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_trx_level'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_API_TRX_LEVEL 0 -SET @@global.innodb_api_trx_level = @start_global_value; -SELECT @@global.innodb_api_trx_level; -@@global.innodb_api_trx_level -0 diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff index 2fd22767dce..62413546911 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff @@ -27,15 +27,6 @@ VARIABLE_COMMENT Background commit interval in seconds NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 1073741824 -@@ -138,7 +138,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT InnoDB API transaction isolation level - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 3 @@ -152,7 +152,7 @@ GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 64 diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result index 0816cd7bd31..37688e8d895 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result @@ -76,76 +76,6 @@ NUMERIC_BLOCK_SIZE 0 ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED -VARIABLE_NAME INNODB_API_BK_COMMIT_INTERVAL -SESSION_VALUE NULL -GLOBAL_VALUE 5 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 5 -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT Background commit interval in seconds -NUMERIC_MIN_VALUE 1 -NUMERIC_MAX_VALUE 1073741824 -NUMERIC_BLOCK_SIZE 0 -ENUM_VALUE_LIST NULL -READ_ONLY NO -COMMAND_LINE_ARGUMENT OPTIONAL -VARIABLE_NAME INNODB_API_DISABLE_ROWLOCK -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT Disable row lock when direct access InnoDB through InnoDB APIs -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST OFF,ON -READ_ONLY YES -COMMAND_LINE_ARGUMENT NONE -VARIABLE_NAME INNODB_API_ENABLE_BINLOG -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT Enable binlog for applications direct access InnoDB through InnoDB APIs -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST OFF,ON -READ_ONLY YES -COMMAND_LINE_ARGUMENT NONE -VARIABLE_NAME INNODB_API_ENABLE_MDL -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT Enable MDL for applications direct access InnoDB through InnoDB APIs -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST OFF,ON -READ_ONLY YES -COMMAND_LINE_ARGUMENT NONE -VARIABLE_NAME INNODB_API_TRX_LEVEL -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT InnoDB API transaction isolation level -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 3 -NUMERIC_BLOCK_SIZE 0 -ENUM_VALUE_LIST NULL -READ_ONLY NO -COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_AUTOEXTEND_INCREMENT SESSION_VALUE NULL GLOBAL_VALUE 64 diff --git a/mysql-test/suite/sys_vars/t/innodb_api_bk_commit_interval_basic.test b/mysql-test/suite/sys_vars/t/innodb_api_bk_commit_interval_basic.test deleted file mode 100644 index 7c9ae6395be..00000000000 --- a/mysql-test/suite/sys_vars/t/innodb_api_bk_commit_interval_basic.test +++ /dev/null @@ -1,85 +0,0 @@ -# -# 2012-08-01 Added -# - ---source include/have_innodb.inc - -SET @start_global_value = @@global.innodb_api_bk_commit_interval; -SELECT @start_global_value; - -# -# exists as global only -# ---echo Valid values are positive number -SELECT @@global.innodb_api_bk_commit_interval > 0; -SELECT @@global.innodb_api_bk_commit_interval <= 1024*1024*1024; -SELECT @@global.innodb_api_bk_commit_interval; - ---error ER_INCORRECT_GLOBAL_LOCAL_VAR -SELECT @@session.innodb_api_bk_commit_interval; -SHOW global variables LIKE 'innodb_api_bk_commit_interval'; -SHOW session variables LIKE 'innodb_api_bk_commit_interval'; ---disable_warnings -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_bk_commit_interval'; -SELECT * FROM information_schema.session_variables -WHERE variable_name='innodb_api_bk_commit_interval'; ---enable_warnings - -# -# show that it's writable -# -SET global innodb_api_bk_commit_interval=100; -SELECT @@global.innodb_api_bk_commit_interval; ---disable_warnings -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_bk_commit_interval'; -SELECT * FROM information_schema.session_variables -WHERE variable_name='innodb_api_bk_commit_interval'; ---enable_warnings ---error ER_GLOBAL_VARIABLE -SET session innodb_api_bk_commit_interval=1; -# -# Valid values -# -SET global innodb_api_bk_commit_interval=1; -SELECT @@global.innodb_api_bk_commit_interval; -SET global innodb_api_bk_commit_interval=100000; -SELECT @@global.innodb_api_bk_commit_interval; -SET global innodb_api_bk_commit_interval=1073741824; -SELECT @@global.innodb_api_bk_commit_interval; - -# -# Invalid values -# -SET global innodb_api_bk_commit_interval=0; -SELECT @@global.innodb_api_bk_commit_interval; -SET global innodb_api_bk_commit_interval=-1024; -SELECT @@global.innodb_api_bk_commit_interval; -SET global innodb_api_bk_commit_interval=1073741825; -SELECT @@global.innodb_api_bk_commit_interval; -SET global innodb_api_bk_commit_interval=4294967295; -SELECT @@global.innodb_api_bk_commit_interval; - -# -# incorrect types -# ---error ER_WRONG_TYPE_FOR_VAR -SET global innodb_api_bk_commit_interval=1.1; ---error ER_WRONG_TYPE_FOR_VAR -SET global innodb_api_bk_commit_interval=1e1; ---error ER_WRONG_TYPE_FOR_VAR -SET global innodb_api_bk_commit_interval="foo"; -SET global innodb_api_bk_commit_interval=-7; -SELECT @@global.innodb_api_bk_commit_interval; ---disable_warnings -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_bk_commit_interval'; ---enable_warnings - -# -# cleanup -# - -SET @@global.innodb_api_bk_commit_interval = @start_global_value; -SELECT @@global.innodb_api_bk_commit_interval; diff --git a/mysql-test/suite/sys_vars/t/innodb_api_disable_rowlock_basic.test b/mysql-test/suite/sys_vars/t/innodb_api_disable_rowlock_basic.test deleted file mode 100644 index 42e9903df5e..00000000000 --- a/mysql-test/suite/sys_vars/t/innodb_api_disable_rowlock_basic.test +++ /dev/null @@ -1,106 +0,0 @@ - - -################## mysql-test\t\innodb_api_disable_rowlock_basic.test ############## -# # -# Variable Name: innodb_api_disable_rowlock # -# Scope: Global # -# Access Type: Static # -# Data Type: numeric # -# # -# # -# Creation Date: 2008-02-07 # -# Author : Sharique Abdullah # -# # -# # -# Description:Test Cases of Dynamic System Variable innodb_api_disable_rowlock # -# that checks the behavior of this variable in the following ways # -# * Value Check # -# * Scope Check # -# # -# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # -# server-system-variables.html # -# # -############################################################################### - ---source include/have_innodb.inc - ---echo '#---------------------BS_STVARS_035_01----------------------#' -#################################################################### -# Displaying default value # -#################################################################### -SELECT COUNT(@@GLOBAL.innodb_api_disable_rowlock); ---echo 1 Expected - - ---echo '#---------------------BS_STVARS_035_02----------------------#' -#################################################################### -# Check if Value can set # -#################################################################### - ---error ER_INCORRECT_GLOBAL_LOCAL_VAR -SET @@GLOBAL.innodb_api_disable_rowlock=1; ---echo Expected error 'Read only variable' - -SELECT COUNT(@@GLOBAL.innodb_api_disable_rowlock); ---echo 1 Expected - - - - ---echo '#---------------------BS_STVARS_035_03----------------------#' -################################################################# -# Check if the value in GLOBAL Table matches value in variable # -################################################################# - ---disable_warnings -SELECT IF(@@GLOBAL.innodb_api_disable_rowlock, 'ON', 'OFF') = VARIABLE_VALUE -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_disable_rowlock'; ---enable_warnings ---echo 1 Expected - -SELECT COUNT(@@GLOBAL.innodb_api_disable_rowlock); ---echo 1 Expected - ---disable_warnings -SELECT COUNT(VARIABLE_VALUE) -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_disable_rowlock'; ---enable_warnings ---echo 1 Expected - - - ---echo '#---------------------BS_STVARS_035_04----------------------#' -################################################################################ -# Check if accessing variable with and without GLOBAL point to same variable # -################################################################################ -SELECT @@innodb_api_disable_rowlock = @@GLOBAL.innodb_api_enable_binlog; ---echo 1 Expected - - - ---echo '#---------------------BS_STVARS_035_05----------------------#' -################################################################################ -# Check if innodb_log_file_size can be accessed with and without @@ sign # -################################################################################ - -SELECT COUNT(@@innodb_api_disable_rowlock); ---echo 1 Expected - ---Error ER_INCORRECT_GLOBAL_LOCAL_VAR -SELECT COUNT(@@local.innodb_api_disable_rowlock); ---echo Expected error 'Variable is a GLOBAL variable' - ---Error ER_INCORRECT_GLOBAL_LOCAL_VAR -SELECT COUNT(@@SESSION.innodb_api_disable_rowlock); ---echo Expected error 'Variable is a GLOBAL variable' - -SELECT COUNT(@@GLOBAL.innodb_api_disable_rowlock); ---echo 1 Expected - ---Error ER_BAD_FIELD_ERROR -SELECT innodb_api_disable_rowlock = @@SESSION.innodb_api_enable_binlog; ---echo Expected error 'Readonly variable' - - diff --git a/mysql-test/suite/sys_vars/t/innodb_api_enable_binlog_basic.test b/mysql-test/suite/sys_vars/t/innodb_api_enable_binlog_basic.test deleted file mode 100644 index e88d8ecac5c..00000000000 --- a/mysql-test/suite/sys_vars/t/innodb_api_enable_binlog_basic.test +++ /dev/null @@ -1,106 +0,0 @@ - - -################## mysql-test\t\innodb_api_enable_binlog_basic.test ############## -# # -# Variable Name: innodb_api_enable_binlog # -# Scope: Global # -# Access Type: Static # -# Data Type: numeric # -# # -# # -# Creation Date: 2008-02-07 # -# Author : Sharique Abdullah # -# # -# # -# Description:Test Cases of Dynamic System Variable innodb_api_enable_binlog # -# that checks the behavior of this variable in the following ways # -# * Value Check # -# * Scope Check # -# # -# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # -# server-system-variables.html # -# # -############################################################################### - ---source include/have_innodb.inc - ---echo '#---------------------BS_STVARS_035_01----------------------#' -#################################################################### -# Displaying default value # -#################################################################### -SELECT COUNT(@@GLOBAL.innodb_api_enable_binlog); ---echo 1 Expected - - ---echo '#---------------------BS_STVARS_035_02----------------------#' -#################################################################### -# Check if Value can set # -#################################################################### - ---error ER_INCORRECT_GLOBAL_LOCAL_VAR -SET @@GLOBAL.innodb_api_enable_binlog=1; ---echo Expected error 'Read only variable' - -SELECT COUNT(@@GLOBAL.innodb_api_enable_binlog); ---echo 1 Expected - - - - ---echo '#---------------------BS_STVARS_035_03----------------------#' -################################################################# -# Check if the value in GLOBAL Table matches value in variable # -################################################################# - ---disable_warnings -SELECT IF(@@GLOBAL.innodb_api_enable_binlog, 'ON', 'OFF') = VARIABLE_VALUE -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_enable_binlog'; ---enable_warnings ---echo 1 Expected - -SELECT COUNT(@@GLOBAL.innodb_api_enable_binlog); ---echo 1 Expected - ---disable_warnings -SELECT COUNT(VARIABLE_VALUE) -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_enable_binlog'; ---enable_warnings ---echo 1 Expected - - - ---echo '#---------------------BS_STVARS_035_04----------------------#' -################################################################################ -# Check if accessing variable with and without GLOBAL point to same variable # -################################################################################ -SELECT @@innodb_api_enable_binlog = @@GLOBAL.innodb_api_enable_binlog; ---echo 1 Expected - - - ---echo '#---------------------BS_STVARS_035_05----------------------#' -################################################################################ -# Check if innodb_log_file_size can be accessed with and without @@ sign # -################################################################################ - -SELECT COUNT(@@innodb_api_enable_binlog); ---echo 1 Expected - ---Error ER_INCORRECT_GLOBAL_LOCAL_VAR -SELECT COUNT(@@local.innodb_api_enable_binlog); ---echo Expected error 'Variable is a GLOBAL variable' - ---Error ER_INCORRECT_GLOBAL_LOCAL_VAR -SELECT COUNT(@@SESSION.innodb_api_enable_binlog); ---echo Expected error 'Variable is a GLOBAL variable' - -SELECT COUNT(@@GLOBAL.innodb_api_enable_binlog); ---echo 1 Expected - ---Error ER_BAD_FIELD_ERROR -SELECT innodb_api_enable_binlog = @@SESSION.innodb_api_enable_binlog; ---echo Expected error 'Readonly variable' - - diff --git a/mysql-test/suite/sys_vars/t/innodb_api_enable_mdl_basic.test b/mysql-test/suite/sys_vars/t/innodb_api_enable_mdl_basic.test deleted file mode 100644 index d3086878d6a..00000000000 --- a/mysql-test/suite/sys_vars/t/innodb_api_enable_mdl_basic.test +++ /dev/null @@ -1,106 +0,0 @@ - - -################## mysql-test\t\innodb_api_enable_mdl_basic.test ############## -# # -# Variable Name: innodb_api_enable_mdl # -# Scope: Global # -# Access Type: Static # -# Data Type: numeric # -# # -# # -# Creation Date: 2008-02-07 # -# Author : Sharique Abdullah # -# # -# # -# Description:Test Cases of Dynamic System Variable innodb_api_enable_mdl # -# that checks the behavior of this variable in the following ways # -# * Value Check # -# * Scope Check # -# # -# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # -# server-system-variables.html # -# # -############################################################################### - ---source include/have_innodb.inc - ---echo '#---------------------BS_STVARS_035_01----------------------#' -#################################################################### -# Displaying default value # -#################################################################### -SELECT COUNT(@@GLOBAL.innodb_api_enable_mdl); ---echo 1 Expected - - ---echo '#---------------------BS_STVARS_035_02----------------------#' -#################################################################### -# Check if Value can set # -#################################################################### - ---error ER_INCORRECT_GLOBAL_LOCAL_VAR -SET @@GLOBAL.innodb_api_enable_mdl=1; ---echo Expected error 'Read only variable' - -SELECT COUNT(@@GLOBAL.innodb_api_enable_mdl); ---echo 1 Expected - - - - ---echo '#---------------------BS_STVARS_035_03----------------------#' -################################################################# -# Check if the value in GLOBAL Table matches value in variable # -################################################################# - ---disable_warnings -SELECT IF(@@GLOBAL.innodb_api_enable_mdl, 'ON', 'OFF') = VARIABLE_VALUE -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_enable_mdl'; ---enable_warnings ---echo 1 Expected - -SELECT COUNT(@@GLOBAL.innodb_api_enable_mdl); ---echo 1 Expected - ---disable_warnings -SELECT COUNT(VARIABLE_VALUE) -FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -WHERE VARIABLE_NAME='innodb_api_enable_mdl'; ---enable_warnings ---echo 1 Expected - - - ---echo '#---------------------BS_STVARS_035_04----------------------#' -################################################################################ -# Check if accessing variable with and without GLOBAL point to same variable # -################################################################################ -SELECT @@innodb_api_enable_mdl = @@GLOBAL.innodb_api_enable_mdl; ---echo 1 Expected - - - ---echo '#---------------------BS_STVARS_035_05----------------------#' -################################################################################ -# Check if innodb_log_file_size can be accessed with and without @@ sign # -################################################################################ - -SELECT COUNT(@@innodb_api_enable_mdl); ---echo 1 Expected - ---Error ER_INCORRECT_GLOBAL_LOCAL_VAR -SELECT COUNT(@@local.innodb_api_enable_mdl); ---echo Expected error 'Variable is a GLOBAL variable' - ---Error ER_INCORRECT_GLOBAL_LOCAL_VAR -SELECT COUNT(@@SESSION.innodb_api_enable_mdl); ---echo Expected error 'Variable is a GLOBAL variable' - -SELECT COUNT(@@GLOBAL.innodb_api_enable_mdl); ---echo 1 Expected - ---Error ER_BAD_FIELD_ERROR -SELECT innodb_api_enable_mdl = @@SESSION.innodb_api_enable_mdl; ---echo Expected error 'Readonly variable' - - diff --git a/mysql-test/suite/sys_vars/t/innodb_api_trx_level_basic.test b/mysql-test/suite/sys_vars/t/innodb_api_trx_level_basic.test deleted file mode 100644 index c77f8471d7b..00000000000 --- a/mysql-test/suite/sys_vars/t/innodb_api_trx_level_basic.test +++ /dev/null @@ -1,64 +0,0 @@ -# -# 2011-08-01 Added -# - ---source include/have_innodb.inc - -SET @start_global_value = @@global.innodb_api_trx_level; -SELECT @start_global_value; - -# -# exists as global only -# ---echo Valid values are zero or above -SELECT @@global.innodb_api_trx_level >=0; -SELECT @@global.innodb_api_trx_level <=3; -SELECT @@global.innodb_api_trx_level; - ---error ER_INCORRECT_GLOBAL_LOCAL_VAR -SELECT @@session.innodb_api_trx_level; -SHOW global variables LIKE 'innodb_api_trx_level'; -SHOW session variables LIKE 'innodb_api_trx_level'; ---disable_warnings -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_trx_level'; -SELECT * FROM information_schema.session_variables -WHERE variable_name='innodb_api_trx_level'; ---enable_warnings - -# -# show that it's writable -# -SET global innodb_api_trx_level=100; -SELECT @@global.innodb_api_trx_level; ---disable_warnings -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_trx_level'; -SELECT * FROM information_schema.session_variables -WHERE variable_name='innodb_api_trx_level'; ---enable_warnings ---error ER_GLOBAL_VARIABLE -SET session innodb_api_trx_level=1; - -# -# incorrect types -# ---error ER_WRONG_TYPE_FOR_VAR -SET global innodb_api_trx_level=1.1; ---error ER_WRONG_TYPE_FOR_VAR -SET global innodb_api_trx_level=1e1; ---error ER_WRONG_TYPE_FOR_VAR -SET global innodb_api_trx_level="foo"; -SET global innodb_api_trx_level=-7; -SELECT @@global.innodb_api_trx_level; ---disable_warnings -SELECT * FROM information_schema.global_variables -WHERE variable_name='innodb_api_trx_level'; ---enable_warnings - -# -# cleanup -# - -SET @@global.innodb_api_trx_level = @start_global_value; -SELECT @@global.innodb_api_trx_level; diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt index 799200ae43f..64daf36ffd6 100644 --- a/storage/innobase/CMakeLists.txt +++ b/storage/innobase/CMakeLists.txt @@ -1,5 +1,5 @@ # Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. -# Copyright (c) 2014, 2016, MariaDB Corporation +# Copyright (c) 2014, 2017, MariaDB Corporation # # 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 @@ -36,8 +36,6 @@ MYSQL_CHECK_NUMA() INCLUDE(innodb.cmake) SET(INNOBASE_SOURCES - api/api0api.cc - api/api0misc.cc btr/btr0btr.cc btr/btr0bulk.cc btr/btr0cur.cc diff --git a/storage/innobase/api/api0api.cc b/storage/innobase/api/api0api.cc deleted file mode 100644 index c6947b6f054..00000000000 --- a/storage/innobase/api/api0api.cc +++ /dev/null @@ -1,3438 +0,0 @@ -/***************************************************************************** - -Copyright (c) 2008, 2016, Oracle and/or its affiliates. All Rights Reserved. - -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 Street, Suite 500, Boston, MA 02110-1335 USA - -*****************************************************************************/ - -/**************************************************//** -@file api/api0api.cc -InnoDB Native API - -2008-08-01 Created Sunny Bains -3/20/2011 Jimmy Yang extracted from Embedded InnoDB -*******************************************************/ - -#include "ha_prototypes.h" - -#include "api0api.h" -#include "api0misc.h" -#include "srv0start.h" -#include "dict0dict.h" -#include "btr0pcur.h" -#include "row0ins.h" -#include "row0upd.h" -#include "row0vers.h" -#include "trx0roll.h" -#include "dict0crea.h" -#include "row0merge.h" -#include "pars0pars.h" -#include "lock0types.h" -#include "row0sel.h" -#include "lock0lock.h" -#include "rem0cmp.h" -#include "dict0priv.h" -#include "trx0roll.h" -#include "row0trunc.h" - -/** configure variable for binlog option with InnoDB APIs */ -my_bool ib_binlog_enabled = FALSE; - -/** configure variable for MDL option with InnoDB APIs */ -my_bool ib_mdl_enabled = FALSE; - -/** configure variable for disable rowlock with InnoDB APIs */ -my_bool ib_disable_row_lock = FALSE; - -/** configure variable for Transaction isolation levels */ -ulong ib_trx_level_setting = IB_TRX_READ_UNCOMMITTED; - -/** configure variable for background commit interval in seconds */ -ulong ib_bk_commit_interval = 0; - -/** InnoDB tuple types. */ -enum ib_tuple_type_t{ - TPL_TYPE_ROW, /*!< Data row tuple */ - TPL_TYPE_KEY /*!< Index key tuple */ -}; - -/** Query types supported. */ -enum ib_qry_type_t{ - QRY_NON, /*!< None/Sentinel */ - QRY_INS, /*!< Insert operation */ - QRY_UPD, /*!< Update operation */ - QRY_SEL /*!< Select operation */ -}; - -/** Query graph types. */ -struct ib_qry_grph_t { - que_fork_t* ins; /*!< Innobase SQL query graph used - in inserts */ - que_fork_t* upd; /*!< Innobase SQL query graph used - in updates or deletes */ - que_fork_t* sel; /*!< dummy query graph used in - selects */ -}; - -/** Query node types. */ -struct ib_qry_node_t { - ins_node_t* ins; /*!< Innobase SQL insert node - used to perform inserts to the table */ - upd_node_t* upd; /*!< Innobase SQL update node - used to perform updates and deletes */ - sel_node_t* sel; /*!< Innobase SQL select node - used to perform selects on the table */ -}; - -/** Query processing fields. */ -struct ib_qry_proc_t { - - ib_qry_node_t node; /*!< Query node*/ - - ib_qry_grph_t grph; /*!< Query graph */ -}; - -/** Cursor instance for traversing tables/indexes. This will eventually -become row_prebuilt_t. */ -struct ib_cursor_t { - mem_heap_t* heap; /*!< Instance heap */ - - mem_heap_t* query_heap; /*!< Heap to use for query graphs */ - - ib_qry_proc_t q_proc; /*!< Query processing info */ - - ib_match_mode_t match_mode; /*!< ib_cursor_moveto match mode */ - - row_prebuilt_t* prebuilt; /*!< For reading rows */ - - bool valid_trx; /*!< Valid transaction attached */ -}; - -/** InnoDB table columns used during table and index schema creation. */ -struct ib_col_t { - const char* name; /*!< Name of column */ - - ib_col_type_t ib_col_type; /*!< Main type of the column */ - - ulint len; /*!< Length of the column */ - - ib_col_attr_t ib_col_attr; /*!< Column attributes */ - -}; - -/** InnoDB index columns used during index and index schema creation. */ -struct ib_key_col_t { - const char* name; /*!< Name of column */ - - ulint prefix_len; /*!< Column index prefix len or 0 */ -}; - -struct ib_table_def_t; - -/** InnoDB index schema used during index creation */ -struct ib_index_def_t { - mem_heap_t* heap; /*!< Heap used to build this and all - its columns in the list */ - - const char* name; /*!< Index name */ - - dict_table_t* table; /*!< Parent InnoDB table */ - - ib_table_def_t* schema; /*!< Parent table schema that owns - this instance */ - - ibool clustered; /*!< True if clustered index */ - - ibool unique; /*!< True if unique index */ - - ib_vector_t* cols; /*!< Vector of columns */ - - trx_t* usr_trx; /*!< User transacton covering the - DDL operations */ -}; - -/** InnoDB table schema used during table creation */ -struct ib_table_def_t { - mem_heap_t* heap; /*!< Heap used to build this and all - its columns in the list */ - const char* name; /*!< Table name */ - - ib_tbl_fmt_t ib_tbl_fmt; /*!< Row format */ - - ulint page_size; /*!< Page size */ - - ib_vector_t* cols; /*!< Vector of columns */ - - ib_vector_t* indexes; /*!< Vector of indexes */ - - dict_table_t* table; /* Table read from or NULL */ -}; - -/** InnoDB tuple used for key operations. */ -struct ib_tuple_t { - mem_heap_t* heap; /*!< Heap used to build - this and for copying - the column values. */ - - ib_tuple_type_t type; /*!< Tuple discriminitor. */ - - const dict_index_t* index; /*!< Index for tuple can be either - secondary or cluster index. */ - - dtuple_t* ptr; /*!< The internal tuple - instance */ -}; - -/** The following counter is used to convey information to InnoDB -about server activity: in case of normal DML ops it is not -sensible to call srv_active_wake_master_thread after each -operation, we only do it every INNOBASE_WAKE_INTERVAL'th step. */ - -#define INNOBASE_WAKE_INTERVAL 32 - -/*****************************************************************//** -Check whether the InnoDB persistent cursor is positioned. -@return IB_TRUE if positioned */ -UNIV_INLINE -ib_bool_t -ib_btr_cursor_is_positioned( -/*========================*/ - btr_pcur_t* pcur) /*!< in: InnoDB persistent cursor */ -{ - return(pcur->old_stored - && (pcur->pos_state == BTR_PCUR_IS_POSITIONED - || pcur->pos_state == BTR_PCUR_WAS_POSITIONED)); -} - - -/********************************************************************//** -Open a table using the table id, if found then increment table ref count. -@return table instance if found */ -static -dict_table_t* -ib_open_table_by_id( -/*================*/ - ib_id_u64_t tid, /*!< in: table id to lookup */ - ib_bool_t locked) /*!< in: TRUE if own dict mutex */ -{ - dict_table_t* table; - table_id_t table_id; - - table_id = tid; - - if (!locked) { - dict_mutex_enter_for_mysql(); - } - - table = dict_table_open_on_id(table_id, TRUE, DICT_TABLE_OP_NORMAL); - - if (table != NULL && table->ibd_file_missing) { - table = NULL; - } - - if (!locked) { - dict_mutex_exit_for_mysql(); - } - - return(table); -} - -/********************************************************************//** -Open a table using the table name, if found then increment table ref count. -@return table instance if found */ -static -dict_table_t* -ib_open_table_by_name( -/*==================*/ - const char* name) /*!< in: table name to lookup */ -{ - dict_table_t* table; - - table = dict_table_open_on_name(name, FALSE, FALSE, - DICT_ERR_IGNORE_NONE); - - if (table != NULL && table->ibd_file_missing) { - table = NULL; - } - - return(table); -} - -/********************************************************************//** -Find table using table name. -@return table instance if found */ -static -dict_table_t* -ib_lookup_table_by_name( -/*====================*/ - const char* name) /*!< in: table name to lookup */ -{ - dict_table_t* table; - - table = dict_table_get_low(name); - - if (table != NULL && table->ibd_file_missing) { - table = NULL; - } - - return(table); -} - -/********************************************************************//** -Increments innobase_active_counter and every INNOBASE_WAKE_INTERVALth -time calls srv_active_wake_master_thread. This function should be used -when a single database operation may introduce a small need for -server utility activity, like checkpointing. */ -UNIV_INLINE -void -ib_wake_master_thread(void) -/*=======================*/ -{ - static ulint ib_signal_counter = 0; - - ++ib_signal_counter; - - if ((ib_signal_counter % INNOBASE_WAKE_INTERVAL) == 0) { - srv_active_wake_master_thread(); - } -} - -/*****************************************************************//** -Read the columns from a rec into a tuple. */ -static -void -ib_read_tuple( -/*==========*/ - const rec_t* rec, /*!< in: Record to read */ - ib_bool_t page_format, /*!< in: IB_TRUE if compressed format */ - ib_tuple_t* tuple, /*!< in: tuple to read into */ - void** rec_buf, /*!< in/out: row buffer */ - ulint* len) /*!< in/out: buffer len */ -{ - ulint i; - void* ptr; - rec_t* copy; - ulint rec_meta_data; - ulint n_index_fields; - ulint offsets_[REC_OFFS_NORMAL_SIZE]; - ulint* offsets = offsets_; - dtuple_t* dtuple = tuple->ptr; - const dict_index_t* index = tuple->index; - ulint offset_size; - - rec_offs_init(offsets_); - - offsets = rec_get_offsets( - rec, index, offsets, ULINT_UNDEFINED, &tuple->heap); - - rec_meta_data = rec_get_info_bits(rec, page_format); - dtuple_set_info_bits(dtuple, rec_meta_data); - - offset_size = rec_offs_size(offsets); - - if (rec_buf && *rec_buf) { - if (*len < offset_size) { - free(*rec_buf); - *rec_buf = malloc(offset_size); - *len = offset_size; - } - ptr = *rec_buf; - } else { - /* Make a copy of the rec. */ - ptr = mem_heap_alloc(tuple->heap, offset_size); - } - - copy = rec_copy(ptr, rec, offsets); - - n_index_fields = ut_min( - rec_offs_n_fields(offsets), dtuple_get_n_fields(dtuple)); - - for (i = 0; i < n_index_fields; ++i) { - ulint len; - const byte* data; - dfield_t* dfield; - - if (tuple->type == TPL_TYPE_ROW) { - const dict_col_t* col; - ulint col_no; - const dict_field_t* index_field; - - index_field = dict_index_get_nth_field(index, i); - col = dict_field_get_col(index_field); - col_no = dict_col_get_no(col); - - dfield = dtuple_get_nth_field(dtuple, col_no); - } else { - dfield = dtuple_get_nth_field(dtuple, i); - } - - data = rec_get_nth_field(copy, offsets, i, &len); - - /* Fetch and copy any externally stored column. */ - if (rec_offs_nth_extern(offsets, i)) { - - const page_size_t page_size( - dict_table_page_size(index->table)); - - data = btr_rec_copy_externally_stored_field( - copy, offsets, page_size, i, &len, - tuple->heap); - - ut_a(len != UNIV_SQL_NULL); - } - - dfield_set_data(dfield, data, len); - } -} - -/*****************************************************************//** -Create an InnoDB key tuple. -@return tuple instance created, or NULL */ -static -ib_tpl_t -ib_key_tuple_new_low( -/*=================*/ - const dict_index_t* index, /*!< in: index for which tuple - required */ - ulint n_cols, /*!< in: no. of user defined cols */ - mem_heap_t* heap) /*!< in: memory heap */ -{ - ib_tuple_t* tuple; - ulint i; - ulint n_cmp_cols; - - tuple = static_cast( - mem_heap_alloc(heap, sizeof(*tuple))); - - if (tuple == NULL) { - mem_heap_free(heap); - return(NULL); - } - - tuple->heap = heap; - tuple->index = index; - tuple->type = TPL_TYPE_KEY; - - /* Is it a generated clustered index ? */ - if (n_cols == 0) { - ++n_cols; - } - - tuple->ptr = dtuple_create(heap, n_cols); - - /* Copy types and set to SQL_NULL. */ - dict_index_copy_types(tuple->ptr, index, n_cols); - - for (i = 0; i < n_cols; i++) { - - dfield_t* dfield; - - dfield = dtuple_get_nth_field(tuple->ptr, i); - dfield_set_null(dfield); - } - - n_cmp_cols = dict_index_get_n_ordering_defined_by_user(index); - - dtuple_set_n_fields_cmp(tuple->ptr, n_cmp_cols); - - return((ib_tpl_t) tuple); -} - -/*****************************************************************//** -Create an InnoDB key tuple. -@return tuple instance created, or NULL */ -static -ib_tpl_t -ib_key_tuple_new( -/*=============*/ - const dict_index_t* index, /*!< in: index of tuple */ - ulint n_cols) /*!< in: no. of user defined cols */ -{ - mem_heap_t* heap; - - heap = mem_heap_create(64); - - if (heap == NULL) { - return(NULL); - } - - return(ib_key_tuple_new_low(index, n_cols, heap)); -} - -/*****************************************************************//** -Create an InnoDB row tuple. -@return tuple instance, or NULL */ -static -ib_tpl_t -ib_row_tuple_new_low( -/*=================*/ - const dict_index_t* index, /*!< in: index of tuple */ - ulint n_cols, /*!< in: no. of cols in tuple */ - mem_heap_t* heap) /*!< in: memory heap */ -{ - ib_tuple_t* tuple; - - tuple = static_cast(mem_heap_alloc(heap, sizeof(*tuple))); - - if (tuple == NULL) { - mem_heap_free(heap); - return(NULL); - } - - tuple->heap = heap; - tuple->index = index; - tuple->type = TPL_TYPE_ROW; - - tuple->ptr = dtuple_create(heap, n_cols); - - /* Copy types and set to SQL_NULL. */ - dict_table_copy_types(tuple->ptr, index->table); - - return((ib_tpl_t) tuple); -} - -/*****************************************************************//** -Create an InnoDB row tuple. -@return tuple instance, or NULL */ -static -ib_tpl_t -ib_row_tuple_new( -/*=============*/ - const dict_index_t* index, /*!< in: index of tuple */ - ulint n_cols) /*!< in: no. of cols in tuple */ -{ - mem_heap_t* heap; - - heap = mem_heap_create(64); - - if (heap == NULL) { - return(NULL); - } - - return(ib_row_tuple_new_low(index, n_cols, heap)); -} - -/*****************************************************************//** -Begin a transaction. -@return innobase txn handle */ -ib_err_t -ib_trx_start( -/*=========*/ - ib_trx_t ib_trx, /*!< in: transaction to restart */ - ib_trx_level_t ib_trx_level, /*!< in: trx isolation level */ - ib_bool_t read_write, /*!< in: true if read write - transaction */ - ib_bool_t auto_commit, /*!< in: auto commit after each - single DML */ - void* thd) /*!< in: THD */ -{ - ib_err_t err = DB_SUCCESS; - trx_t* trx = (trx_t*) ib_trx; - - ut_a(ib_trx_level <= IB_TRX_SERIALIZABLE); - - trx->api_trx = true; - trx->api_auto_commit = auto_commit; - trx->read_write = read_write; - - trx_start_if_not_started(trx, read_write); - - trx->isolation_level = ib_trx_level; - - /* FIXME: This is a place holder, we should add an arg that comes - from the client. */ - trx->mysql_thd = static_cast(thd); - - return(err); -} - -/*****************************************************************//** -Begin a transaction. This will allocate a new transaction handle. -put the transaction in the active state. -@return innobase txn handle */ -ib_trx_t -ib_trx_begin( -/*=========*/ - ib_trx_level_t ib_trx_level, /*!< in: trx isolation level */ - ib_bool_t read_write, /*!< in: true if read write - transaction */ - ib_bool_t auto_commit) /*!< in: auto commit after each - single DML */ -{ - trx_t* trx; - ib_bool_t started; - - trx = trx_allocate_for_mysql(); - - started = ib_trx_start(static_cast(trx), ib_trx_level, - read_write, auto_commit, NULL); - ut_a(started); - - return(static_cast(trx)); -} - -/*****************************************************************//** -Check if transaction is read_only -@return transaction read_only status */ -ib_u32_t -ib_trx_read_only( -/*=============*/ - ib_trx_t ib_trx) /*!< in: trx handle */ -{ - trx_t* trx = (trx_t*) ib_trx; - - return(trx->read_only); -} -/*****************************************************************//** -Get a trx start time. -@return trx start_time */ -ib_u64_t -ib_trx_get_start_time( -/*==================*/ - ib_trx_t ib_trx) /*!< in: transaction */ -{ - trx_t* trx = (trx_t*) ib_trx; - return(static_cast(trx->start_time)); -} -/*****************************************************************//** -Release the resources of the transaction. -@return DB_SUCCESS or err code */ -ib_err_t -ib_trx_release( -/*===========*/ - ib_trx_t ib_trx) /*!< in: trx handle */ -{ - trx_t* trx = (trx_t*) ib_trx; - - ut_ad(trx != NULL); - trx_free_for_mysql(trx); - - return(DB_SUCCESS); -} - -/*****************************************************************//** -Commit a transaction. This function will also release the schema -latches too. -@return DB_SUCCESS or err code */ -ib_err_t -ib_trx_commit( -/*==========*/ - ib_trx_t ib_trx) /*!< in: trx handle */ -{ - ib_err_t err = DB_SUCCESS; - trx_t* trx = reinterpret_cast(ib_trx); - - if (!trx_is_started(trx)) { - - return(err); - } - - trx_commit(trx); - - return(DB_SUCCESS); -} - -/*****************************************************************//** -Rollback a transaction. This function will also release the schema -latches too. -@return DB_SUCCESS or err code */ -ib_err_t -ib_trx_rollback( -/*============*/ - ib_trx_t ib_trx) /*!< in: trx handle */ -{ - ib_err_t err; - trx_t* trx = (trx_t*) ib_trx; - - err = static_cast(trx_rollback_for_mysql(trx)); - - /* It should always succeed */ - ut_a(err == DB_SUCCESS); - - return(err); -} - -#ifdef _WIN32 -/*****************************************************************//** -Convert a string to lower case. */ -static -void -ib_to_lower_case( -/*=============*/ - char* ptr) /*!< string to convert to lower case */ -{ - while (*ptr) { - *ptr = tolower(*ptr); - ++ptr; - } -} -#endif /* _WIN32 */ - -/*****************************************************************//** -Normalizes a table name string. A normalized name consists of the -database name catenated to '/' and table name. An example: -test/mytable. On Windows normalization puts both the database name and the -table name always to lower case. This function can be called for system -tables and they don't have a database component. For tables that don't have -a database component, we don't normalize them to lower case on Windows. -The assumption is that they are system tables that reside in the system -table space. */ -static -void -ib_normalize_table_name( -/*====================*/ - char* norm_name, /*!< out: normalized name as a - null-terminated string */ - const char* name) /*!< in: table name string */ -{ - const char* ptr = name; - - /* Scan name from the end */ - - ptr += ut_strlen(name) - 1; - - /* Find the start of the table name. */ - while (ptr >= name && *ptr != '\\' && *ptr != '/' && ptr > name) { - --ptr; - } - - - /* For system tables there is no '/' or dbname. */ - ut_a(ptr >= name); - - if (ptr > name) { - const char* db_name; - const char* table_name; - - table_name = ptr + 1; - - --ptr; - - while (ptr >= name && *ptr != '\\' && *ptr != '/') { - ptr--; - } - - db_name = ptr + 1; - - memcpy(norm_name, db_name, - ut_strlen(name) + 1 - (db_name - name)); - - norm_name[table_name - db_name - 1] = '/'; -#ifdef _WIN32 - ib_to_lower_case(norm_name); -#endif - } else { - ut_strcpy(norm_name, name); - } -} - -/*****************************************************************//** -Get a table id. The caller must have acquired the dictionary mutex. -@return DB_SUCCESS if found */ -static -ib_err_t -ib_table_get_id_low( -/*================*/ - const char* table_name, /*!< in: table to find */ - ib_id_u64_t* table_id) /*!< out: table id if found */ -{ - dict_table_t* table; - ib_err_t err = DB_TABLE_NOT_FOUND; - - *table_id = 0; - - table = ib_lookup_table_by_name(table_name); - - if (table != NULL) { - *table_id = (table->id); - - err = DB_SUCCESS; - } - - return(err); -} - -/*****************************************************************//** -Create an internal cursor instance. -@return DB_SUCCESS or err code */ -static -ib_err_t -ib_create_cursor( -/*=============*/ - ib_crsr_t* ib_crsr, /*!< out: InnoDB cursor */ - dict_table_t* table, /*!< in: table instance */ - dict_index_t* index, /*!< in: index to use */ - trx_t* trx) /*!< in: transaction */ -{ - mem_heap_t* heap; - ib_cursor_t* cursor; - ib_err_t err = DB_SUCCESS; - - heap = mem_heap_create(sizeof(*cursor) * 2); - - if (heap != NULL) { - row_prebuilt_t* prebuilt; - - cursor = static_cast( - mem_heap_zalloc(heap, sizeof(*cursor))); - - cursor->heap = heap; - - cursor->query_heap = mem_heap_create(64); - - if (cursor->query_heap == NULL) { - mem_heap_free(heap); - - return(DB_OUT_OF_MEMORY); - } - - cursor->prebuilt = row_create_prebuilt(table, 0); - - prebuilt = cursor->prebuilt; - - prebuilt->trx = trx; - - cursor->valid_trx = TRUE; - - prebuilt->table = table; - prebuilt->select_lock_type = LOCK_NONE; - prebuilt->innodb_api = TRUE; - - prebuilt->index = index; - - ut_a(prebuilt->index != NULL); - - if (prebuilt->trx != NULL) { - ++prebuilt->trx->n_mysql_tables_in_use; - - prebuilt->index_usable = - row_merge_is_index_usable( - prebuilt->trx, prebuilt->index); - - /* Assign a read view if the transaction does - not have it yet */ - - trx_assign_read_view(prebuilt->trx); - } - - *ib_crsr = (ib_crsr_t) cursor; - } else { - err = DB_OUT_OF_MEMORY; - } - - return(err); -} - -/*****************************************************************//** -Create an internal cursor instance, and set prebuilt->index to index -with supplied index_id. -@return DB_SUCCESS or err code */ -static -ib_err_t -ib_create_cursor_with_index_id( -/*===========================*/ - ib_crsr_t* ib_crsr, /*!< out: InnoDB cursor */ - dict_table_t* table, /*!< in: table instance */ - ib_id_u64_t index_id, /*!< in: index id or 0 */ - trx_t* trx) /*!< in: transaction */ -{ - dict_index_t* index; - - if (index_id != 0) { - mutex_enter(&dict_sys->mutex); - index = dict_index_find_on_id_low(index_id); - mutex_exit(&dict_sys->mutex); - } else { - index = dict_table_get_first_index(table); - } - - return(ib_create_cursor(ib_crsr, table, index, trx)); -} - -/*****************************************************************//** -Open an InnoDB table and return a cursor handle to it. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_open_table_using_id( -/*==========================*/ - ib_id_u64_t table_id, /*!< in: table id of table to open */ - ib_trx_t ib_trx, /*!< in: Current transaction handle - can be NULL */ - ib_crsr_t* ib_crsr) /*!< out,own: InnoDB cursor */ -{ - ib_err_t err; - dict_table_t* table; - const ib_bool_t locked - = ib_trx && ib_schema_lock_is_exclusive(ib_trx); - - table = ib_open_table_by_id(table_id, locked); - - if (table == NULL) { - - return(DB_TABLE_NOT_FOUND); - } - - err = ib_create_cursor_with_index_id(ib_crsr, table, 0, - (trx_t*) ib_trx); - - return(err); -} - -/*****************************************************************//** -Open an InnoDB secondary index cursor and return a cursor handle to it. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_open_index_using_name( -/*============================*/ - ib_crsr_t ib_open_crsr, /*!< in: open/active cursor */ - const char* index_name, /*!< in: secondary index name */ - ib_crsr_t* ib_crsr, /*!< out,own: InnoDB index cursor */ - int* idx_type, /*!< out: index is cluster index */ - ib_id_u64_t* idx_id) /*!< out: index id */ -{ - dict_table_t* table; - dict_index_t* index; - index_id_t index_id = 0; - ib_err_t err = DB_TABLE_NOT_FOUND; - ib_cursor_t* cursor = (ib_cursor_t*) ib_open_crsr; - - *idx_type = 0; - *idx_id = 0; - *ib_crsr = NULL; - - /* We want to increment the ref count, so we do a redundant search. */ - table = dict_table_open_on_id(cursor->prebuilt->table->id, - FALSE, DICT_TABLE_OP_NORMAL); - ut_a(table != NULL); - - /* The first index is always the cluster index. */ - index = dict_table_get_first_index(table); - - /* Traverse the user defined indexes. */ - while (index != NULL) { - if (innobase_strcasecmp(index->name, index_name) == 0) { - index_id = index->id; - *idx_type = index->type; - *idx_id = index_id; - break; - } - index = UT_LIST_GET_NEXT(indexes, index); - } - - if (!index_id) { - dict_table_close(table, FALSE, FALSE); - return(DB_ERROR); - } - - if (index_id > 0) { - ut_ad(index->id == index_id); - err = ib_create_cursor( - ib_crsr, table, index, cursor->prebuilt->trx); - } - - if (*ib_crsr != NULL) { - const ib_cursor_t* cursor; - - cursor = *(ib_cursor_t**) ib_crsr; - - if (cursor->prebuilt->index == NULL) { - err = ib_cursor_close(*ib_crsr); - ut_a(err == DB_SUCCESS); - *ib_crsr = NULL; - } - } - - return(err); -} - -/*****************************************************************//** -Open an InnoDB table and return a cursor handle to it. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_open_table( -/*=================*/ - const char* name, /*!< in: table name */ - ib_trx_t ib_trx, /*!< in: Current transaction handle - can be NULL */ - ib_crsr_t* ib_crsr) /*!< out,own: InnoDB cursor */ -{ - ib_err_t err; - dict_table_t* table; - char* normalized_name; - - normalized_name = static_cast(ut_malloc_nokey(ut_strlen(name) - + 1)); - ib_normalize_table_name(normalized_name, name); - - if (ib_trx != NULL) { - if (!ib_schema_lock_is_exclusive(ib_trx)) { - table = ib_open_table_by_name(normalized_name); - } else { - /* NOTE: We do not acquire MySQL metadata lock */ - table = ib_lookup_table_by_name(normalized_name); - } - } else { - table = ib_open_table_by_name(normalized_name); - } - - ut_free(normalized_name); - normalized_name = NULL; - - /* It can happen that another thread has created the table but - not the cluster index or it's a broken table definition. Refuse to - open if that's the case. */ - if (table != NULL && dict_table_get_first_index(table) == NULL) { - table = NULL; - } - - if (table != NULL) { - err = ib_create_cursor_with_index_id(ib_crsr, table, 0, - (trx_t*) ib_trx); - } else { - err = DB_TABLE_NOT_FOUND; - } - - return(err); -} - -/** Check the table whether it contains virtual columns. -@param[in] crsr InnoDB Cursor -@return true if table contains virtual column else false. */ -ib_bool_t -ib_is_virtual_table( - ib_crsr_t crsr) -{ - return(crsr->prebuilt->table->n_v_cols > 0); -} - -/********************************************************************//** -Free a context struct for a table handle. */ -static -void -ib_qry_proc_free( -/*=============*/ - ib_qry_proc_t* q_proc) /*!< in, own: qproc struct */ -{ - que_graph_free_recursive(q_proc->grph.ins); - que_graph_free_recursive(q_proc->grph.upd); - que_graph_free_recursive(q_proc->grph.sel); - - memset(q_proc, 0x0, sizeof(*q_proc)); -} - -/*****************************************************************//** -Reset the cursor. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_reset( -/*============*/ - ib_crsr_t ib_crsr) /*!< in/out: InnoDB cursor */ -{ - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - - if (cursor->valid_trx && prebuilt->trx != NULL - && prebuilt->trx->n_mysql_tables_in_use > 0) { - - --prebuilt->trx->n_mysql_tables_in_use; - } - - /* The fields in this data structure are allocated from - the query heap and so need to be reset too. */ - ib_qry_proc_free(&cursor->q_proc); - - mem_heap_empty(cursor->query_heap); - - return(DB_SUCCESS); -} - -/*****************************************************************//** -update the cursor with new transactions and also reset the cursor -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_new_trx( -/*==============*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor */ - ib_trx_t ib_trx) /*!< in: transaction */ -{ - ib_err_t err = DB_SUCCESS; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - trx_t* trx = (trx_t*) ib_trx; - - row_prebuilt_t* prebuilt = cursor->prebuilt; - - row_update_prebuilt_trx(prebuilt, trx); - - cursor->valid_trx = TRUE; - - trx_assign_read_view(prebuilt->trx); - - ib_qry_proc_free(&cursor->q_proc); - - mem_heap_empty(cursor->query_heap); - - return(err); -} - -/*****************************************************************//** -Commit the transaction in a cursor -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_commit_trx( -/*=================*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor */ - ib_trx_t ib_trx) /*!< in: transaction */ -{ - ib_err_t err = DB_SUCCESS; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; -#ifdef UNIV_DEBUG - row_prebuilt_t* prebuilt = cursor->prebuilt; - - ut_ad(prebuilt->trx == (trx_t*) ib_trx); -#endif /* UNIV_DEBUG */ - ib_trx_commit(ib_trx); - cursor->valid_trx = FALSE; - return(err); -} - -/*****************************************************************//** -Close an InnoDB table and free the cursor. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_close( -/*============*/ - ib_crsr_t ib_crsr) /*!< in,own: InnoDB cursor */ -{ - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt; - trx_t* trx; - - if (!cursor) { - return(DB_SUCCESS); - } - - prebuilt = cursor->prebuilt; - trx = prebuilt->trx; - - ib_qry_proc_free(&cursor->q_proc); - - /* The transaction could have been detached from the cursor. */ - if (cursor->valid_trx && trx != NULL - && trx->n_mysql_tables_in_use > 0) { - --trx->n_mysql_tables_in_use; - } - - row_prebuilt_free(prebuilt, FALSE); - cursor->prebuilt = NULL; - - mem_heap_free(cursor->query_heap); - mem_heap_free(cursor->heap); - cursor = NULL; - - return(DB_SUCCESS); -} - -/*****************************************************************//** -Close the table, decrement n_ref_count count. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_close_table( -/*==================*/ - ib_crsr_t ib_crsr) /*!< in,own: InnoDB cursor */ -{ - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - - if (prebuilt && prebuilt->table) { - dict_table_close(prebuilt->table, FALSE, FALSE); - } - - return(DB_SUCCESS); -} -/**********************************************************************//** -Run the insert query and do error handling. -@return DB_SUCCESS or error code */ -UNIV_INLINE -ib_err_t -ib_insert_row_with_lock_retry( -/*==========================*/ - que_thr_t* thr, /*!< in: insert query graph */ - ins_node_t* node, /*!< in: insert node for the query */ - trx_savept_t* savept) /*!< in: savepoint to rollback to - in case of an error */ -{ - trx_t* trx; - ib_err_t err; - ib_bool_t lock_wait; - - trx = thr_get_trx(thr); - - do { - thr->run_node = node; - thr->prev_node = node; - - row_ins_step(thr); - - err = trx->error_state; - - if (err != DB_SUCCESS) { - que_thr_stop_for_mysql(thr); - - thr->lock_state = QUE_THR_LOCK_ROW; - lock_wait = static_cast( - ib_handle_errors(&err, trx, thr, savept)); - thr->lock_state = QUE_THR_LOCK_NOLOCK; - } else { - lock_wait = FALSE; - } - } while (lock_wait); - - return(err); -} - -/*****************************************************************//** -Write a row. -@return DB_SUCCESS or err code */ -static -ib_err_t -ib_execute_insert_query_graph( -/*==========================*/ - dict_table_t* table, /*!< in: table where to insert */ - que_fork_t* ins_graph, /*!< in: query graph */ - ins_node_t* node) /*!< in: insert node */ -{ - trx_t* trx; - que_thr_t* thr; - trx_savept_t savept; - ib_err_t err = DB_SUCCESS; - - trx = ins_graph->trx; - - savept = trx_savept_take(trx); - - thr = que_fork_get_first_thr(ins_graph); - - que_thr_move_to_run_state_for_mysql(thr, trx); - - err = ib_insert_row_with_lock_retry(thr, node, &savept); - - if (err == DB_SUCCESS) { - que_thr_stop_for_mysql_no_error(thr, trx); - - dict_table_n_rows_inc(table); - - if (table->is_system_db) { - srv_stats.n_system_rows_inserted.inc(); - } else { - srv_stats.n_rows_inserted.inc(); - } - } - - trx->op_info = ""; - - return(err); -} - -/*****************************************************************//** -Create an insert query graph node. */ -static -void -ib_insert_query_graph_create( -/*==========================*/ - ib_cursor_t* cursor) /*!< in: Cursor instance */ -{ - ib_qry_proc_t* q_proc = &cursor->q_proc; - ib_qry_node_t* node = &q_proc->node; - trx_t* trx = cursor->prebuilt->trx; - - ut_a(trx_is_started(trx)); - - if (node->ins == NULL) { - dtuple_t* row; - ib_qry_grph_t* grph = &q_proc->grph; - mem_heap_t* heap = cursor->query_heap; - dict_table_t* table = cursor->prebuilt->table; - - node->ins = ins_node_create(INS_DIRECT, table, heap); - - node->ins->select = NULL; - node->ins->values_list = NULL; - - row = dtuple_create(heap, dict_table_get_n_cols(table)); - dict_table_copy_types(row, table); - - ut_ad(!dict_table_have_virtual_index(table)); - - ins_node_set_new_row(node->ins, row); - - grph->ins = static_cast( - que_node_get_parent( - pars_complete_graph_for_exec(node->ins, trx, - heap, NULL))); - - grph->ins->state = QUE_FORK_ACTIVE; - } -} - -/*****************************************************************//** -Insert a row to a table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_insert_row( -/*=================*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor instance */ - const ib_tpl_t ib_tpl) /*!< in: tuple to insert */ -{ - ib_ulint_t i; - ib_qry_node_t* node; - ib_qry_proc_t* q_proc; - ulint n_fields; - dtuple_t* dst_dtuple; - ib_err_t err = DB_SUCCESS; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - const ib_tuple_t* src_tuple = (const ib_tuple_t*) ib_tpl; - - ib_insert_query_graph_create(cursor); - - ut_ad(src_tuple->type == TPL_TYPE_ROW); - - q_proc = &cursor->q_proc; - node = &q_proc->node; - - node->ins->state = INS_NODE_ALLOC_ROW_ID; - dst_dtuple = node->ins->row; - - n_fields = dtuple_get_n_fields(src_tuple->ptr); - ut_ad(n_fields == dtuple_get_n_fields(dst_dtuple)); - - /* Do a shallow copy of the data fields and check for NULL - constraints on columns. */ - for (i = 0; i < n_fields; i++) { - ulint mtype; - dfield_t* src_field; - dfield_t* dst_field; - - src_field = dtuple_get_nth_field(src_tuple->ptr, i); - - mtype = dtype_get_mtype(dfield_get_type(src_field)); - - /* Don't touch the system columns. */ - if (mtype != DATA_SYS) { - ulint prtype; - - prtype = dtype_get_prtype(dfield_get_type(src_field)); - - if ((prtype & DATA_NOT_NULL) - && dfield_is_null(src_field)) { - - err = DB_DATA_MISMATCH; - break; - } - - dst_field = dtuple_get_nth_field(dst_dtuple, i); - ut_ad(mtype - == dtype_get_mtype(dfield_get_type(dst_field))); - - /* Do a shallow copy. */ - dfield_set_data( - dst_field, src_field->data, src_field->len); - - if (dst_field->len != IB_SQL_NULL) { - UNIV_MEM_ASSERT_RW(dst_field->data, - dst_field->len); - } - } - } - - if (err == DB_SUCCESS) { - err = ib_execute_insert_query_graph( - src_tuple->index->table, q_proc->grph.ins, node->ins); - } - - ib_wake_master_thread(); - - return(err); -} - -/*********************************************************************//** -Gets pointer to a prebuilt update vector used in updates. -@return update vector */ -UNIV_INLINE -upd_t* -ib_update_vector_create( -/*====================*/ - ib_cursor_t* cursor) /*!< in: current cursor */ -{ - trx_t* trx = cursor->prebuilt->trx; - mem_heap_t* heap = cursor->query_heap; - dict_table_t* table = cursor->prebuilt->table; - ib_qry_proc_t* q_proc = &cursor->q_proc; - ib_qry_grph_t* grph = &q_proc->grph; - ib_qry_node_t* node = &q_proc->node; - - ut_a(trx_is_started(trx)); - - if (node->upd == NULL) { - node->upd = static_cast( - row_create_update_node_for_mysql(table, heap)); - } - - ut_ad(!dict_table_have_virtual_index(table)); - - grph->upd = static_cast( - que_node_get_parent( - pars_complete_graph_for_exec(node->upd, trx, - heap, NULL))); - - grph->upd->state = QUE_FORK_ACTIVE; - - return(node->upd->update); -} - -/**********************************************************************//** -Note that a column has changed. */ -static -void -ib_update_col( -/*==========*/ - - ib_cursor_t* cursor, /*!< in: current cursor */ - upd_field_t* upd_field, /*!< in/out: update field */ - ulint col_no, /*!< in: column number */ - dfield_t* dfield) /*!< in: updated dfield */ -{ - ulint data_len; - dict_table_t* table = cursor->prebuilt->table; - dict_index_t* index = dict_table_get_first_index(table); - - data_len = dfield_get_len(dfield); - - if (data_len == UNIV_SQL_NULL) { - dfield_set_null(&upd_field->new_val); - } else { - dfield_copy_data(&upd_field->new_val, dfield); - } - - upd_field->exp = NULL; - - upd_field->orig_len = 0; - - upd_field->field_no = dict_col_get_clust_pos( - &table->cols[col_no], index); -} - -/**********************************************************************//** -Checks which fields have changed in a row and stores the new data -to an update vector. -@return DB_SUCCESS or err code */ -static -ib_err_t -ib_calc_diff( -/*=========*/ - ib_cursor_t* cursor, /*!< in: current cursor */ - upd_t* upd, /*!< in/out: update vector */ - const ib_tuple_t*old_tuple, /*!< in: Old tuple in table */ - const ib_tuple_t*new_tuple) /*!< in: New tuple to update */ -{ - ulint i; - ulint n_changed = 0; - ib_err_t err = DB_SUCCESS; - ulint n_fields = dtuple_get_n_fields(new_tuple->ptr); - - ut_a(old_tuple->type == TPL_TYPE_ROW); - ut_a(new_tuple->type == TPL_TYPE_ROW); - ut_a(old_tuple->index->table == new_tuple->index->table); - - for (i = 0; i < n_fields; ++i) { - ulint mtype; - ulint prtype; - upd_field_t* upd_field; - dfield_t* new_dfield; - dfield_t* old_dfield; - - new_dfield = dtuple_get_nth_field(new_tuple->ptr, i); - old_dfield = dtuple_get_nth_field(old_tuple->ptr, i); - - mtype = dtype_get_mtype(dfield_get_type(old_dfield)); - prtype = dtype_get_prtype(dfield_get_type(old_dfield)); - - /* Skip the system columns */ - if (mtype == DATA_SYS) { - continue; - - } else if ((prtype & DATA_NOT_NULL) - && dfield_is_null(new_dfield)) { - - err = DB_DATA_MISMATCH; - break; - } - - if (dfield_get_len(new_dfield) != dfield_get_len(old_dfield) - || (!dfield_is_null(old_dfield) - && memcmp(dfield_get_data(new_dfield), - dfield_get_data(old_dfield), - dfield_get_len(old_dfield)) != 0)) { - - upd_field = &upd->fields[n_changed]; - - ib_update_col(cursor, upd_field, i, new_dfield); - - ++n_changed; - } - } - - if (err == DB_SUCCESS) { - upd->info_bits = 0; - upd->n_fields = n_changed; - } - - return(err); -} - -/**********************************************************************//** -Run the update query and do error handling. -@return DB_SUCCESS or error code */ -UNIV_INLINE -ib_err_t -ib_update_row_with_lock_retry( -/*==========================*/ - que_thr_t* thr, /*!< in: Update query graph */ - upd_node_t* node, /*!< in: Update node for the query */ - trx_savept_t* savept) /*!< in: savepoint to rollback to - in case of an error */ - -{ - trx_t* trx; - ib_err_t err; - ib_bool_t lock_wait; - - trx = thr_get_trx(thr); - - do { - thr->run_node = node; - thr->prev_node = node; - - row_upd_step(thr); - - err = trx->error_state; - - if (err != DB_SUCCESS) { - que_thr_stop_for_mysql(thr); - - if (err != DB_RECORD_NOT_FOUND) { - thr->lock_state = QUE_THR_LOCK_ROW; - - lock_wait = static_cast( - ib_handle_errors(&err, trx, thr, savept)); - - thr->lock_state = QUE_THR_LOCK_NOLOCK; - } else { - lock_wait = FALSE; - } - } else { - lock_wait = FALSE; - } - } while (lock_wait); - - return(err); -} - -/*********************************************************************//** -Does an update or delete of a row. -@return DB_SUCCESS or err code */ -UNIV_INLINE -ib_err_t -ib_execute_update_query_graph( -/*==========================*/ - ib_cursor_t* cursor, /*!< in: Cursor instance */ - btr_pcur_t* pcur) /*!< in: Btree persistent cursor */ -{ - ib_err_t err; - que_thr_t* thr; - upd_node_t* node; - trx_savept_t savept; - trx_t* trx = cursor->prebuilt->trx; - dict_table_t* table = cursor->prebuilt->table; - ib_qry_proc_t* q_proc = &cursor->q_proc; - - /* The transaction must be running. */ - ut_a(trx_is_started(trx)); - - node = q_proc->node.upd; - - ut_a(dict_index_is_clust(pcur->btr_cur.index)); - btr_pcur_copy_stored_position(node->pcur, pcur); - - ut_a(node->pcur->rel_pos == BTR_PCUR_ON); - - savept = trx_savept_take(trx); - - thr = que_fork_get_first_thr(q_proc->grph.upd); - - node->state = UPD_NODE_UPDATE_CLUSTERED; - - que_thr_move_to_run_state_for_mysql(thr, trx); - - err = ib_update_row_with_lock_retry(thr, node, &savept); - - if (err == DB_SUCCESS) { - - que_thr_stop_for_mysql_no_error(thr, trx); - - if (node->is_delete) { - - dict_table_n_rows_dec(table); - - if (table->is_system_db) { - srv_stats.n_system_rows_deleted.inc(); - } else { - srv_stats.n_rows_deleted.inc(); - } - } else { - if (table->is_system_db) { - srv_stats.n_system_rows_updated.inc(); - } else { - srv_stats.n_rows_updated.inc(); - } - } - - } else if (err == DB_RECORD_NOT_FOUND) { - trx->error_state = DB_SUCCESS; - } - - trx->op_info = ""; - - return(err); -} - -/*****************************************************************//** -Update a row in a table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_update_row( -/*=================*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - const ib_tpl_t ib_old_tpl, /*!< in: Old tuple in table */ - const ib_tpl_t ib_new_tpl) /*!< in: New tuple to update */ -{ - upd_t* upd; - ib_err_t err; - btr_pcur_t* pcur; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - const ib_tuple_t*old_tuple = (const ib_tuple_t*) ib_old_tpl; - const ib_tuple_t*new_tuple = (const ib_tuple_t*) ib_new_tpl; - - if (dict_index_is_clust(prebuilt->index)) { - pcur = cursor->prebuilt->pcur; - } else if (prebuilt->need_to_access_clustered) { - pcur = cursor->prebuilt->clust_pcur; - } else { - return(DB_ERROR); - } - - ut_a(old_tuple->type == TPL_TYPE_ROW); - ut_a(new_tuple->type == TPL_TYPE_ROW); - - upd = ib_update_vector_create(cursor); - - err = ib_calc_diff(cursor, upd, old_tuple, new_tuple); - - if (err == DB_SUCCESS) { - /* Note that this is not a delete. */ - cursor->q_proc.node.upd->is_delete = FALSE; - - err = ib_execute_update_query_graph(cursor, pcur); - } - - ib_wake_master_thread(); - - return(err); -} - -/**********************************************************************//** -Build the update query graph to delete a row from an index. -@return DB_SUCCESS or err code */ -static -ib_err_t -ib_delete_row( -/*==========*/ - ib_cursor_t* cursor, /*!< in: current cursor */ - btr_pcur_t* pcur, /*!< in: Btree persistent cursor */ - const rec_t* rec) /*!< in: record to delete */ -{ - ulint i; - upd_t* upd; - ib_err_t err; - ib_tuple_t* tuple; - ib_tpl_t ib_tpl; - ulint n_cols; - upd_field_t* upd_field; - ib_bool_t page_format; - dict_table_t* table = cursor->prebuilt->table; - dict_index_t* index = dict_table_get_first_index(table); - - n_cols = dict_index_get_n_ordering_defined_by_user(index); - ib_tpl = ib_key_tuple_new(index, n_cols); - - if (!ib_tpl) { - return(DB_OUT_OF_MEMORY); - } - - tuple = (ib_tuple_t*) ib_tpl; - - upd = ib_update_vector_create(cursor); - - page_format = static_cast( - dict_table_is_comp(index->table)); - ib_read_tuple(rec, page_format, tuple, NULL, NULL); - - upd->n_fields = ib_tuple_get_n_cols(ib_tpl); - - for (i = 0; i < upd->n_fields; ++i) { - dfield_t* dfield; - - upd_field = &upd->fields[i]; - dfield = dtuple_get_nth_field(tuple->ptr, i); - - dfield_copy_data(&upd_field->new_val, dfield); - - upd_field->exp = NULL; - - upd_field->orig_len = 0; - - upd->info_bits = 0; - - upd_field->field_no = dict_col_get_clust_pos( - &table->cols[i], index); - } - - /* Note that this is a delete. */ - cursor->q_proc.node.upd->is_delete = TRUE; - - err = ib_execute_update_query_graph(cursor, pcur); - - ib_tuple_delete(ib_tpl); - - return(err); -} - -/*****************************************************************//** -Delete a row in a table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_delete_row( -/*=================*/ - ib_crsr_t ib_crsr) /*!< in: InnoDB cursor instance */ -{ - ib_err_t err; - btr_pcur_t* pcur; - dict_index_t* index; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - - index = dict_table_get_first_index(prebuilt->index->table); - - /* Check whether this is a secondary index cursor */ - if (index != prebuilt->index) { - if (prebuilt->need_to_access_clustered) { - pcur = prebuilt->clust_pcur; - } else { - return(DB_ERROR); - } - } else { - pcur = prebuilt->pcur; - } - - if (ib_btr_cursor_is_positioned(pcur)) { - const rec_t* rec; - ib_bool_t page_format; - mtr_t mtr; - rec_t* copy = NULL; - byte ptr[UNIV_PAGE_SIZE_MAX]; - - page_format = static_cast( - dict_table_is_comp(index->table)); - - mtr_start(&mtr); - - if (btr_pcur_restore_position( - BTR_SEARCH_LEAF, pcur, &mtr)) { - mem_heap_t* heap = NULL; - ulint offsets_[REC_OFFS_NORMAL_SIZE]; - ulint* offsets = offsets_; - - rec_offs_init(offsets_); - - rec = btr_pcur_get_rec(pcur); - - /* Since mtr will be commited, the rec - will not be protected. Make a copy of - the rec. */ - offsets = rec_get_offsets( - rec, index, offsets, ULINT_UNDEFINED, &heap); - ut_ad(rec_offs_size(offsets) < UNIV_PAGE_SIZE_MAX); - copy = rec_copy(ptr, rec, offsets); - } - - mtr_commit(&mtr); - - if (copy && !rec_get_deleted_flag(copy, page_format)) { - err = ib_delete_row(cursor, pcur, copy); - } else { - err = DB_RECORD_NOT_FOUND; - } - } else { - err = DB_RECORD_NOT_FOUND; - } - - ib_wake_master_thread(); - - return(err); -} - -/*****************************************************************//** -Read current row. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_read_row( -/*===============*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - ib_tpl_t ib_tpl, /*!< out: read cols into this tuple */ - void** row_buf, /*!< in/out: row buffer */ - ib_ulint_t* row_len) /*!< in/out: row buffer len */ -{ - ib_err_t err; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - - ut_a(trx_is_started(cursor->prebuilt->trx)); - - /* When searching with IB_EXACT_MATCH set, row_search_for_mysql() - will not position the persistent cursor but will copy the record - found into the row cache. It should be the only entry. */ - if (!ib_cursor_is_positioned(ib_crsr) ) { - err = DB_RECORD_NOT_FOUND; - } else { - mtr_t mtr; - btr_pcur_t* pcur; - row_prebuilt_t* prebuilt = cursor->prebuilt; - - if (prebuilt->need_to_access_clustered - && tuple->type == TPL_TYPE_ROW) { - pcur = prebuilt->clust_pcur; - } else { - pcur = prebuilt->pcur; - } - - if (pcur == NULL) { - return(DB_ERROR); - } - - mtr_start(&mtr); - - if (btr_pcur_restore_position(BTR_SEARCH_LEAF, pcur, &mtr)) { - const rec_t* rec; - ib_bool_t page_format; - - page_format = static_cast( - dict_table_is_comp(tuple->index->table)); - rec = btr_pcur_get_rec(pcur); - - if (prebuilt->innodb_api_rec && - prebuilt->innodb_api_rec != rec) { - rec = prebuilt->innodb_api_rec; - } - - if (!rec_get_deleted_flag(rec, page_format)) { - ib_read_tuple(rec, page_format, tuple, - row_buf, (ulint*) row_len); - err = DB_SUCCESS; - } else{ - err = DB_RECORD_NOT_FOUND; - } - - } else { - err = DB_RECORD_NOT_FOUND; - } - - mtr_commit(&mtr); - } - - return(err); -} - -/*****************************************************************//** -Move cursor to the first record in the table. -@return DB_SUCCESS or err code */ -UNIV_INLINE -ib_err_t -ib_cursor_position( -/*===============*/ - ib_cursor_t* cursor, /*!< in: InnoDB cursor instance */ - ib_srch_mode_t mode) /*!< in: Search mode */ -{ - ib_err_t err; - row_prebuilt_t* prebuilt = cursor->prebuilt; - unsigned char* buf; - - buf = static_cast(ut_malloc_nokey(UNIV_PAGE_SIZE)); - - /* We want to position at one of the ends, row_search_for_mysql() - uses the search_tuple fields to work out what to do. */ - dtuple_set_n_fields(prebuilt->search_tuple, 0); - - err = static_cast(row_search_for_mysql( - buf, static_cast(mode), prebuilt, 0, 0)); - - ut_free(buf); - - return(err); -} - -/*****************************************************************//** -Move cursor to the first record in the table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_first( -/*============*/ - ib_crsr_t ib_crsr) /*!< in: InnoDB cursor instance */ -{ - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - - return(ib_cursor_position(cursor, IB_CUR_G)); -} - -/*****************************************************************//** -Move cursor to the next user record in the table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_next( -/*===========*/ - ib_crsr_t ib_crsr) /*!< in: InnoDB cursor instance */ -{ - ib_err_t err; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - byte buf[UNIV_PAGE_SIZE_MAX]; - - /* We want to move to the next record */ - dtuple_set_n_fields(prebuilt->search_tuple, 0); - - err = static_cast(row_search_for_mysql( - buf, PAGE_CUR_G, prebuilt, 0, ROW_SEL_NEXT)); - - return(err); -} - -/*****************************************************************//** -Search for key. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_moveto( -/*=============*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - ib_tpl_t ib_tpl, /*!< in: Key to search for */ - ib_srch_mode_t ib_srch_mode) /*!< in: search mode */ -{ - ulint i; - ulint n_fields; - ib_err_t err = DB_SUCCESS; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - dtuple_t* search_tuple = prebuilt->search_tuple; - unsigned char* buf; - - ut_a(tuple->type == TPL_TYPE_KEY); - - n_fields = dict_index_get_n_ordering_defined_by_user(prebuilt->index); - - if (n_fields > dtuple_get_n_fields(tuple->ptr)) { - n_fields = dtuple_get_n_fields(tuple->ptr); - } - - dtuple_set_n_fields(search_tuple, n_fields); - dtuple_set_n_fields_cmp(search_tuple, n_fields); - - /* Do a shallow copy */ - for (i = 0; i < n_fields; ++i) { - dfield_copy(dtuple_get_nth_field(search_tuple, i), - dtuple_get_nth_field(tuple->ptr, i)); - } - - ut_a(prebuilt->select_lock_type <= LOCK_NUM); - - prebuilt->innodb_api_rec = NULL; - - buf = static_cast(ut_malloc_nokey(UNIV_PAGE_SIZE)); - - err = static_cast(row_search_for_mysql( - buf, static_cast(ib_srch_mode), prebuilt, - cursor->match_mode, 0)); - - ut_free(buf); - - return(err); -} - -/*****************************************************************//** -Set the cursor search mode. */ -void -ib_cursor_set_match_mode( -/*=====================*/ - ib_crsr_t ib_crsr, /*!< in: Cursor instance */ - ib_match_mode_t match_mode) /*!< in: ib_cursor_moveto match mode */ -{ - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - - cursor->match_mode = match_mode; -} - -/*****************************************************************//** -Get the dfield instance for the column in the tuple. -@return dfield instance in tuple */ -UNIV_INLINE -dfield_t* -ib_col_get_dfield( -/*==============*/ - ib_tuple_t* tuple, /*!< in: tuple instance */ - ulint col_no) /*!< in: col no. in tuple */ -{ - dfield_t* dfield; - - dfield = dtuple_get_nth_field(tuple->ptr, col_no); - - return(dfield); -} - -/*****************************************************************//** -Predicate to check whether a column type contains variable length data. -@return DB_SUCCESS or error code */ -UNIV_INLINE -ib_err_t -ib_col_is_capped( -/*==============*/ - const dtype_t* dtype) /*!< in: column type */ -{ - return(static_cast( - (dtype_get_mtype(dtype) == DATA_VARCHAR - || dtype_get_mtype(dtype) == DATA_CHAR - || dtype_get_mtype(dtype) == DATA_MYSQL - || dtype_get_mtype(dtype) == DATA_VARMYSQL - || dtype_get_mtype(dtype) == DATA_FIXBINARY - || dtype_get_mtype(dtype) == DATA_BINARY - || dtype_get_mtype(dtype) == DATA_POINT) - && dtype_get_len(dtype) > 0)); -} - -/*****************************************************************//** -Set a column of the tuple. Make a copy using the tuple's heap. -@return DB_SUCCESS or error code */ -ib_err_t -ib_col_set_value( -/*=============*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t col_no, /*!< in: column index in tuple */ - const void* src, /*!< in: data value */ - ib_ulint_t len, /*!< in: data value len */ - ib_bool_t need_cpy) /*!< in: if need memcpy */ -{ - const dtype_t* dtype; - dfield_t* dfield; - void* dst = NULL; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - ulint col_len; - - dfield = ib_col_get_dfield(tuple, col_no); - - /* User wants to set the column to NULL. */ - if (len == IB_SQL_NULL) { - dfield_set_null(dfield); - return(DB_SUCCESS); - } - - dtype = dfield_get_type(dfield); - col_len = dtype_get_len(dtype); - - /* Not allowed to update system columns. */ - if (dtype_get_mtype(dtype) == DATA_SYS) { - return(DB_DATA_MISMATCH); - } - - dst = dfield_get_data(dfield); - - /* Since TEXT/CLOB also map to DATA_VARCHAR we need to make an - exception. Perhaps we need to set the precise type and check - for that. */ - if (ib_col_is_capped(dtype)) { - - len = ut_min(len, static_cast(col_len)); - - if (dst == NULL || len > dfield_get_len(dfield)) { - dst = mem_heap_alloc(tuple->heap, col_len); - ut_a(dst != NULL); - } - } else if (dst == NULL || len > dfield_get_len(dfield)) { - dst = mem_heap_alloc(tuple->heap, len); - } - - if (dst == NULL) { - return(DB_OUT_OF_MEMORY); - } - - switch (dtype_get_mtype(dtype)) { - case DATA_INT: { - - if (col_len == len) { - ibool usign; - - usign = dtype_get_prtype(dtype) & DATA_UNSIGNED; - mach_write_int_type(static_cast(dst), - static_cast(src), - len, usign); - - } else { - return(DB_DATA_MISMATCH); - } - break; - } - - case DATA_FLOAT: - if (len == sizeof(float)) { - mach_float_write(static_cast(dst), *(float*)src); - } else { - return(DB_DATA_MISMATCH); - } - break; - - case DATA_DOUBLE: - if (len == sizeof(double)) { - mach_double_write(static_cast(dst), - *(double*)src); - } else { - return(DB_DATA_MISMATCH); - } - break; - - case DATA_SYS: - ut_error; - break; - - case DATA_CHAR: - memcpy(dst, src, len); - memset((byte*) dst + len, 0x20, col_len - len); - len = col_len; - break; - - case DATA_POINT: - memcpy(dst, src, len); - break; - - case DATA_BLOB: - case DATA_VAR_POINT: - case DATA_GEOMETRY: - case DATA_BINARY: - case DATA_DECIMAL: - case DATA_VARCHAR: - case DATA_FIXBINARY: - if (need_cpy) { - memcpy(dst, src, len); - } else { - dfield_set_data(dfield, src, len); - dst = dfield_get_data(dfield); - } - break; - - case DATA_MYSQL: - case DATA_VARMYSQL: { - ulint cset; - CHARSET_INFO* cs; - int error = 0; - ulint true_len = len; - - /* For multi byte character sets we need to - calculate the true length of the data. */ - cset = dtype_get_charset_coll( - dtype_get_prtype(dtype)); - cs = all_charsets[cset]; - if (cs) { - uint pos = (uint)(col_len / cs->mbmaxlen); - - if (len > 0 && cs->mbmaxlen > 1) { - true_len = (ulint) - my_well_formed_length( - cs, - (const char*)src, - (const char*)src + len, - pos, - &error); - - if (true_len < len) { - len = static_cast(true_len); - } - } - } - - /* All invalid bytes in data need be truncated. - If len == 0, means all bytes of the data is invalid. - In this case, the data will be truncated to empty.*/ - memcpy(dst, src, len); - - /* For DATA_MYSQL, need to pad the unused - space with spaces. */ - if (dtype_get_mtype(dtype) == DATA_MYSQL) { - ulint n_chars; - - if (len < col_len) { - ulint pad_len = col_len - len; - - ut_a(cs != NULL); - ut_a(!(pad_len % cs->mbminlen)); - - cs->cset->fill(cs, (char*)dst + len, - pad_len, - 0x20 /* space */); - } - - /* Why we should do below? See function - row_mysql_store_col_in_innobase_format */ - - ut_a(!(dtype_get_len(dtype) - % dtype_get_mbmaxlen(dtype))); - - n_chars = dtype_get_len(dtype) - / dtype_get_mbmaxlen(dtype); - - /* Strip space padding. */ - while (col_len > n_chars - && ((char*)dst)[col_len - 1] == 0x20) { - col_len--; - } - - len = static_cast(col_len); - } - break; - } - - default: - ut_error; - } - - if (dst != dfield_get_data(dfield)) { - dfield_set_data(dfield, dst, len); - } else { - dfield_set_len(dfield, len); - } - - return(DB_SUCCESS); -} - -/*****************************************************************//** -Get the size of the data available in a column of the tuple. -@return bytes avail or IB_SQL_NULL */ -ib_ulint_t -ib_col_get_len( -/*===========*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t i) /*!< in: column index in tuple */ -{ - const dfield_t* dfield; - ulint data_len; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - - dfield = ib_col_get_dfield(tuple, i); - - data_len = dfield_get_len(dfield); - - return(static_cast( - data_len == UNIV_SQL_NULL ? IB_SQL_NULL : data_len)); -} - -/*****************************************************************//** -Copy a column value from the tuple. -@return bytes copied or IB_SQL_NULL */ -UNIV_INLINE -ib_ulint_t -ib_col_copy_value_low( -/*==================*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t i, /*!< in: column index in tuple */ - void* dst, /*!< out: copied data value */ - ib_ulint_t len) /*!< in: max data value len to copy */ -{ - const void* data; - const dfield_t* dfield; - ulint data_len; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - - dfield = ib_col_get_dfield(tuple, i); - - data = dfield_get_data(dfield); - data_len = dfield_get_len(dfield); - - if (data_len != UNIV_SQL_NULL) { - - const dtype_t* dtype = dfield_get_type(dfield); - - switch (dtype_get_mtype(dfield_get_type(dfield))) { - case DATA_INT: { - ibool usign; - uintmax_t ret; - - ut_a(data_len == len); - - usign = dtype_get_prtype(dtype) & DATA_UNSIGNED; - ret = mach_read_int_type(static_cast(data), - data_len, usign); - - if (usign) { - if (len == 1) { - *(ib_i8_t*)dst = (ib_i8_t)ret; - } else if (len == 2) { - *(ib_i16_t*)dst = (ib_i16_t)ret; - } else if (len == 4) { - *(ib_i32_t*)dst = (ib_i32_t)ret; - } else { - *(ib_i64_t*)dst = (ib_i64_t)ret; - } - } else { - if (len == 1) { - *(ib_u8_t*)dst = (ib_i8_t)ret; - } else if (len == 2) { - *(ib_u16_t*)dst = (ib_i16_t)ret; - } else if (len == 4) { - *(ib_u32_t*)dst = (ib_i32_t)ret; - } else { - *(ib_u64_t*)dst = (ib_i64_t)ret; - } - } - - break; - } - case DATA_FLOAT: - if (len == data_len) { - float f; - - ut_a(data_len == sizeof(f)); - f = mach_float_read(static_cast( - data)); - memcpy(dst, &f, sizeof(f)); - } else { - data_len = 0; - } - break; - case DATA_DOUBLE: - if (len == data_len) { - double d; - - ut_a(data_len == sizeof(d)); - d = mach_double_read(static_cast( - data)); - memcpy(dst, &d, sizeof(d)); - } else { - data_len = 0; - } - break; - default: - data_len = ut_min(data_len, len); - memcpy(dst, data, data_len); - } - } else { - data_len = IB_SQL_NULL; - } - - return(static_cast(data_len)); -} - -/*****************************************************************//** -Copy a column value from the tuple. -@return bytes copied or IB_SQL_NULL */ -ib_ulint_t -ib_col_copy_value( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t i, /*!< in: column index in tuple */ - void* dst, /*!< out: copied data value */ - ib_ulint_t len) /*!< in: max data value len to copy */ -{ - return(ib_col_copy_value_low(ib_tpl, i, dst, len)); -} - -/*****************************************************************//** -Get the InnoDB column attribute from the internal column precise type. -@return precise type in api format */ -UNIV_INLINE -ib_col_attr_t -ib_col_get_attr( -/*============*/ - ulint prtype) /*!< in: column definition */ -{ - ib_col_attr_t attr = IB_COL_NONE; - - if (prtype & DATA_UNSIGNED) { - attr = static_cast(attr | IB_COL_UNSIGNED); - } - - if (prtype & DATA_NOT_NULL) { - attr = static_cast(attr | IB_COL_NOT_NULL); - } - - return(attr); -} - -/*****************************************************************//** -Get a column name from the tuple. -@return name of the column */ -const char* -ib_col_get_name( -/*============*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - ib_ulint_t i) /*!< in: column index in tuple */ -{ - const char* name; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - dict_table_t* table = cursor->prebuilt->table; - dict_col_t* col = dict_table_get_nth_col(table, i); - ulint col_no = dict_col_get_no(col); - - name = dict_table_get_col_name(table, col_no); - - return(name); -} - -/*****************************************************************//** -Get an index field name from the cursor. -@return name of the field */ -const char* -ib_get_idx_field_name( -/*==================*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - ib_ulint_t i) /*!< in: column index in tuple */ -{ - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - dict_index_t* index = cursor->prebuilt->index; - dict_field_t* field; - - if (index) { - field = dict_index_get_nth_field(cursor->prebuilt->index, i); - - if (field) { - return(field->name); - } - } - - return(NULL); -} - -/*****************************************************************//** -Get a column type, length and attributes from the tuple. -@return len of column data */ -UNIV_INLINE -ib_ulint_t -ib_col_get_meta_low( -/*================*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t i, /*!< in: column index in tuple */ - ib_col_meta_t* ib_col_meta) /*!< out: column meta data */ -{ - ib_u16_t prtype; - const dfield_t* dfield; - ulint data_len; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - - dfield = ib_col_get_dfield(tuple, i); - - data_len = dfield_get_len(dfield); - - /* We assume 1-1 mapping between the ENUM and internal type codes. */ - ib_col_meta->type = static_cast( - dtype_get_mtype(dfield_get_type(dfield))); - - ib_col_meta->type_len = static_cast( - dtype_get_len(dfield_get_type(dfield))); - - prtype = (ib_u16_t) dtype_get_prtype(dfield_get_type(dfield)); - - ib_col_meta->attr = ib_col_get_attr(prtype); - ib_col_meta->client_type = prtype & DATA_MYSQL_TYPE_MASK; - - return(static_cast(data_len)); -} - -/*************************************************************//** -Read a signed int 8 bit column from an InnoDB tuple. */ -UNIV_INLINE -ib_err_t -ib_tuple_check_int( -/*===============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_bool_t usign, /*!< in: true if unsigned */ - ulint size) /*!< in: size of integer */ -{ - ib_col_meta_t ib_col_meta; - - ib_col_get_meta_low(ib_tpl, i, &ib_col_meta); - - if (ib_col_meta.type != IB_INT) { - return(DB_DATA_MISMATCH); - } else if (ib_col_meta.type_len == IB_SQL_NULL) { - return(DB_UNDERFLOW); - } else if (ib_col_meta.type_len != size) { - return(DB_DATA_MISMATCH); - } else if ((ib_col_meta.attr & IB_COL_UNSIGNED) && !usign) { - return(DB_DATA_MISMATCH); - } - - return(DB_SUCCESS); -} - -/*************************************************************//** -Read a signed int 8 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_i8( -/*=============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_i8_t* ival) /*!< out: integer value */ -{ - ib_err_t err; - - err = ib_tuple_check_int(ib_tpl, i, IB_FALSE, sizeof(*ival)); - - if (err == DB_SUCCESS) { - ib_col_copy_value_low(ib_tpl, i, ival, sizeof(*ival)); - } - - return(err); -} - -/*************************************************************//** -Read an unsigned int 8 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_u8( -/*=============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_u8_t* ival) /*!< out: integer value */ -{ - ib_err_t err; - - err = ib_tuple_check_int(ib_tpl, i, IB_TRUE, sizeof(*ival)); - - if (err == DB_SUCCESS) { - ib_col_copy_value_low(ib_tpl, i, ival, sizeof(*ival)); - } - - return(err); -} - -/*************************************************************//** -Read a signed int 16 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_i16( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_i16_t* ival) /*!< out: integer value */ -{ - ib_err_t err; - - err = ib_tuple_check_int(ib_tpl, i, FALSE, sizeof(*ival)); - - if (err == DB_SUCCESS) { - ib_col_copy_value_low(ib_tpl, i, ival, sizeof(*ival)); - } - - return(err); -} - -/*************************************************************//** -Read an unsigned int 16 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_u16( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_u16_t* ival) /*!< out: integer value */ -{ - ib_err_t err; - - err = ib_tuple_check_int(ib_tpl, i, IB_TRUE, sizeof(*ival)); - - if (err == DB_SUCCESS) { - ib_col_copy_value_low(ib_tpl, i, ival, sizeof(*ival)); - } - - return(err); -} - -/*************************************************************//** -Read a signed int 32 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_i32( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_i32_t* ival) /*!< out: integer value */ -{ - ib_err_t err; - - err = ib_tuple_check_int(ib_tpl, i, FALSE, sizeof(*ival)); - - if (err == DB_SUCCESS) { - ib_col_copy_value_low(ib_tpl, i, ival, sizeof(*ival)); - } - - return(err); -} - -/*************************************************************//** -Read an unsigned int 32 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_u32( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_u32_t* ival) /*!< out: integer value */ -{ - ib_err_t err; - - err = ib_tuple_check_int(ib_tpl, i, IB_TRUE, sizeof(*ival)); - - if (err == DB_SUCCESS) { - ib_col_copy_value_low(ib_tpl, i, ival, sizeof(*ival)); - } - - return(err); -} - -/*************************************************************//** -Read a signed int 64 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_i64( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_i64_t* ival) /*!< out: integer value */ -{ - ib_err_t err; - - err = ib_tuple_check_int(ib_tpl, i, FALSE, sizeof(*ival)); - - if (err == DB_SUCCESS) { - ib_col_copy_value_low(ib_tpl, i, ival, sizeof(*ival)); - } - - return(err); -} - -/*************************************************************//** -Read an unsigned int 64 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_u64( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_u64_t* ival) /*!< out: integer value */ -{ - ib_err_t err; - - err = ib_tuple_check_int(ib_tpl, i, IB_TRUE, sizeof(*ival)); - - if (err == DB_SUCCESS) { - ib_col_copy_value_low(ib_tpl, i, ival, sizeof(*ival)); - } - - return(err); -} - -/*****************************************************************//** -Get a column value pointer from the tuple. -@return NULL or pointer to buffer */ -const void* -ib_col_get_value( -/*=============*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t i) /*!< in: column index in tuple */ -{ - const void* data; - const dfield_t* dfield; - ulint data_len; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - - dfield = ib_col_get_dfield(tuple, i); - - data = dfield_get_data(dfield); - data_len = dfield_get_len(dfield); - - return(data_len != UNIV_SQL_NULL ? data : NULL); -} - -/*****************************************************************//** -Get a column type, length and attributes from the tuple. -@return len of column data */ -ib_ulint_t -ib_col_get_meta( -/*============*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t i, /*!< in: column index in tuple */ - ib_col_meta_t* ib_col_meta) /*!< out: column meta data */ -{ - return(ib_col_get_meta_low(ib_tpl, i, ib_col_meta)); -} - -/*****************************************************************//** -"Clear" or reset an InnoDB tuple. We free the heap and recreate the tuple. -@return new tuple, or NULL */ -ib_tpl_t -ib_tuple_clear( -/*============*/ - ib_tpl_t ib_tpl) /*!< in,own: tuple (will be freed) */ -{ - const dict_index_t* index; - ulint n_cols; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - ib_tuple_type_t type = tuple->type; - mem_heap_t* heap = tuple->heap; - - index = tuple->index; - n_cols = dtuple_get_n_fields(tuple->ptr); - - mem_heap_empty(heap); - - if (type == TPL_TYPE_ROW) { - return(ib_row_tuple_new_low(index, n_cols, heap)); - } else { - return(ib_key_tuple_new_low(index, n_cols, heap)); - } -} - -/*****************************************************************//** -Create a new cluster key search tuple and copy the contents of the -secondary index key tuple columns that refer to the cluster index record -to the cluster key. It does a deep copy of the column data. -@return DB_SUCCESS or error code */ -ib_err_t -ib_tuple_get_cluster_key( -/*=====================*/ - ib_crsr_t ib_crsr, /*!< in: secondary index cursor */ - ib_tpl_t* ib_dst_tpl, /*!< out,own: destination tuple */ - const ib_tpl_t ib_src_tpl) /*!< in: source tuple */ -{ - ulint i; - ulint n_fields; - ib_err_t err = DB_SUCCESS; - ib_tuple_t* dst_tuple = NULL; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - ib_tuple_t* src_tuple = (ib_tuple_t*) ib_src_tpl; - dict_index_t* clust_index; - - clust_index = dict_table_get_first_index(cursor->prebuilt->table); - - /* We need to ensure that the src tuple belongs to the same table - as the open cursor and that it's not a tuple for a cluster index. */ - if (src_tuple->type != TPL_TYPE_KEY) { - return(DB_ERROR); - } else if (src_tuple->index->table != cursor->prebuilt->table) { - return(DB_DATA_MISMATCH); - } else if (src_tuple->index == clust_index) { - return(DB_ERROR); - } - - /* Create the cluster index key search tuple. */ - *ib_dst_tpl = ib_clust_search_tuple_create(ib_crsr); - - if (!*ib_dst_tpl) { - return(DB_OUT_OF_MEMORY); - } - - dst_tuple = (ib_tuple_t*) *ib_dst_tpl; - ut_a(dst_tuple->index == clust_index); - - n_fields = dict_index_get_n_unique(dst_tuple->index); - - /* Do a deep copy of the data fields. */ - for (i = 0; i < n_fields; i++) { - ulint pos; - dfield_t* src_field; - dfield_t* dst_field; - - pos = dict_index_get_nth_field_pos( - src_tuple->index, dst_tuple->index, i); - - ut_a(pos != ULINT_UNDEFINED); - - src_field = dtuple_get_nth_field(src_tuple->ptr, pos); - dst_field = dtuple_get_nth_field(dst_tuple->ptr, i); - - if (!dfield_is_null(src_field)) { - UNIV_MEM_ASSERT_RW(src_field->data, src_field->len); - - dst_field->data = mem_heap_dup( - dst_tuple->heap, - src_field->data, - src_field->len); - - dst_field->len = src_field->len; - } else { - dfield_set_null(dst_field); - } - } - - return(err); -} - -/*****************************************************************//** -Create an InnoDB tuple used for index/table search. -@return own: Tuple for current index */ -ib_tpl_t -ib_sec_search_tuple_create( -/*=======================*/ - ib_crsr_t ib_crsr) /*!< in: Cursor instance */ -{ - ulint n_cols; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - dict_index_t* index = cursor->prebuilt->index; - - n_cols = dict_index_get_n_unique_in_tree(index); - return(ib_key_tuple_new(index, n_cols)); -} - -/*****************************************************************//** -Create an InnoDB tuple used for index/table search. -@return own: Tuple for current index */ -ib_tpl_t -ib_sec_read_tuple_create( -/*=====================*/ - ib_crsr_t ib_crsr) /*!< in: Cursor instance */ -{ - ulint n_cols; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - dict_index_t* index = cursor->prebuilt->index; - - n_cols = dict_index_get_n_fields(index); - return(ib_row_tuple_new(index, n_cols)); -} - -/*****************************************************************//** -Create an InnoDB tuple used for table key operations. -@return own: Tuple for current table */ -ib_tpl_t -ib_clust_search_tuple_create( -/*=========================*/ - ib_crsr_t ib_crsr) /*!< in: Cursor instance */ -{ - ulint n_cols; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - dict_index_t* index; - - index = dict_table_get_first_index(cursor->prebuilt->table); - - n_cols = dict_index_get_n_ordering_defined_by_user(index); - return(ib_key_tuple_new(index, n_cols)); -} - -/*****************************************************************//** -Create an InnoDB tuple for table row operations. -@return own: Tuple for current table */ -ib_tpl_t -ib_clust_read_tuple_create( -/*=======================*/ - ib_crsr_t ib_crsr) /*!< in: Cursor instance */ -{ - ulint n_cols; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - dict_index_t* index; - - index = dict_table_get_first_index(cursor->prebuilt->table); - - n_cols = dict_table_get_n_cols(cursor->prebuilt->table); - return(ib_row_tuple_new(index, n_cols)); -} - -/*****************************************************************//** -Return the number of user columns in the tuple definition. -@return number of user columns */ -ib_ulint_t -ib_tuple_get_n_user_cols( -/*=====================*/ - const ib_tpl_t ib_tpl) /*!< in: Tuple for current table */ -{ - const ib_tuple_t* tuple = (const ib_tuple_t*) ib_tpl; - - if (tuple->type == TPL_TYPE_ROW) { - return(static_cast( - dict_table_get_n_user_cols(tuple->index->table))); - } - - return(static_cast( - dict_index_get_n_ordering_defined_by_user(tuple->index))); -} - -/*****************************************************************//** -Return the number of columns in the tuple definition. -@return number of columns */ -ib_ulint_t -ib_tuple_get_n_cols( -/*================*/ - const ib_tpl_t ib_tpl) /*!< in: Tuple for table/index */ -{ - const ib_tuple_t* tuple = (const ib_tuple_t*) ib_tpl; - - return(static_cast(dtuple_get_n_fields(tuple->ptr))); -} - -/*****************************************************************//** -Destroy an InnoDB tuple. */ -void -ib_tuple_delete( -/*============*/ - ib_tpl_t ib_tpl) /*!< in,own: Tuple instance to delete */ -{ - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - - if (!ib_tpl) { - return; - } - - mem_heap_free(tuple->heap); -} - -/*****************************************************************//** -Get a table id. This function will acquire the dictionary mutex. -@return DB_SUCCESS if found */ -ib_err_t -ib_table_get_id( -/*============*/ - const char* table_name, /*!< in: table to find */ - ib_id_u64_t* table_id) /*!< out: table id if found */ -{ - ib_err_t err; - - dict_mutex_enter_for_mysql(); - - err = ib_table_get_id_low(table_name, table_id); - - dict_mutex_exit_for_mysql(); - - return(err); -} - -/*****************************************************************//** -Check if cursor is positioned. -@return IB_TRUE if positioned */ -ib_bool_t -ib_cursor_is_positioned( -/*====================*/ - const ib_crsr_t ib_crsr) /*!< in: InnoDB cursor instance */ -{ - const ib_cursor_t* cursor = (const ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - - return(ib_btr_cursor_is_positioned(prebuilt->pcur)); -} - - -/*****************************************************************//** -Checks if the data dictionary is latched in exclusive mode. -@return TRUE if exclusive latch */ -ib_bool_t -ib_schema_lock_is_exclusive( -/*========================*/ - const ib_trx_t ib_trx) /*!< in: transaction */ -{ - const trx_t* trx = (const trx_t*) ib_trx; - - return(trx->dict_operation_lock_mode == RW_X_LATCH); -} - -/*****************************************************************//** -Checks if the data dictionary is latched in shared mode. -@return TRUE if shared latch */ -ib_bool_t -ib_schema_lock_is_shared( -/*=====================*/ - const ib_trx_t ib_trx) /*!< in: transaction */ -{ - const trx_t* trx = (const trx_t*) ib_trx; - - return(trx->dict_operation_lock_mode == RW_S_LATCH); -} - -/*****************************************************************//** -Set the Lock an InnoDB cursor/table. -@return DB_SUCCESS or error code */ -ib_err_t -ib_cursor_lock( -/*===========*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor */ - ib_lck_mode_t ib_lck_mode) /*!< in: InnoDB lock mode */ -{ - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - trx_t* trx = prebuilt->trx; - dict_table_t* table = prebuilt->table; - - return(ib_trx_lock_table_with_retry( - trx, table, (enum lock_mode) ib_lck_mode)); -} - -/*****************************************************************//** -Set the Lock an InnoDB table using the table id. -@return DB_SUCCESS or error code */ -ib_err_t -ib_table_lock( -/*==========*/ - ib_trx_t ib_trx, /*!< in/out: transaction */ - ib_id_u64_t table_id, /*!< in: table id */ - ib_lck_mode_t ib_lck_mode) /*!< in: InnoDB lock mode */ -{ - ib_err_t err; - que_thr_t* thr; - mem_heap_t* heap; - dict_table_t* table; - ib_qry_proc_t q_proc; - trx_t* trx = (trx_t*) ib_trx; - - ut_ad(trx_is_started(trx)); - - table = ib_open_table_by_id(table_id, FALSE); - - if (table == NULL) { - return(DB_TABLE_NOT_FOUND); - } - - ut_a(ib_lck_mode <= static_cast(LOCK_NUM)); - ut_ad(!dict_table_have_virtual_index(table)); - - heap = mem_heap_create(128); - - q_proc.node.sel = sel_node_create(heap); - - thr = pars_complete_graph_for_exec(q_proc.node.sel, trx, heap, NULL); - - q_proc.grph.sel = static_cast(que_node_get_parent(thr)); - q_proc.grph.sel->state = QUE_FORK_ACTIVE; - - trx->op_info = "setting table lock"; - - ut_a(ib_lck_mode == IB_LOCK_IS || ib_lck_mode == IB_LOCK_IX); - err = static_cast( - lock_table(0, table, (enum lock_mode) ib_lck_mode, thr)); - - trx->error_state = err; - - mem_heap_free(heap); - - return(err); -} - -/*****************************************************************//** -Unlock an InnoDB table. -@return DB_SUCCESS or error code */ -ib_err_t -ib_cursor_unlock( -/*=============*/ - ib_crsr_t ib_crsr) /*!< in/out: InnoDB cursor */ -{ - ib_err_t err = DB_SUCCESS; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - - if (prebuilt->trx->mysql_n_tables_locked > 0) { - --prebuilt->trx->mysql_n_tables_locked; - } else { - err = DB_ERROR; - } - - return(err); -} - -/*****************************************************************//** -Set the Lock mode of the cursor. -@return DB_SUCCESS or error code */ -ib_err_t -ib_cursor_set_lock_mode( -/*====================*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor */ - ib_lck_mode_t ib_lck_mode) /*!< in: InnoDB lock mode */ -{ - ib_err_t err = DB_SUCCESS; - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - - ut_a(ib_lck_mode <= static_cast(LOCK_NUM)); - - if (ib_lck_mode == IB_LOCK_X) { - err = ib_cursor_lock(ib_crsr, IB_LOCK_IX); - } else if (ib_lck_mode == IB_LOCK_S) { - err = ib_cursor_lock(ib_crsr, IB_LOCK_IS); - } - - if (err == DB_SUCCESS) { - prebuilt->select_lock_type = (lock_mode) ib_lck_mode; - ut_a(trx_is_started(prebuilt->trx)); - } - - return(err); -} - -/*****************************************************************//** -Set need to access clustered index record. */ -void -ib_cursor_set_cluster_access( -/*=========================*/ - ib_crsr_t ib_crsr) /*!< in/out: InnoDB cursor */ -{ - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - - prebuilt->need_to_access_clustered = TRUE; -} - -/*****************************************************************//** -Inform the cursor that it's the start of an SQL statement. */ -void -ib_cursor_stmt_begin( -/*=================*/ - ib_crsr_t ib_crsr) /*!< in: cursor */ -{ - ib_cursor_t* cursor = (ib_cursor_t*) ib_crsr; - - cursor->prebuilt->sql_stat_start = TRUE; -} - -/*****************************************************************//** -Write a double value to a column. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_write_double( -/*==================*/ - ib_tpl_t ib_tpl, /*!< in/out: tuple to write to */ - int col_no, /*!< in: column number */ - double val) /*!< in: value to write */ -{ - const dfield_t* dfield; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - - dfield = ib_col_get_dfield(tuple, col_no); - - if (dtype_get_mtype(dfield_get_type(dfield)) == DATA_DOUBLE) { - return(ib_col_set_value(ib_tpl, col_no, - &val, sizeof(val), true)); - } else { - return(DB_DATA_MISMATCH); - } -} - -/*************************************************************//** -Read a double column value from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_double( -/*=================*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t col_no, /*!< in: column number */ - double* dval) /*!< out: double value */ -{ - ib_err_t err; - const dfield_t* dfield; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - - dfield = ib_col_get_dfield(tuple, col_no); - - if (dtype_get_mtype(dfield_get_type(dfield)) == DATA_DOUBLE) { - ib_col_copy_value_low(ib_tpl, col_no, dval, sizeof(*dval)); - err = DB_SUCCESS; - } else { - err = DB_DATA_MISMATCH; - } - - return(err); -} - -/*****************************************************************//** -Write a float value to a column. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_write_float( -/*=================*/ - ib_tpl_t ib_tpl, /*!< in/out: tuple to write to */ - int col_no, /*!< in: column number */ - float val) /*!< in: value to write */ -{ - const dfield_t* dfield; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - - dfield = ib_col_get_dfield(tuple, col_no); - - if (dtype_get_mtype(dfield_get_type(dfield)) == DATA_FLOAT) { - return(ib_col_set_value(ib_tpl, col_no, - &val, sizeof(val), true)); - } else { - return(DB_DATA_MISMATCH); - } -} - -/*************************************************************//** -Read a float value from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_float( -/*================*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t col_no, /*!< in: column number */ - float* fval) /*!< out: float value */ -{ - ib_err_t err; - const dfield_t* dfield; - ib_tuple_t* tuple = (ib_tuple_t*) ib_tpl; - - dfield = ib_col_get_dfield(tuple, col_no); - - if (dtype_get_mtype(dfield_get_type(dfield)) == DATA_FLOAT) { - ib_col_copy_value_low(ib_tpl, col_no, fval, sizeof(*fval)); - err = DB_SUCCESS; - } else { - err = DB_DATA_MISMATCH; - } - - return(err); -} - -/*****************************************************************//** -Truncate a table. The cursor handle will be closed and set to NULL -on success. -@return DB_SUCCESS or error code */ -ib_err_t -ib_cursor_truncate( -/*===============*/ - ib_crsr_t* ib_crsr, /*!< in/out: cursor for table - to truncate */ - ib_id_u64_t* table_id) /*!< out: new table id */ -{ - ib_err_t err; - ib_cursor_t* cursor = *(ib_cursor_t**) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - - *table_id = 0; - - err = ib_cursor_lock(*ib_crsr, IB_LOCK_X); - - if (err == DB_SUCCESS) { - trx_t* trx; - dict_table_t* table = prebuilt->table; - - /* We are going to free the cursor and the prebuilt. Store - the transaction handle locally. */ - trx = prebuilt->trx; - err = ib_cursor_close(*ib_crsr); - ut_a(err == DB_SUCCESS); - - *ib_crsr = NULL; - - /* A temp go around for assertion in trx_start_for_ddl_low - we already start the trx */ - if (trx->state == TRX_STATE_ACTIVE) { -#ifdef UNIV_DEBUG - trx->start_file = 0; -#endif /* UNIV_DEBUG */ - trx->dict_operation = TRX_DICT_OP_TABLE; - } - - /* This function currently commits the transaction - on success. */ - err = static_cast( - row_truncate_table_for_mysql(table, trx)); - - if (err == DB_SUCCESS) { - *table_id = (table->id); - } - } - - return(err); -} - -/*****************************************************************//** -Truncate a table. -@return DB_SUCCESS or error code */ -ib_err_t -ib_table_truncate( -/*==============*/ - const char* table_name, /*!< in: table name */ - ib_id_u64_t* table_id) /*!< out: new table id */ -{ - ib_err_t err; - dict_table_t* table; - ib_err_t trunc_err; - ib_trx_t ib_trx = NULL; - ib_crsr_t ib_crsr = NULL; - ib_ulint_t memcached_sync = 0; - - ib_trx = ib_trx_begin(IB_TRX_SERIALIZABLE, true, false); - - dict_mutex_enter_for_mysql(); - - table = dict_table_open_on_name(table_name, TRUE, FALSE, - DICT_ERR_IGNORE_NONE); - - if (table != NULL && dict_table_get_first_index(table)) { - err = ib_create_cursor_with_index_id(&ib_crsr, table, 0, - (trx_t*) ib_trx); - } else { - err = DB_TABLE_NOT_FOUND; - } - - /* Remember the memcached_sync_count and set it to 0, so the - truncate can be executed. */ - if (table != NULL && err == DB_SUCCESS) { - memcached_sync = static_cast( - table->memcached_sync_count); - table->memcached_sync_count = 0; - } - - dict_mutex_exit_for_mysql(); - - if (err == DB_SUCCESS) { - trunc_err = ib_cursor_truncate(&ib_crsr, table_id); - ut_a(err == DB_SUCCESS); - } else { - trunc_err = err; - } - - if (ib_crsr != NULL) { - err = ib_cursor_close(ib_crsr); - ut_a(err == DB_SUCCESS); - } - - if (trunc_err == DB_SUCCESS) { - ut_a(!trx_is_started(static_cast(ib_trx))); - } else { - err = ib_trx_rollback(ib_trx); - ut_a(err == DB_SUCCESS); - } - - err = ib_trx_release(ib_trx); - ut_a(err == DB_SUCCESS); - - /* Set the memcached_sync_count back. */ - if (table != NULL && memcached_sync != 0) { - dict_mutex_enter_for_mysql(); - - table->memcached_sync_count = memcached_sync; - - dict_mutex_exit_for_mysql(); - } - - return(trunc_err); -} - -/*****************************************************************//** -Return isolation configuration set by "innodb_api_trx_level" -@return trx isolation level*/ -ib_trx_level_t -ib_cfg_trx_level() -/*==============*/ -{ - return(static_cast(ib_trx_level_setting)); -} - -/*****************************************************************//** -Return configure value for background commit interval (in seconds) -@return background commit interval (in seconds) */ -ib_ulint_t -ib_cfg_bk_commit_interval() -/*=======================*/ -{ - return(static_cast(ib_bk_commit_interval)); -} - -/*****************************************************************//** -Get generic configure status -@return configure status*/ -int -ib_cfg_get_cfg() -/*============*/ -{ - int cfg_status; - - cfg_status = (ib_binlog_enabled) ? IB_CFG_BINLOG_ENABLED : 0; - - if (ib_mdl_enabled) { - cfg_status |= IB_CFG_MDL_ENABLED; - } - - if (ib_disable_row_lock) { - cfg_status |= IB_CFG_DISABLE_ROWLOCK; - } - - return(cfg_status); -} - -/*****************************************************************//** -Wrapper of ut_strerr() which converts an InnoDB error number to a -human readable text message. -@return string, describing the error */ -const char* -ib_ut_strerr( -/*=========*/ - ib_err_t num) /*!< in: error number */ -{ - return(ut_strerr(num)); -} - -/*****************************************************************//** -Increase/decrease the memcached sync count of table to sync memcached -DML with SQL DDLs. -@return DB_SUCCESS or error number */ -ib_err_t -ib_cursor_set_memcached_sync( -/*=========================*/ - ib_crsr_t ib_crsr, /*!< in: cursor */ - ib_bool_t flag) /*!< in: true for increase */ -{ - const ib_cursor_t* cursor = (const ib_cursor_t*) ib_crsr; - row_prebuilt_t* prebuilt = cursor->prebuilt; - dict_table_t* table = prebuilt->table; - ib_err_t err = DB_SUCCESS; - - if (table != NULL) { - /* If memcached_sync_count is -1, means table is - doing DDL, we just return error. */ - if (table->memcached_sync_count == DICT_TABLE_IN_DDL) { - return(DB_ERROR); - } - - if (flag) { - my_atomic_addlint(&table->memcached_sync_count, 1); - } else { - my_atomic_addlint(&table->memcached_sync_count, -1); - ut_a(table->memcached_sync_count >= 0); - } - } else { - err = DB_TABLE_NOT_FOUND; - } - - return(err); -} diff --git a/storage/innobase/api/api0misc.cc b/storage/innobase/api/api0misc.cc deleted file mode 100644 index b510f292a35..00000000000 --- a/storage/innobase/api/api0misc.cc +++ /dev/null @@ -1,132 +0,0 @@ -/***************************************************************************** - -Copyright (c) 2008, 2015, Oracle and/or its affiliates. All Rights Reserved. - -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 Street, Suite 500, Boston, MA 02110-1335 USA - -*****************************************************************************/ - -/**************************************************//** -@file api/api0misc.cc -InnoDB Native API - -2008-08-01 Created by Sunny Bains -3/20/2011 Jimmy Yang extracted from Embedded InnoDB -*******************************************************/ - -#include "ha_prototypes.h" - -#include "api0misc.h" -#include "trx0roll.h" -#include "srv0srv.h" -#include "dict0mem.h" -#include "dict0dict.h" -#include "pars0pars.h" -#include "row0sel.h" -#include "lock0lock.h" - -/*********************************************************************//** -Sets a lock on a table. -@return error code or DB_SUCCESS */ -dberr_t -ib_trx_lock_table_with_retry( -/*=========================*/ - trx_t* trx, /*!< in/out: transaction */ - dict_table_t* table, /*!< in: table to lock */ - enum lock_mode mode) /*!< in: LOCK_X or LOCK_S */ -{ - trx->op_info = "setting table lock"; - - return(lock_table_for_trx(table, trx, mode)); -} -/****************************************************************//** -Handles user errors and lock waits detected by the database engine. -@return TRUE if it was a lock wait and we should continue running -the query thread */ -ibool -ib_handle_errors( -/*=============*/ - dberr_t* new_err,/*!< out: possible new error encountered in - lock wait, or if no new error, the value - of trx->error_state at the entry of this - function */ - trx_t* trx, /*!< in: transaction */ - que_thr_t* thr, /*!< in: query thread */ - trx_savept_t* savept) /*!< in: savepoint or NULL */ -{ - dberr_t err; -handle_new_error: - err = trx->error_state; - - ut_a(err != DB_SUCCESS); - - trx->error_state = DB_SUCCESS; - - switch (err) { - case DB_LOCK_WAIT_TIMEOUT: - trx_rollback_for_mysql(trx); - break; - /* fall through */ - case DB_DUPLICATE_KEY: - case DB_FOREIGN_DUPLICATE_KEY: - case DB_TOO_BIG_RECORD: - case DB_ROW_IS_REFERENCED: - case DB_NO_REFERENCED_ROW: - case DB_CANNOT_ADD_CONSTRAINT: - case DB_TOO_MANY_CONCURRENT_TRXS: - case DB_OUT_OF_FILE_SPACE: - if (savept) { - /* Roll back the latest, possibly incomplete - insertion or update */ - - trx_rollback_to_savepoint(trx, savept); - } - break; - case DB_LOCK_WAIT: - lock_wait_suspend_thread(thr); - - if (trx->error_state != DB_SUCCESS) { - que_thr_stop_for_mysql(thr); - - goto handle_new_error; - } - - *new_err = err; - - return(TRUE); /* Operation needs to be retried. */ - - case DB_DEADLOCK: - case DB_LOCK_TABLE_FULL: - /* Roll back the whole transaction; this resolution was added - to version 3.23.43 */ - - trx_rollback_for_mysql(trx); - break; - - case DB_CORRUPTION: - case DB_FOREIGN_EXCEED_MAX_CASCADE: - break; - default: - ut_error; - } - - if (trx->error_state != DB_SUCCESS) { - *new_err = trx->error_state; - } else { - *new_err = err; - } - - trx->error_state = DB_SUCCESS; - - return(FALSE); -} diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 34ab49bfd0d..170a9d5b5a3 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -65,8 +65,6 @@ this program; if not, write to the Free Software Foundation, Inc., #include /* Include necessary InnoDB headers */ -#include "api0api.h" -#include "api0misc.h" #include "btr0btr.h" #include "btr0cur.h" #include "btr0bulk.h" @@ -643,74 +641,6 @@ static PSI_file_info all_innodb_files[] = { # endif /* UNIV_PFS_IO */ #endif /* HAVE_PSI_INTERFACE */ -/** Set up InnoDB API callback function array */ -ib_cb_t innodb_api_cb[] = { - (ib_cb_t) ib_cursor_open_table, - (ib_cb_t) ib_cursor_read_row, - (ib_cb_t) ib_cursor_insert_row, - (ib_cb_t) ib_cursor_delete_row, - (ib_cb_t) ib_cursor_update_row, - (ib_cb_t) ib_cursor_moveto, - (ib_cb_t) ib_cursor_first, - (ib_cb_t) ib_cursor_next, - (ib_cb_t) ib_cursor_set_match_mode, - (ib_cb_t) ib_sec_search_tuple_create, - (ib_cb_t) ib_clust_read_tuple_create, - (ib_cb_t) ib_tuple_delete, - (ib_cb_t) ib_tuple_read_u8, - (ib_cb_t) ib_tuple_read_u16, - (ib_cb_t) ib_tuple_read_u32, - (ib_cb_t) ib_tuple_read_u64, - (ib_cb_t) ib_tuple_read_i8, - (ib_cb_t) ib_tuple_read_i16, - (ib_cb_t) ib_tuple_read_i32, - (ib_cb_t) ib_tuple_read_i64, - (ib_cb_t) ib_tuple_get_n_cols, - (ib_cb_t) ib_col_set_value, - (ib_cb_t) ib_col_get_value, - (ib_cb_t) ib_col_get_meta, - (ib_cb_t) ib_trx_begin, - (ib_cb_t) ib_trx_commit, - (ib_cb_t) ib_trx_rollback, - (ib_cb_t) ib_trx_start, - (ib_cb_t) ib_trx_release, - (ib_cb_t) ib_cursor_lock, - (ib_cb_t) ib_cursor_close, - (ib_cb_t) ib_cursor_new_trx, - (ib_cb_t) ib_cursor_reset, - (ib_cb_t) ib_col_get_name, - (ib_cb_t) ib_table_truncate, - (ib_cb_t) ib_cursor_open_index_using_name, - (ib_cb_t) ib_cfg_get_cfg, - (ib_cb_t) ib_cursor_set_memcached_sync, - (ib_cb_t) ib_cursor_set_cluster_access, - (ib_cb_t) ib_cursor_commit_trx, - (ib_cb_t) ib_cfg_trx_level, - (ib_cb_t) ib_tuple_get_n_user_cols, - (ib_cb_t) ib_cursor_set_lock_mode, - (ib_cb_t) ib_get_idx_field_name, - (ib_cb_t) ib_trx_get_start_time, - (ib_cb_t) ib_cfg_bk_commit_interval, - (ib_cb_t) ib_ut_strerr, - (ib_cb_t) ib_cursor_stmt_begin, - (ib_cb_t) ib_trx_read_only, - (ib_cb_t) ib_is_virtual_table -}; - -/******************************************************************//** -Function used to loop a thread (for debugging/instrumentation -purpose). */ -void -srv_debug_loop(void) -/*================*/ -{ - ibool set = TRUE; - - while (set) { - os_thread_yield(); - } -} - /******************************************************************//** Debug function used to read a MBR data */ @@ -3917,11 +3847,6 @@ innobase_init( innobase_hton->tablefile_extensions = ha_innobase_exts; } -#ifdef MYSQL_INNODB_API_CB - /* JAN: TODO: MySQL 5.7 */ - innobase_hton->data = &innodb_api_cb; -#endif - innobase_hton->table_options = innodb_table_option_list; innodb_remember_check_sysvar_funcs(); @@ -21503,37 +21428,6 @@ static MYSQL_SYSVAR_BOOL(numa_interleave, srv_numa_interleave, NULL, NULL, FALSE); #endif /* HAVE_LIBNUMA */ -static MYSQL_SYSVAR_BOOL(api_enable_binlog, ib_binlog_enabled, - PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY, - "Enable binlog for applications direct access InnoDB through InnoDB APIs", - NULL, NULL, FALSE); - -static MYSQL_SYSVAR_BOOL(api_enable_mdl, ib_mdl_enabled, - PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY, - "Enable MDL for applications direct access InnoDB through InnoDB APIs", - NULL, NULL, FALSE); - -static MYSQL_SYSVAR_BOOL(api_disable_rowlock, ib_disable_row_lock, - PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY, - "Disable row lock when direct access InnoDB through InnoDB APIs", - NULL, NULL, FALSE); - -static MYSQL_SYSVAR_ULONG(api_trx_level, ib_trx_level_setting, - PLUGIN_VAR_OPCMDARG, - "InnoDB API transaction isolation level", - NULL, NULL, - 0, /* Default setting */ - 0, /* Minimum value */ - 3, 0); /* Maximum value */ - -static MYSQL_SYSVAR_ULONG(api_bk_commit_interval, ib_bk_commit_interval, - PLUGIN_VAR_OPCMDARG, - "Background commit interval in seconds", - NULL, NULL, - 5, /* Default setting */ - 1, /* Minimum value */ - 1024 * 1024 * 1024, 0); /* Maximum value */ - static MYSQL_SYSVAR_STR(change_buffering, innobase_change_buffering, PLUGIN_VAR_RQCMDARG, "Buffer changes to reduce random access:" @@ -21925,8 +21819,6 @@ static MYSQL_SYSVAR_BOOL(instrument_semaphores, srv_instrument_semaphores, 0, 0, FALSE); static struct st_mysql_sys_var* innobase_system_variables[]= { - MYSQL_SYSVAR(api_trx_level), - MYSQL_SYSVAR(api_bk_commit_interval), MYSQL_SYSVAR(autoextend_increment), MYSQL_SYSVAR(buffer_pool_size), MYSQL_SYSVAR(buffer_pool_chunk_size), @@ -21961,9 +21853,6 @@ static struct st_mysql_sys_var* innobase_system_variables[]= { MYSQL_SYSVAR(doublewrite), MYSQL_SYSVAR(use_atomic_writes), MYSQL_SYSVAR(use_fallocate), - MYSQL_SYSVAR(api_enable_binlog), - MYSQL_SYSVAR(api_enable_mdl), - MYSQL_SYSVAR(api_disable_rowlock), MYSQL_SYSVAR(fast_shutdown), MYSQL_SYSVAR(read_io_threads), MYSQL_SYSVAR(write_io_threads), diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 42c05efeba9..8e41a631e5d 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -7791,26 +7791,11 @@ commit_try_rebuild( user_table, rebuilt_table, ctx->tmp_name, trx); /* We must be still holding a table handle. */ - DBUG_ASSERT(user_table->get_ref_count() >= 1); + DBUG_ASSERT(user_table->get_ref_count() == 1); DBUG_EXECUTE_IF("ib_ddl_crash_after_rename", DBUG_SUICIDE();); DBUG_EXECUTE_IF("ib_rebuild_cannot_rename", error = DB_ERROR;); - if (user_table->get_ref_count() > 1) { - /* This should only occur when an innodb_memcached - connection with innodb_api_enable_mdl=off was started - before commit_inplace_alter_table() locked the data - dictionary. We must roll back the ALTER TABLE, because - we cannot drop a table while it is being used. */ - - /* Normally, n_ref_count must be 1, because purge - cannot be executing on this very table as we are - holding dict_operation_lock X-latch. */ - my_printf_error(ER_ILLEGAL_HA, "Cannot complete the operation " - "because table is referenced by another connection.", MYF(0)); - DBUG_RETURN(true); - } - switch (error) { case DB_SUCCESS: DBUG_RETURN(false); @@ -8814,15 +8799,7 @@ foreign_fail: } if (ctx0->num_to_drop_vcol || ctx0->num_to_add_vcol) { - - if (ctx0->old_table->get_ref_count() > 1) { - - row_mysql_unlock_data_dictionary(trx); - trx_free_for_mysql(trx); - my_printf_error(ER_ILLEGAL_HA, "Cannot complete the operation " - "because table is referenced by another connection.", MYF(0)); - DBUG_RETURN(true); - } + DBUG_ASSERT(ctx0->old_table->get_ref_count() == 1); trx_commit_for_mysql(m_prebuilt->trx); diff --git a/storage/innobase/include/api0api.h b/storage/innobase/include/api0api.h deleted file mode 100644 index ec02febee74..00000000000 --- a/storage/innobase/include/api0api.h +++ /dev/null @@ -1,1040 +0,0 @@ -/***************************************************************************** - -Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved. - -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 Street, Suite 500, Boston, MA 02110-1335 USA - -*****************************************************************************/ - -/**************************************************//** -@file include/api0api.h -InnoDB Native API - -2008-08-01 Created by Sunny Bains. -3/20/2011 Jimmy Yang extracted from Embedded InnoDB -*******************************************************/ - -#ifndef api0api_h -#define api0api_h - -#include "db0err.h" -#include - -#if defined(__GNUC__) -#define UNIV_NO_IGNORE MY_ATTRIBUTE ((warn_unused_result)) -#else -#define UNIV_NO_IGNORE -#endif /* __GNUC__ */ - -/* See comment about ib_bool_t as to why the two macros are unsigned long. */ -/** The boolean value of "true" used internally within InnoDB */ -#define IB_TRUE 0x1UL -/** The boolean value of "false" used internally within InnoDB */ -#define IB_FALSE 0x0UL - -/* Basic types used by the InnoDB API. */ -/** All InnoDB error codes are represented by ib_err_t */ -typedef enum dberr_t ib_err_t; -/** Representation of a byte within InnoDB */ -typedef unsigned char ib_byte_t; -/** Representation of an unsigned long int within InnoDB */ -#ifdef _WIN64 -typedef unsigned __int64 ib_ulint_t; -#else -typedef unsigned long int ib_ulint_t; -#endif /* _WIN64 */ - -/* We assume C99 support except when using VisualStudio. */ -#if !defined(_MSC_VER) -#include -#endif /* _MSC_VER */ - -/* Integer types used by the API. Microsft VS defines its own types -and we use the Microsoft types when building with Visual Studio. */ -#if defined(_MSC_VER) -/** A signed 8 bit integral type. */ -typedef __int8 ib_i8_t; -#else -/** A signed 8 bit integral type. */ -typedef int8_t ib_i8_t; -#endif - -#if defined(_MSC_VER) -/** An unsigned 8 bit integral type. */ -typedef unsigned __int8 ib_u8_t; -#else -/** An unsigned 8 bit integral type. */ -typedef uint8_t ib_u8_t; -#endif - -#if defined(_MSC_VER) -/** A signed 16 bit integral type. */ -typedef __int16 ib_i16_t; -#else -/** A signed 16 bit integral type. */ -typedef int16_t ib_i16_t; -#endif - -#if defined(_MSC_VER) -/** An unsigned 16 bit integral type. */ -typedef unsigned __int16 ib_u16_t; -#else -/** An unsigned 16 bit integral type. */ -typedef uint16_t ib_u16_t; -#endif - -#if defined(_MSC_VER) -/** A signed 32 bit integral type. */ -typedef __int32 ib_i32_t; -#else -/** A signed 32 bit integral type. */ -typedef int32_t ib_i32_t; -#endif - -#if defined(_MSC_VER) -/** An unsigned 32 bit integral type. */ -typedef unsigned __int32 ib_u32_t; -#else -/** An unsigned 32 bit integral type. */ -typedef uint32_t ib_u32_t; -#endif - -#if defined(_MSC_VER) -/** A signed 64 bit integral type. */ -typedef __int64 ib_i64_t; -#else -/** A signed 64 bit integral type. */ -typedef int64_t ib_i64_t; -#endif - -#if defined(_MSC_VER) -/** An unsigned 64 bit integral type. */ -typedef unsigned __int64 ib_u64_t; -#else -/** An unsigned 64 bit integral type. */ -typedef uint64_t ib_u64_t; -#endif - -typedef void* ib_opaque_t; -typedef ib_opaque_t ib_charset_t; -typedef ib_ulint_t ib_bool_t; -typedef ib_u64_t ib_id_u64_t; - -/** @enum ib_cfg_type_t Possible types for a configuration variable. */ -typedef enum { - IB_CFG_IBOOL, /*!< The configuration parameter is - of type ibool */ - - /* XXX Can we avoid having different types for ulint and ulong? - - On Win64 "unsigned long" is 32 bits - - ulong is always defined as "unsigned long" - - On Win64 ulint is defined as 64 bit integer - => On Win64 ulint != ulong. - If we typecast all ulong and ulint variables to the smaller type - ulong, then we will cut the range of the ulint variables. - This is not a problem for most ulint variables because their max - allowed values do not exceed 2^32-1 (e.g. log_groups is ulint - but its max allowed value is 10). BUT buffer_pool_size and - log_file_size allow up to 2^64-1. */ - - IB_CFG_ULINT, /*!< The configuration parameter is - of type ulint */ - - IB_CFG_ULONG, /*!< The configuration parameter is - of type ulong */ - - IB_CFG_TEXT, /*!< The configuration parameter is - of type char* */ - - IB_CFG_CB /*!< The configuration parameter is - a callback parameter */ -} ib_cfg_type_t; - -/** @enum ib_col_type_t column types that are supported. */ -typedef enum { - IB_VARCHAR = 1, /*!< Character varying length. The - column is not padded. */ - - IB_CHAR = 2, /*!< Fixed length character string. The - column is padded to the right. */ - - IB_BINARY = 3, /*!< Fixed length binary, similar to - IB_CHAR but the column is not padded - to the right. */ - - IB_VARBINARY = 4, /*!< Variable length binary */ - - IB_BLOB = 5, /*!< Binary large object, or - a TEXT type */ - - IB_INT = 6, /*!< Integer: can be any size - from 1 - 8 bytes. If the size is - 1, 2, 4 and 8 bytes then you can use - the typed read and write functions. For - other sizes you will need to use the - ib_col_get_value() function and do the - conversion yourself. */ - - IB_SYS = 8, /*!< System column, this column can - be one of DATA_TRX_ID, DATA_ROLL_PTR - or DATA_ROW_ID. */ - - IB_FLOAT = 9, /*!< C (float) floating point value. */ - - IB_DOUBLE = 10, /*!> C (double) floating point value. */ - - IB_DECIMAL = 11, /*!< Decimal stored as an ASCII - string */ - - IB_VARCHAR_ANYCHARSET = 12, /*!< Any charset, varying length */ - - IB_CHAR_ANYCHARSET = 13 /*!< Any charset, fixed length */ - -} ib_col_type_t; - -/** @enum ib_tbl_fmt_t InnoDB table format types */ -typedef enum { - IB_TBL_REDUNDANT, /*!< Redundant row format, the column - type and length is stored in the row.*/ - - IB_TBL_COMPACT, /*!< Compact row format, the column - type is not stored in the row. The - length is stored in the row but the - storage format uses a compact format - to store the length of the column data - and record data storage format also - uses less storage. */ - - IB_TBL_DYNAMIC, /*!< Compact row format. BLOB prefixes - are not stored in the clustered index */ - - IB_TBL_COMPRESSED /*!< Similar to dynamic format but - with pages compressed */ -} ib_tbl_fmt_t; - -/** @enum ib_col_attr_t InnoDB column attributes */ -typedef enum { - IB_COL_NONE = 0, /*!< No special attributes. */ - - IB_COL_NOT_NULL = 1, /*!< Column data can't be NULL. */ - - IB_COL_UNSIGNED = 2, /*!< Column is IB_INT and unsigned. */ - - IB_COL_NOT_USED = 4, /*!< Future use, reserved. */ - - IB_COL_CUSTOM1 = 8, /*!< Custom precision type, this is - a bit that is ignored by InnoDB and so - can be set and queried by users. */ - - IB_COL_CUSTOM2 = 16, /*!< Custom precision type, this is - a bit that is ignored by InnoDB and so - can be set and queried by users. */ - - IB_COL_CUSTOM3 = 32 /*!< Custom precision type, this is - a bit that is ignored by InnoDB and so - can be set and queried by users. */ -} ib_col_attr_t; - -/* Note: must match lock0types.h */ -/** @enum ib_lck_mode_t InnoDB lock modes. */ -typedef enum { - IB_LOCK_IS = 0, /*!< Intention shared, an intention - lock should be used to lock tables */ - - IB_LOCK_IX, /*!< Intention exclusive, an intention - lock should be used to lock tables */ - - IB_LOCK_S, /*!< Shared locks should be used to - lock rows */ - - IB_LOCK_X, /*!< Exclusive locks should be used to - lock rows*/ - - IB_LOCK_TABLE_X, /*!< exclusive table lock */ - - IB_LOCK_NONE, /*!< This is used internally to note - consistent read */ - - IB_LOCK_NUM = IB_LOCK_NONE /*!< number of lock modes */ -} ib_lck_mode_t; - -typedef enum { - IB_CLUSTERED = 1, /*!< clustered index */ - IB_UNIQUE = 2 /*!< unique index */ -} ib_index_type_t; - -/** @enum ib_srch_mode_t InnoDB cursor search modes for ib_cursor_moveto(). -Note: Values must match those found in page0cur.h */ -typedef enum { - IB_CUR_G = 1, /*!< If search key is not found then - position the cursor on the row that - is greater than the search key */ - - IB_CUR_GE = 2, /*!< If the search key not found then - position the cursor on the row that - is greater than or equal to the search - key */ - - IB_CUR_L = 3, /*!< If search key is not found then - position the cursor on the row that - is less than the search key */ - - IB_CUR_LE = 4 /*!< If search key is not found then - position the cursor on the row that - is less than or equal to the search - key */ -} ib_srch_mode_t; - -/** @enum ib_match_mode_t Various match modes used by ib_cursor_moveto() */ -typedef enum { - IB_CLOSEST_MATCH, /*!< Closest match possible */ - - IB_EXACT_MATCH, /*!< Search using a complete key - value */ - - IB_EXACT_PREFIX /*!< Search using a key prefix which - must match to rows: the prefix may - contain an incomplete field (the - last field in prefix may be just - a prefix of a fixed length column) */ -} ib_match_mode_t; - -/** @struct ib_col_meta_t InnoDB column meta data. */ -typedef struct { - ib_col_type_t type; /*!< Type of the column */ - - ib_col_attr_t attr; /*!< Column attributes */ - - ib_u32_t type_len; /*!< Length of type */ - - ib_u16_t client_type; /*!< 16 bits of data relevant only to - the client. InnoDB doesn't care */ - - ib_charset_t* charset; /*!< Column charset */ -} ib_col_meta_t; - -/* Note: Must be in sync with trx0trx.h */ -/** @enum ib_trx_level_t Transaction isolation levels */ -typedef enum { - IB_TRX_READ_UNCOMMITTED = 0, /*!< Dirty read: non-locking SELECTs are - performed so that we do not look at a - possible earlier version of a record; - thus they are not 'consistent' reads - under this isolation level; otherwise - like level 2 */ - - IB_TRX_READ_COMMITTED = 1, /*!< Somewhat Oracle-like isolation, - except that in range UPDATE and DELETE - we must block phantom rows with - next-key locks; SELECT ... FOR UPDATE - and ... LOCK IN SHARE MODE only lock - the index records, NOT the gaps before - them, and thus allow free inserting; - each consistent read reads its own - snapshot */ - - IB_TRX_REPEATABLE_READ = 2, /*!< All consistent reads in the same - trx read the same snapshot; full - next-key locking used in locking reads - to block insertions into gaps */ - - IB_TRX_SERIALIZABLE = 3 /*!< All plain SELECTs are converted to - LOCK IN SHARE MODE reads */ -} ib_trx_level_t; - -/** Generical InnoDB callback prototype. */ -typedef void (*ib_cb_t)(void); - -#define IB_CFG_BINLOG_ENABLED 0x1 -#define IB_CFG_MDL_ENABLED 0x2 -#define IB_CFG_DISABLE_ROWLOCK 0x4 - -/** The first argument to the InnoDB message logging function. By default -it's set to stderr. You should treat ib_msg_stream_t as a void*, since -it will probably change in the future. */ -typedef FILE* ib_msg_stream_t; - -/** All log messages are written to this function.It should have the same -behavior as fprintf(3). */ -typedef int (*ib_msg_log_t)(ib_msg_stream_t, const char*, ...); - -/* Note: This is to make it easy for API users to have type -checking for arguments to our functions. Making it ib_opaque_t -by itself will result in pointer decay resulting in subverting -of the compiler's type checking. */ - -/** InnoDB tuple handle. This handle can refer to either a cluster index -tuple or a secondary index tuple. There are two types of tuples for each -type of index, making a total of four types of tuple handles. There -is a tuple for reading the entire row contents and another for searching -on the index key. */ -typedef struct ib_tuple_t* ib_tpl_t; - -/** InnoDB transaction handle, all database operations need to be covered -by transactions. This handle represents a transaction. The handle can be -created with ib_trx_begin(), you commit your changes with ib_trx_commit() -and undo your changes using ib_trx_rollback(). If the InnoDB deadlock -monitor rolls back the transaction then you need to free the transaction -using the function ib_trx_release(). You can query the state of an InnoDB -transaction by calling ib_trx_state(). */ -typedef struct trx_t* ib_trx_t; - -/** InnoDB cursor handle */ -typedef struct ib_cursor_t* ib_crsr_t; - -/*************************************************************//** -This function is used to compare two data fields for which the data type -is such that we must use the client code to compare them. - -@param col_meta column meta data -@param p1 key -@oaram p1_len key length -@param p2 second key -@param p2_len second key length -@return 1, 0, -1, if a is greater, equal, less than b, respectively */ - -typedef int (*ib_client_cmp_t)( - const ib_col_meta_t* col_meta, - const ib_byte_t* p1, - ib_ulint_t p1_len, - const ib_byte_t* p2, - ib_ulint_t p2_len); - -/* This should be the same as univ.i */ -/** Represents SQL_NULL length */ -#define IB_SQL_NULL 0xFFFFFFFF - -/*****************************************************************//** -Start a transaction that's been rolled back. This special function -exists for the case when InnoDB's deadlock detector has rolledack -a transaction. While the transaction has been rolled back the handle -is still valid and can be reused by calling this function. If you -don't want to reuse the transaction handle then you can free the handle -by calling ib_trx_release(). -@return innobase txn handle */ -ib_err_t -ib_trx_start( -/*=========*/ - ib_trx_t ib_trx, /*!< in: transaction to restart */ - ib_trx_level_t ib_trx_level, /*!< in: trx isolation level */ - ib_bool_t read_write, /*!< in: true if read write - transaction */ - ib_bool_t auto_commit, /*!< in: auto commit after each - single DML */ - void* thd); /*!< in: THD */ - -/*****************************************************************//** -Begin a transaction. This will allocate a new transaction handle and -put the transaction in the active state. -@return innobase txn handle */ -ib_trx_t -ib_trx_begin( -/*=========*/ - ib_trx_level_t ib_trx_level, /*!< in: trx isolation level */ - ib_bool_t read_write, /*!< in: true if read write - transaction */ - ib_bool_t auto_commit); /*!< in: auto commit after each - single DML */ - -/*****************************************************************//** -Check if the transaction is read_only */ -ib_u32_t -ib_trx_read_only( -/*=============*/ - ib_trx_t ib_trx); /*!< in: trx handle */ - -/*****************************************************************//** -Release the resources of the transaction. If the transaction was -selected as a victim by InnoDB and rolled back then use this function -to free the transaction handle. -@return DB_SUCCESS or err code */ -ib_err_t -ib_trx_release( -/*===========*/ - ib_trx_t ib_trx); /*!< in: trx handle */ - -/*****************************************************************//** -Commit a transaction. This function will release the schema latches too. -It will also free the transaction handle. -@return DB_SUCCESS or err code */ -ib_err_t -ib_trx_commit( -/*==========*/ - ib_trx_t ib_trx); /*!< in: trx handle */ - -/*****************************************************************//** -Rollback a transaction. This function will release the schema latches too. -It will also free the transaction handle. -@return DB_SUCCESS or err code */ -ib_err_t -ib_trx_rollback( -/*============*/ - ib_trx_t ib_trx); /*!< in: trx handle */ - -/*****************************************************************//** -Open an InnoDB table and return a cursor handle to it. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_open_table_using_id( -/*==========================*/ - ib_id_u64_t table_id, /*!< in: table id of table to open */ - ib_trx_t ib_trx, /*!< in: Current transaction handle - can be NULL */ - ib_crsr_t* ib_crsr); /*!< out,own: InnoDB cursor */ - -/*****************************************************************//** -Open an InnoDB secondary index cursor and return a cursor handle to it. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_open_index_using_name( -/*============================*/ - ib_crsr_t ib_open_crsr, /*!< in: open/active cursor */ - const char* index_name, /*!< in: secondary index name */ - ib_crsr_t* ib_crsr, /*!< out,own: InnoDB index cursor */ - int* idx_type, /*!< out: index is cluster index */ - ib_id_u64_t* idx_id); /*!< out: index id */ - -/*****************************************************************//** -Open an InnoDB table by name and return a cursor handle to it. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_open_table( -/*=================*/ - const char* name, /*!< in: table name */ - ib_trx_t ib_trx, /*!< in: Current transaction handle - can be NULL */ - ib_crsr_t* ib_crsr); /*!< out,own: InnoDB cursor */ - -/*****************************************************************//** -Reset the cursor. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_reset( -/*============*/ - ib_crsr_t ib_crsr); /*!< in/out: InnoDB cursor */ - -/*****************************************************************//** -Close an InnoDB table and free the cursor. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_close( -/*============*/ - ib_crsr_t ib_crsr); /*!< in/out: InnoDB cursor */ - -/*****************************************************************//** -Close the table, decrement n_ref_count count. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_close_table( -/*==================*/ - ib_crsr_t ib_crsr); /*!< in/out: InnoDB cursor */ - -/*****************************************************************//** -update the cursor with new transactions and also reset the cursor -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_new_trx( -/*==============*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor */ - ib_trx_t ib_trx); /*!< in: transaction */ - -/*****************************************************************//** -Commit the transaction in a cursor -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_commit_trx( -/*=================*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor */ - ib_trx_t ib_trx); /*!< in: transaction */ - -/*****************************************************************//** -Insert a row to a table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_insert_row( -/*=================*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor instance */ - const ib_tpl_t ib_tpl); /*!< in: tuple to insert */ - -/*****************************************************************//** -Update a row in a table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_update_row( -/*=================*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - const ib_tpl_t ib_old_tpl, /*!< in: Old tuple in table */ - const ib_tpl_t ib_new_tpl); /*!< in: New tuple to update */ - -/*****************************************************************//** -Delete a row in a table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_delete_row( -/*=================*/ - ib_crsr_t ib_crsr); /*!< in: cursor instance */ - -/*****************************************************************//** -Read current row. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_read_row( -/*===============*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - ib_tpl_t ib_tpl, /*!< out: read cols into this tuple */ - void** row_buf, /*!< in/out: row buffer */ - ib_ulint_t* row_len); /*!< in/out: row buffer len */ - -/*****************************************************************//** -Move cursor to the first record in the table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_first( -/*============*/ - ib_crsr_t ib_crsr); /*!< in: InnoDB cursor instance */ - -/*****************************************************************//** -Move cursor to the next record in the table. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_next( -/*===========*/ - ib_crsr_t ib_crsr); /*!< in: InnoDB cursor instance */ - -/*****************************************************************//** -Search for key. -@return DB_SUCCESS or err code */ -ib_err_t -ib_cursor_moveto( -/*=============*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - ib_tpl_t ib_tpl, /*!< in: Key to search for */ - ib_srch_mode_t ib_srch_mode); /*!< in: search mode */ - -/*****************************************************************//** -Set the match mode for ib_cursor_move(). */ -void -ib_cursor_set_match_mode( -/*=====================*/ - ib_crsr_t ib_crsr, /*!< in: Cursor instance */ - ib_match_mode_t match_mode); /*!< in: ib_cursor_moveto match mode */ - -/*****************************************************************//** -Set a column of the tuple. Make a copy using the tuple's heap. -@return DB_SUCCESS or error code */ -ib_err_t -ib_col_set_value( -/*=============*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t col_no, /*!< in: column index in tuple */ - const void* src, /*!< in: data value */ - ib_ulint_t len, /*!< in: data value len */ - ib_bool_t need_cpy); /*!< in: if need memcpy */ - - -/*****************************************************************//** -Get the size of the data available in the column the tuple. -@return bytes avail or IB_SQL_NULL */ -ib_ulint_t -ib_col_get_len( -/*===========*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t i); /*!< in: column index in tuple */ - -/*****************************************************************//** -Copy a column value from the tuple. -@return bytes copied or IB_SQL_NULL */ -ib_ulint_t -ib_col_copy_value( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: tuple instance */ - ib_ulint_t i, /*!< in: column index in tuple */ - void* dst, /*!< out: copied data value */ - ib_ulint_t len); /*!< in: max data value len to copy */ - -/*************************************************************//** -Read a signed int 8 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_i8( -/*=============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_i8_t* ival); /*!< out: integer value */ - -/*************************************************************//** -Read an unsigned int 8 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_u8( -/*=============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_u8_t* ival); /*!< out: integer value */ - -/*************************************************************//** -Read a signed int 16 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_i16( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_i16_t* ival); /*!< out: integer value */ - -/*************************************************************//** -Read an unsigned int 16 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_u16( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_u16_t* ival); /*!< out: integer value */ - -/*************************************************************//** -Read a signed int 32 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_i32( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_i32_t* ival); /*!< out: integer value */ - -/*************************************************************//** -Read an unsigned int 32 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_u32( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_u32_t* ival); /*!< out: integer value */ - -/*************************************************************//** -Read a signed int 64 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_i64( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_i64_t* ival); /*!< out: integer value */ - -/*************************************************************//** -Read an unsigned int 64 bit column from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_u64( -/*==============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_u64_t* ival); /*!< out: integer value */ - -/*****************************************************************//** -Get a column value pointer from the tuple. -@return NULL or pointer to buffer */ -const void* -ib_col_get_value( -/*=============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i); /*!< in: column number */ - -/*****************************************************************//** -Get a column type, length and attributes from the tuple. -@return len of column data */ -ib_ulint_t -ib_col_get_meta( -/*============*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t i, /*!< in: column number */ - ib_col_meta_t* ib_col_meta); /*!< out: column meta data */ - -/*****************************************************************//** -"Clear" or reset an InnoDB tuple. We free the heap and recreate the tuple. -@return new tuple, or NULL */ -ib_tpl_t -ib_tuple_clear( -/*============*/ - ib_tpl_t ib_tpl); /*!< in: InnoDB tuple */ - -/*****************************************************************//** -Create a new cluster key search tuple and copy the contents of the -secondary index key tuple columns that refer to the cluster index record -to the cluster key. It does a deep copy of the column data. -@return DB_SUCCESS or error code */ -ib_err_t -ib_tuple_get_cluster_key( -/*=====================*/ - ib_crsr_t ib_crsr, /*!< in: secondary index cursor */ - ib_tpl_t* ib_dst_tpl, /*!< out,own: destination tuple */ - const ib_tpl_t ib_src_tpl); /*!< in: source tuple */ - -/*****************************************************************//** -Create an InnoDB tuple used for index/table search. -@return tuple for current index */ -ib_tpl_t -ib_sec_search_tuple_create( -/*=======================*/ - ib_crsr_t ib_crsr); /*!< in: Cursor instance */ - -/*****************************************************************//** -Create an InnoDB tuple used for index/table search. -@return tuple for current index */ -ib_tpl_t -ib_sec_read_tuple_create( -/*=====================*/ - ib_crsr_t ib_crsr); /*!< in: Cursor instance */ - -/*****************************************************************//** -Create an InnoDB tuple used for table key operations. -@return tuple for current table */ -ib_tpl_t -ib_clust_search_tuple_create( -/*=========================*/ - ib_crsr_t ib_crsr); /*!< in: Cursor instance */ - -/*****************************************************************//** -Create an InnoDB tuple for table row operations. -@return tuple for current table */ -ib_tpl_t -ib_clust_read_tuple_create( -/*=======================*/ - ib_crsr_t ib_crsr); /*!< in: Cursor instance */ - -/*****************************************************************//** -Return the number of user columns in the tuple definition. -@return number of user columns */ -ib_ulint_t -ib_tuple_get_n_user_cols( -/*=====================*/ - const ib_tpl_t ib_tpl); /*!< in: Tuple for current table */ - -/*****************************************************************//** -Return the number of columns in the tuple definition. -@return number of columns */ -ib_ulint_t -ib_tuple_get_n_cols( -/*================*/ - const ib_tpl_t ib_tpl); /*!< in: Tuple for current table */ - -/*****************************************************************//** -Destroy an InnoDB tuple. */ -void -ib_tuple_delete( -/*============*/ - ib_tpl_t ib_tpl); /*!< in,own: Tuple instance to delete */ - -/*****************************************************************//** -Truncate a table. The cursor handle will be closed and set to NULL -on success. -@return DB_SUCCESS or error code */ -ib_err_t -ib_cursor_truncate( -/*===============*/ - ib_crsr_t* ib_crsr, /*!< in/out: cursor for table - to truncate */ - ib_id_u64_t* table_id); /*!< out: new table id */ - -/*****************************************************************//** -Get a table id. -@return DB_SUCCESS if found */ -ib_err_t -ib_table_get_id( -/*============*/ - const char* table_name, /*!< in: table to find */ - ib_id_u64_t* table_id); /*!< out: table id if found */ - -/*****************************************************************//** -Check if cursor is positioned. -@return IB_TRUE if positioned */ -ib_bool_t -ib_cursor_is_positioned( -/*====================*/ - const ib_crsr_t ib_crsr); /*!< in: InnoDB cursor instance */ - -/*****************************************************************//** -Checks if the data dictionary is latched in exclusive mode by a -user transaction. -@return TRUE if exclusive latch */ -ib_bool_t -ib_schema_lock_is_exclusive( -/*========================*/ - const ib_trx_t ib_trx); /*!< in: transaction */ - -/*****************************************************************//** -Lock an InnoDB cursor/table. -@return DB_SUCCESS or error code */ -ib_err_t -ib_cursor_lock( -/*===========*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor */ - ib_lck_mode_t ib_lck_mode); /*!< in: InnoDB lock mode */ - -/*****************************************************************//** -Set the Lock an InnoDB table using the table id. -@return DB_SUCCESS or error code */ -ib_err_t -ib_table_lock( -/*===========*/ - ib_trx_t ib_trx, /*!< in/out: transaction */ - ib_id_u64_t table_id, /*!< in: table id */ - ib_lck_mode_t ib_lck_mode); /*!< in: InnoDB lock mode */ - -/*****************************************************************//** -Set the Lock mode of the cursor. -@return DB_SUCCESS or error code */ -ib_err_t -ib_cursor_set_lock_mode( -/*====================*/ - ib_crsr_t ib_crsr, /*!< in/out: InnoDB cursor */ - ib_lck_mode_t ib_lck_mode); /*!< in: InnoDB lock mode */ - -/*****************************************************************//** -Set need to access clustered index record flag. */ -void -ib_cursor_set_cluster_access( -/*=========================*/ - ib_crsr_t ib_crsr); /*!< in/out: InnoDB cursor */ - -/*****************************************************************//** -Inform the cursor that it's the start of an SQL statement. */ -void -ib_cursor_stmt_begin( -/*=================*/ - ib_crsr_t ib_crsr); /*!< in: cursor */ - -/*****************************************************************//** -Write a double value to a column. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_write_double( -/*==================*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - int col_no, /*!< in: column number */ - double val); /*!< in: value to write */ - -/*************************************************************//** -Read a double column value from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_double( -/*=================*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t col_no, /*!< in: column number */ - double* dval); /*!< out: double value */ - -/*****************************************************************//** -Write a float value to a column. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_write_float( -/*=================*/ - ib_tpl_t ib_tpl, /*!< in/out: tuple to write to */ - int col_no, /*!< in: column number */ - float val); /*!< in: value to write */ - -/*************************************************************//** -Read a float value from an InnoDB tuple. -@return DB_SUCCESS or error */ -ib_err_t -ib_tuple_read_float( -/*================*/ - ib_tpl_t ib_tpl, /*!< in: InnoDB tuple */ - ib_ulint_t col_no, /*!< in: column number */ - float* fval); /*!< out: float value */ - -/*****************************************************************//** -Get a column type, length and attributes from the tuple. -@return len of column data */ -const char* -ib_col_get_name( -/*============*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - ib_ulint_t i); /*!< in: column index in tuple */ - -/*****************************************************************//** -Get an index field name from the cursor. -@return name of the field */ -const char* -ib_get_idx_field_name( -/*==================*/ - ib_crsr_t ib_crsr, /*!< in: InnoDB cursor instance */ - ib_ulint_t i); /*!< in: column index in tuple */ - -/*****************************************************************//** -Truncate a table. -@return DB_SUCCESS or error code */ -ib_err_t -ib_table_truncate( -/*==============*/ - const char* table_name, /*!< in: table name */ - ib_id_u64_t* table_id); /*!< out: new table id */ - -/*****************************************************************//** -Get generic configure status -@return configure status*/ -int -ib_cfg_get_cfg(); -/*============*/ - -/*****************************************************************//** -Increase/decrease the memcached sync count of table to sync memcached -DML with SQL DDLs. -@return DB_SUCCESS or error number */ -ib_err_t -ib_cursor_set_memcached_sync( -/*=========================*/ - ib_crsr_t ib_crsr, /*!< in: cursor */ - ib_bool_t flag); /*!< in: true for increasing */ - -/*****************************************************************//** -Return isolation configuration set by "innodb_api_trx_level" -@return trx isolation level*/ -ib_trx_level_t -ib_cfg_trx_level(); -/*==============*/ - -/*****************************************************************//** -Return configure value for background commit interval (in seconds) -@return background commit interval (in seconds) */ -ib_ulint_t -ib_cfg_bk_commit_interval(); -/*=======================*/ - -/*****************************************************************//** -Get a trx start time. -@return trx start_time */ -ib_u64_t -ib_trx_get_start_time( -/*==================*/ - ib_trx_t ib_trx); /*!< in: transaction */ - -/*****************************************************************//** -Wrapper of ut_strerr() which converts an InnoDB error number to a -human readable text message. -@return string, describing the error */ -const char* -ib_ut_strerr( -/*=========*/ - ib_err_t num); /*!< in: error number */ - -/** Check the table whether it contains virtual columns. -@param[in] crsr InnoDB Cursor -@return true if table contains virtual column else false. */ -ib_bool_t -ib_is_virtual_table( - ib_crsr_t crsr); - -#endif /* api0api_h */ diff --git a/storage/innobase/include/api0misc.h b/storage/innobase/include/api0misc.h deleted file mode 100644 index 84ac3d622a9..00000000000 --- a/storage/innobase/include/api0misc.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************** - -Copyright (c) 2008, 2014, Oracle and/or its affiliates. All Rights Reserved. - -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 Street, Suite 500, Boston, MA 02110-1335 USA - -*****************************************************************************/ - -/**************************************************//** -@file include/api0misc.h -InnoDB Native API - -3/20/2011 Jimmy Yang extracted from Embedded InnoDB -2008 Created by Sunny Bains -*******************************************************/ - -#ifndef api0misc_h -#define api0misc_h - -#include "univ.i" -#include "os0file.h" -#include "que0que.h" -#include "trx0trx.h" - -/** Whether binlog is enabled for applications using InnoDB APIs */ -extern my_bool ib_binlog_enabled; - -/** Whether MySQL MDL is enabled for applications using InnoDB APIs */ -extern my_bool ib_mdl_enabled; - -/** Whether InnoDB row lock is disabled for applications using InnoDB APIs */ -extern my_bool ib_disable_row_lock; - -/** configure value for transaction isolation level */ -extern ulong ib_trx_level_setting; - -/** configure value for background commit interval (in seconds) */ -extern ulong ib_bk_commit_interval; - -/******************************************************************** -Handles user errors and lock waits detected by the database engine. -@return TRUE if it was a lock wait and we should continue running -the query thread */ -ibool -ib_handle_errors( -/*=============*/ - dberr_t* new_err, /*!< out: possible new error - encountered in lock wait, or if - no new error, the value of - trx->error_state at the entry of this - function */ - trx_t* trx, /*!< in: transaction */ - que_thr_t* thr, /*!< in: query thread */ - trx_savept_t* savept); /*!< in: savepoint or NULL */ - -/************************************************************************* -Sets a lock on a table. -@return error code or DB_SUCCESS */ -dberr_t -ib_trx_lock_table_with_retry( -/*=========================*/ - trx_t* trx, /*!< in/out: transaction */ - dict_table_t* table, /*!< in: table to lock */ - enum lock_mode mode); /*!< in: lock mode */ - -#endif /* api0misc_h */ diff --git a/storage/innobase/include/db0err.h b/storage/innobase/include/db0err.h index 972d99553b9..b0609991f61 100644 --- a/storage/innobase/include/db0err.h +++ b/storage/innobase/include/db0err.h @@ -173,16 +173,6 @@ enum dberr_t { DB_END_OF_INDEX, DB_NOT_FOUND, /*!< Generic error code for "Not found" type of errors */ - - /* The following are API only error codes. */ - DB_DATA_MISMATCH = 2000, /*!< Column update or read failed - because the types mismatch */ - - DB_SCHEMA_NOT_LOCKED /*!< If an API function expects the - schema to be locked in exclusive mode - and if it's not then that API function - will return this error code */ - }; #endif diff --git a/storage/innobase/include/dict0mem.h b/storage/innobase/include/dict0mem.h index ccfc46f7941..4a084c347d6 100644 --- a/storage/innobase/include/dict0mem.h +++ b/storage/innobase/include/dict0mem.h @@ -2,7 +2,7 @@ Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. -Copyright (c) 2013, 2016, MariaDB Corporation. +Copyright (c) 2013, 2017, MariaDB Corporation. 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 @@ -1322,11 +1322,6 @@ struct dict_vcol_templ_t { dict_vcol_templ_t() : vtempl(0), mysql_table_query_id(-1) {} }; -/* This flag is for sync SQL DDL and memcached DML. -if table->memcached_sync_count == DICT_TABLE_IN_DDL means there's DDL running on -the table, DML from memcached will be blocked. */ -#define DICT_TABLE_IN_DDL -1 - /** These are used when MySQL FRM and InnoDB data dictionary are in inconsistent state. */ typedef enum { @@ -1709,12 +1704,6 @@ struct dict_table_t { /* @} */ - /** Count of how many handles are opened to this table from memcached. - DDL on the table is NOT allowed until this count goes to zero. If - it is -1, then there's DDL on the table, DML from memcached will be - blocked. */ - lint memcached_sync_count; - /** FTS specific state variables. */ fts_t* fts; diff --git a/storage/innobase/include/ha_prototypes.h b/storage/innobase/include/ha_prototypes.h index 866853e6059..efcecf35117 100644 --- a/storage/innobase/include/ha_prototypes.h +++ b/storage/innobase/include/ha_prototypes.h @@ -42,7 +42,6 @@ struct fts_string_t; // JAN: TODO missing features: #undef MYSQL_57_SELECT_COUNT_OPTIMIZATION #undef MYSQL_FT_INIT_EXT -#undef MYSQL_INNODB_API_CB #undef MYSQL_INNODB_PARTITIONING #undef MYSQL_PFS #undef MYSQL_RENAME_INDEX diff --git a/storage/innobase/include/mach0data.h b/storage/innobase/include/mach0data.h index de05de55d77..3d6bccec718 100644 --- a/storage/innobase/include/mach0data.h +++ b/storage/innobase/include/mach0data.h @@ -353,17 +353,6 @@ mach_read_int_type( const byte* src, /*!< in: where to read from */ ulint len, /*!< in: length of src */ ibool unsigned_type); /*!< in: signed or unsigned flag */ -/***********************************************************//** -Convert integral type from host byte order to (big-endian) storage -byte order. */ -UNIV_INLINE -void -mach_write_int_type( -/*================*/ - byte* dest, /*!< in: where to write*/ - const byte* src, /*!< in: where to read from */ - ulint len, /*!< in: length of src */ - bool usign); /*!< in: signed or unsigned flag */ /************************************************************* Convert a ulonglong integer from host byte order to (big-endian) diff --git a/storage/innobase/include/mach0data.ic b/storage/innobase/include/mach0data.ic index 31520c47825..31cb873cdf6 100644 --- a/storage/innobase/include/mach0data.ic +++ b/storage/innobase/include/mach0data.ic @@ -870,31 +870,6 @@ mach_swap_byte_order( } } -/************************************************************* -Convert integral type from host byte order (big-endian) storage -byte order. */ -UNIV_INLINE -void -mach_write_int_type( -/*================*/ - byte* dest, /*!< in: where to write */ - const byte* src, /*!< in: where to read from */ - ulint len, /*!< in: length of src */ - bool usign) /*!< in: signed or unsigned flag */ -{ - ut_ad(len >= 1 && len <= 8); - -#ifdef WORDS_BIGENDIAN - memcpy(dest, src, len); -#else - mach_swap_byte_order(dest, src, len); -#endif /* WORDS_BIGENDIAN */ - - if (!usign) { - *dest ^= 0x80; - } -} - /************************************************************* Convert a ulonglong integer from host byte order to (big-endian) storage byte order. */ diff --git a/storage/innobase/include/row0mysql.h b/storage/innobase/include/row0mysql.h index 4c272d96a39..607f7c96389 100644 --- a/storage/innobase/include/row0mysql.h +++ b/storage/innobase/include/row0mysql.h @@ -864,10 +864,6 @@ struct row_prebuilt_t { ulint idx_cond_n_cols;/*!< Number of fields in idx_cond_cols. 0 if and only if idx_cond == NULL. */ /*----------------------*/ - unsigned innodb_api:1; /*!< whether this is a InnoDB API - query */ - const rec_t* innodb_api_rec; /*!< InnoDB API search result */ - /*----------------------*/ /*----------------------*/ rtr_info_t* rtr_info; /*!< R-tree Search Info */ diff --git a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0trx.h index 2159fc76548..fecd020613b 100644 --- a/storage/innobase/include/trx0trx.h +++ b/storage/innobase/include/trx0trx.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2016, MariaDB Corporation. All Rights Reserved. +Copyright (c) 2016, 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -1262,8 +1262,6 @@ struct trx_t { trx_mod_tables_t mod_tables; /*!< List of tables that were modified by this transaction */ /*------------------------------*/ - bool api_trx; /*!< trx started by InnoDB API */ - bool api_auto_commit;/*!< automatic commit */ bool read_write; /*!< if read and write operation */ /*------------------------------*/ diff --git a/storage/innobase/row/row0sel.cc b/storage/innobase/row/row0sel.cc index d8ab01cd16e..4cd7a443d79 100644 --- a/storage/innobase/row/row0sel.cc +++ b/storage/innobase/row/row0sel.cc @@ -3615,10 +3615,7 @@ row_sel_get_clust_rec_for_mysql( func_exit: *out_rec = clust_rec; - /* Store the current position if select_lock_type is not - LOCK_NONE or if we are scanning using InnoDB APIs */ - if (prebuilt->select_lock_type != LOCK_NONE - || prebuilt->innodb_api) { + if (prebuilt->select_lock_type != LOCK_NONE) { /* We may use the cursor in update or in unlock_row(): store its position */ @@ -4397,8 +4394,7 @@ row_search_mvcc( && dict_index_is_clust(index) && !prebuilt->templ_contains_blob && !prebuilt->used_in_HANDLER - && (prebuilt->mysql_row_len < UNIV_PAGE_SIZE / 8) - && !prebuilt->innodb_api) { + && (prebuilt->mysql_row_len < UNIV_PAGE_SIZE / 8)) { mode = PAGE_CUR_GE; @@ -5441,7 +5437,6 @@ requires_clust_rec: && !prebuilt->templ_contains_fixed_point && !prebuilt->clust_index_was_generated && !prebuilt->used_in_HANDLER - && !prebuilt->innodb_api && prebuilt->template_type != ROW_MYSQL_DUMMY_TEMPLATE && !prebuilt->in_fts_query) { @@ -5531,7 +5526,7 @@ requires_clust_rec: rec_offs_size(offsets)); mach_write_to_4(buf, rec_offs_extra_size(offsets) + 4); - } else if (!prebuilt->idx_cond && !prebuilt->innodb_api) { + } else if (!prebuilt->idx_cond) { /* The record was not yet converted to MySQL format. */ if (!row_sel_store_mysql_rec( buf, prebuilt, result_rec, vrow, @@ -5574,18 +5569,13 @@ idx_cond_failed: || !dict_index_is_clust(index) || direction != 0 || prebuilt->select_lock_type != LOCK_NONE - || prebuilt->used_in_HANDLER - || prebuilt->innodb_api) { + || prebuilt->used_in_HANDLER) { /* Inside an update always store the cursor position */ if (!spatial_search) { btr_pcur_store_position(pcur, &mtr); } - - if (prebuilt->innodb_api) { - prebuilt->innodb_api_rec = result_rec; - } } goto normal_return; diff --git a/storage/innobase/row/row0trunc.cc b/storage/innobase/row/row0trunc.cc index 1dea23bc657..b8002b439da 100644 --- a/storage/innobase/row/row0trunc.cc +++ b/storage/innobase/row/row0trunc.cc @@ -1224,12 +1224,6 @@ row_truncate_complete( { bool is_file_per_table = dict_table_is_file_per_table(table); - if (table->memcached_sync_count == DICT_TABLE_IN_DDL) { - /* We need to set the memcached sync back to 0, unblock - memcached operations. */ - table->memcached_sync_count = 0; - } - row_mysql_unlock_data_dictionary(trx); DEBUG_SYNC_C("ib_trunc_table_trunc_completing"); @@ -1828,23 +1822,6 @@ row_truncate_table_for_mysql( table, trx, fsp_flags, logger, err)); } - /* Check if memcached DML is running on this table. if is, we don't - allow truncate this table. */ - if (table->memcached_sync_count != 0) { - ib::error() << "Cannot truncate table " - << table->name - << " by DROP+CREATE because there are memcached" - " operations running on it."; - err = DB_ERROR; - trx_rollback_to_savepoint(trx, NULL); - return(row_truncate_complete( - table, trx, fsp_flags, logger, err)); - } else { - /* We need to set this counter to -1 for blocking - memcached operations. */ - table->memcached_sync_count = DICT_TABLE_IN_DDL; - } - /* Remove all locks except the table-level X lock. */ lock_remove_all_on_table(table, FALSE); trx->table_id = table->id; diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc index 94caf5bd4c0..57787cc15cb 100644 --- a/storage/innobase/trx/trx0trx.cc +++ b/storage/innobase/trx/trx0trx.cc @@ -462,10 +462,6 @@ trx_create_low() /* We just got trx from pool, it should be non locking */ ut_ad(trx->will_lock == 0); - trx->api_trx = false; - - trx->api_auto_commit = false; - trx->read_write = true; /* Background trx should not be forced to rollback, @@ -1359,14 +1355,11 @@ trx_start_low( ++trx->version; /* Check whether it is an AUTOCOMMIT SELECT */ - trx->auto_commit = (trx->api_trx && trx->api_auto_commit) - || thd_trx_is_auto_commit(trx->mysql_thd); + trx->auto_commit = thd_trx_is_auto_commit(trx->mysql_thd); - trx->read_only = - (trx->api_trx && !trx->read_write) + trx->read_only = srv_read_only_mode || (!trx->ddl && !trx->internal - && thd_trx_is_read_only(trx->mysql_thd)) - || srv_read_only_mode; + && thd_trx_is_read_only(trx->mysql_thd)); if (!trx->auto_commit) { ++trx->will_lock; diff --git a/storage/innobase/ut/ut0new.cc b/storage/innobase/ut/ut0new.cc index c2e3eb813af..89d2d6c89ea 100644 --- a/storage/innobase/ut/ut0new.cc +++ b/storage/innobase/ut/ut0new.cc @@ -97,7 +97,6 @@ ut_new_boot() #ifdef UNIV_PFS_MEMORY static const char* auto_event_names[] = { /* Keep this list alphabetically sorted. */ - "api0api", "btr0btr", "btr0bulk", "btr0cur", diff --git a/storage/innobase/ut/ut0ut.cc b/storage/innobase/ut/ut0ut.cc index f597147d50f..2b9e3115a03 100644 --- a/storage/innobase/ut/ut0ut.cc +++ b/storage/innobase/ut/ut0ut.cc @@ -727,10 +727,6 @@ ut_strerr( return("I/O error"); case DB_TABLE_IN_FK_CHECK: return("Table is being used in foreign key check"); - case DB_DATA_MISMATCH: - return("data mismatch"); - case DB_SCHEMA_NOT_LOCKED: - return("schema not locked"); case DB_NOT_FOUND: return("not found"); case DB_ONLINE_LOG_TOO_BIG: From 588eca31e3c60a6778e59e618717396eb5293ebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 13 Feb 2017 11:40:19 +0200 Subject: [PATCH 189/258] Post-fix for MDEV-12050 Remove unused InnoDB Memcached hooks Remove also the field trx_t::read_write that was only used by the Memcached hooks. --- storage/innobase/include/trx0trx.h | 3 --- storage/innobase/trx/trx0trx.cc | 2 -- 2 files changed, 5 deletions(-) diff --git a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0trx.h index fecd020613b..d652c2162dc 100644 --- a/storage/innobase/include/trx0trx.h +++ b/storage/innobase/include/trx0trx.h @@ -1261,9 +1261,6 @@ struct trx_t { transaction branch */ trx_mod_tables_t mod_tables; /*!< List of tables that were modified by this transaction */ - /*------------------------------*/ - bool read_write; /*!< if read and write operation */ - /*------------------------------*/ char* detailed_error; /*!< detailed error message for last error, or empty. */ diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc index 57787cc15cb..29478edc9e2 100644 --- a/storage/innobase/trx/trx0trx.cc +++ b/storage/innobase/trx/trx0trx.cc @@ -462,8 +462,6 @@ trx_create_low() /* We just got trx from pool, it should be non locking */ ut_ad(trx->will_lock == 0); - trx->read_write = true; - /* Background trx should not be forced to rollback, we will unset the flag for user trx. */ trx->in_innodb |= TRX_FORCE_ROLLBACK_DISABLE; From cd4dd2b62dda31a4ea1da99ca6732ecb7ee0d628 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 30 Dec 2016 13:03:47 +0100 Subject: [PATCH 190/258] MDEV-10201 Bad results for CREATE TABLE t1 (a INT DEFAULT b, b INT DEFAULT 4) Optionally do table->update_default_fields() even for INSERT that supposedly provides values for all column. Because these "values" might be DEFAULT, which would need table->update_default_fields() at the end. Also set Item_default_value::used_tables() from the default expression. Non-zero used_field() means that mysql_insert() will initialize all fields to their default values (with restore_record()) even if all columns are later provided with values. Because default expressions may refer to other columns and they must be initialized. --- mysql-test/r/default.result | 18 ++++++++++++++++-- mysql-test/t/default.test | 20 ++++++++++++++------ sql/field.cc | 11 +++++++---- sql/field.h | 12 ++++++------ sql/item.cc | 18 +++++++++++++----- sql/item.h | 2 +- sql/sql_base.cc | 7 +++++-- sql/sql_insert.cc | 1 + 8 files changed, 63 insertions(+), 26 deletions(-) diff --git a/mysql-test/r/default.result b/mysql-test/r/default.result index e3088e7ee85..014d4bee6c8 100644 --- a/mysql-test/r/default.result +++ b/mysql-test/r/default.result @@ -1553,7 +1553,7 @@ t1 CREATE TABLE `t1` ( `s` int(11) DEFAULT NULL, `b` timestamp(6) NOT NULL DEFAULT sysdate(6) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 VALUES (DEFAULT, SLEEP(0.1), DEFAULT); +INSERT INTO t1 VALUES (DEFAULT(a), SLEEP(0.1), DEFAULT(b)); SELECT b>a FROM t1; b>a 1 @@ -3316,7 +3316,6 @@ ERROR 42000: Invalid default value for 'c' EXECUTE stmt USING @a; ERROR 42000: Invalid default value for 'c' DEALLOCATE PREPARE stmt; -# end of 10.2 test set sql_mode=ansi_quotes; create table t1 (a int, b int default (a+1)); show create table t1; @@ -3349,3 +3348,18 @@ a b 30 31 drop table t1; set sql_mode=default; +create table t1 (a int default b, b int default 4, t text); +insert into t1 (b, t) values (5, '1 column is omitted'); +insert into t1 values (default, 5, '2 column gets DEFAULT, keyword'); +insert into t1 values (default(a), 5, '3 column gets DEFAULT(a), expression'); +insert into t1 values (default(a)+0, 5, '4 also expression DEFAULT(0)+0'); +insert into t1 values (b, 5, '5 the value of the DEFAULT(a), that is b'); +select * from t1 order by t; +a b t +5 5 1 column is omitted +5 5 2 column gets DEFAULT, keyword +4 5 3 column gets DEFAULT(a), expression +4 5 4 also expression DEFAULT(0)+0 +4 5 5 the value of the DEFAULT(a), that is b +drop table t1; +# end of 10.2 test diff --git a/mysql-test/t/default.test b/mysql-test/t/default.test index d75966cd2dc..c96f8ac239b 100644 --- a/mysql-test/t/default.test +++ b/mysql-test/t/default.test @@ -1099,7 +1099,7 @@ SET time_zone=DEFAULT, timestamp= DEFAULT; # SYSDATE is evaluated during get_date() rather than fix_fields. CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT SYSDATE(6), s INT, b TIMESTAMP(6) DEFAULT SYSDATE(6)); SHOW CREATE TABLE t1; -INSERT INTO t1 VALUES (DEFAULT, SLEEP(0.1), DEFAULT); +INSERT INTO t1 VALUES (DEFAULT(a), SLEEP(0.1), DEFAULT(b)); SELECT b>a FROM t1; DROP TABLE t1; @@ -2012,7 +2012,6 @@ INSERT INTO t1 VALUES (1),(2),(3); EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT * FROM t1 WHERE ?+a<=>?+a' USING DEFAULT,DEFAULT; DROP TABLE t1; - --echo # --echo # MDEV-11134 Assertion `fixed' failed in Item::const_charset_converter(THD*, CHARSET_INFO*, bool, const char*) --echo # @@ -2041,10 +2040,6 @@ EXECUTE stmt USING @a; EXECUTE stmt USING @a; DEALLOCATE PREPARE stmt; - - ---echo # end of 10.2 test - # # ANSI_QUOTES # @@ -2062,3 +2057,16 @@ select * from t1; drop table t1; set sql_mode=default; +# +# MDEV-10201 Bad results for CREATE TABLE t1 (a INT DEFAULT b, b INT DEFAULT 4) +# +create table t1 (a int default b, b int default 4, t text); +insert into t1 (b, t) values (5, '1 column is omitted'); +insert into t1 values (default, 5, '2 column gets DEFAULT, keyword'); +insert into t1 values (default(a), 5, '3 column gets DEFAULT(a), expression'); +insert into t1 values (default(a)+0, 5, '4 also expression DEFAULT(0)+0'); +insert into t1 values (b, 5, '5 the value of the DEFAULT(a), that is b'); +select * from t1 order by t; +drop table t1; + +--echo # end of 10.2 test diff --git a/sql/field.cc b/sql/field.cc index 23a8ecd965d..a458a42f282 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -5264,6 +5264,7 @@ int Field_timestamp::set_time() Mark the field as having an explicit default value. @param value if available, the value that the field is being set to + @returns whether the explicit default bit was set @note Fields that have an explicit default value should not be updated @@ -5279,13 +5280,14 @@ int Field_timestamp::set_time() This is how MySQL has worked since it's start. */ -void Field_timestamp::set_explicit_default(Item *value) +bool Field_timestamp::set_explicit_default(Item *value) { if (((value->type() == Item::DEFAULT_VALUE_ITEM && !((Item_default_value*)value)->arg) || (!maybe_null() && value->null_value))) - return; + return false; set_has_explicit_value(); + return true; } #ifdef NOT_USED @@ -10790,12 +10792,13 @@ key_map Field::get_possible_keys() analyzed to check if it really should count as a value. */ -void Field::set_explicit_default(Item *value) +bool Field::set_explicit_default(Item *value) { if (value->type() == Item::DEFAULT_VALUE_ITEM && !((Item_default_value*)value)->arg) - return; + return false; set_has_explicit_value(); + return true; } diff --git a/sql/field.h b/sql/field.h index f0c3b48cd6a..2dc5d91c126 100644 --- a/sql/field.h +++ b/sql/field.h @@ -954,7 +954,7 @@ public: { return bitmap_is_set(&table->has_value_set, field_index); } - virtual void set_explicit_default(Item *value); + virtual bool set_explicit_default(Item *value); /** Evaluates the @c UPDATE default function, if one exists, and stores the @@ -2379,9 +2379,9 @@ public: uint32 pack_length() const { return 4; } void sql_type(String &str) const; bool zero_pack() const { return 0; } - virtual int set_time(); - virtual void set_explicit_default(Item *value); - virtual int evaluate_update_default_function() + int set_time(); + bool set_explicit_default(Item *value); + int evaluate_update_default_function() { int res= 0; if (has_update_default_function()) @@ -2813,8 +2813,8 @@ public: void sql_type(String &str) const; bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate) { return Field_datetime::get_TIME(ltime, ptr, fuzzydate); } - virtual int set_time(); - virtual int evaluate_update_default_function() + int set_time(); + int evaluate_update_default_function() { int res= 0; if (has_update_default_function()) diff --git a/sql/item.cc b/sql/item.cc index 4ce0b318ed0..a2c59255b55 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -8834,15 +8834,23 @@ bool Item_default_value::send(Protocol *protocol, String *buffer) int Item_default_value::save_in_field(Field *field_arg, bool no_conversions) { if (arg) - calculate(); - else { - return field_arg->save_in_field_default_value(context->error_processor == - &view_error_processor); + calculate(); + return Item_field::save_in_field(field_arg, no_conversions); } - return Item_field::save_in_field(field_arg, no_conversions); + + if (field_arg->default_value && field_arg->default_value->flags) + return 0; // defaut fields will be set later, no need to do it twice + return field_arg->save_in_field_default_value(context->error_processor == + &view_error_processor); } +table_map Item_default_value::used_tables() const +{ + if (field && field->default_value && field->default_value->flags) + return field->default_value->expr->used_tables(); + return static_cast(0); +} /** This method like the walk method traverses the item tree, but at the diff --git a/sql/item.h b/sql/item.h index bdea0289df9..07f489a35a3 100644 --- a/sql/item.h +++ b/sql/item.h @@ -5185,7 +5185,7 @@ public: param->set_default(); return false; } - table_map used_tables() const { return (table_map)0L; } + table_map used_tables() const; Field *get_tmp_table_field() { return 0; } Item *get_tmp_table_item(THD *thd) { return this; } Item_field *field_for_view_update() { return 0; } diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 3758b3ba710..cdbef309527 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -8102,6 +8102,7 @@ fill_record(THD *thd, TABLE *table, Field **ptr, List &values, { List_iterator_fast v(values); List tbl_list; + bool all_fields_have_values= true; Item *value; Field *field; bool abort_on_warning_saved= thd->abort_on_warning; @@ -8154,9 +8155,11 @@ fill_record(THD *thd, TABLE *table, Field **ptr, List &values, else if (value->save_in_field(field, 0) < 0) goto err; - field->set_explicit_default(value); + all_fields_have_values &= field->set_explicit_default(value); } - /* There is no default fields to update, as all fields are updated */ + if (!all_fields_have_values && table->default_field && + table->update_default_fields(0, ignore_errors)) + goto err; /* Update virtual fields */ thd->abort_on_warning= FALSE; if (table->vfield && diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 1e9de5a039a..8e8f6c7a26f 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -991,6 +991,7 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list, share->default_values[share->null_bytes - 1]; } } + table->reset_default_fields(); if (fill_record_n_invoke_before_triggers(thd, table, table->field_to_fill(), *values, 0, TRG_EVENT_INSERT)) From cf003933785cbf88504bcf81001c776dabd64b15 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 3 Jan 2017 14:55:29 +0100 Subject: [PATCH 191/258] Race condition in DEFAULT() with expressions Item_default_value::calculate was updating table->s->default_values, but it is supposed to be read-only --- mysql-test/r/default_debug.result | 21 +++++++++++++++++++++ mysql-test/t/default_debug.test | 20 ++++++++++++++++++++ sql/item.cc | 22 ++++++++++++++-------- 3 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 mysql-test/r/default_debug.result create mode 100644 mysql-test/t/default_debug.test diff --git a/mysql-test/r/default_debug.result b/mysql-test/r/default_debug.result new file mode 100644 index 00000000000..3f5b0b7896c --- /dev/null +++ b/mysql-test/r/default_debug.result @@ -0,0 +1,21 @@ +create table t1 (a int, b int default (a+1)); +insert t1 values (1,10), (2,20), (3,30); +connect con1, localhost, root; +select a,b,default(b) from t1; +a b default(b) +1 10 2 +2 20 3 +3 30 4 +set debug_sync='after_Item_default_value_calculate WAIT_FOR go'; +select a,b,default(b) from t1; +connection default; +set debug_sync='ha_write_row_start SIGNAL go'; +insert t1 values (100,default(b)); +connection con1; +a b default(b) +1 10 2 +2 20 3 +3 30 4 +connection default; +drop table t1; +set debug_sync='RESET'; diff --git a/mysql-test/t/default_debug.test b/mysql-test/t/default_debug.test new file mode 100644 index 00000000000..847966bfa81 --- /dev/null +++ b/mysql-test/t/default_debug.test @@ -0,0 +1,20 @@ +# +# Race condition in DEFAULT() with expressions +# + +source include/have_debug_sync.inc; + +create table t1 (a int, b int default (a+1)); +insert t1 values (1,10), (2,20), (3,30); +connect (con1, localhost, root); +select a,b,default(b) from t1; +set debug_sync='after_Item_default_value_calculate WAIT_FOR go'; +send select a,b,default(b) from t1; +connection default; +set debug_sync='ha_write_row_start SIGNAL go'; +insert t1 values (100,default(b)); +connection con1; +reap; +connection default; +drop table t1; +set debug_sync='RESET'; diff --git a/sql/item.cc b/sql/item.cc index a2c59255b55..3b3e878f4d3 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -8758,17 +8758,22 @@ bool Item_default_value::fix_fields(THD *thd, Item **items) goto error; memcpy((void *)def_field, (void *)field_arg->field, field_arg->field->size_of()); - def_field->move_field_offset((my_ptrdiff_t) - (def_field->table->s->default_values - - def_field->table->record[0])); - set_field(def_field); - if (field->default_value) + IF_DBUG(def_field->is_stat_field=1,); // a hack to fool ASSERT_COLUMN_MARKED_FOR_WRITE_OR_COMPUTED + if (def_field->default_value && def_field->default_value->flags) { - fix_session_vcol_expr_for_read(thd, field, field->default_value); + uchar *newptr= (uchar*) thd->alloc(1+def_field->pack_length()); + if (!newptr) + goto error; + fix_session_vcol_expr_for_read(thd, def_field, def_field->default_value); if (thd->mark_used_columns != MARK_COLUMNS_NONE) - field->default_value->expr->walk(&Item::register_field_in_read_map, 1, 0); - IF_DBUG(def_field->is_stat_field=1,); // a hack to fool ASSERT_COLUMN_MARKED_FOR_WRITE_OR_COMPUTED + def_field->default_value->expr->walk(&Item::register_field_in_read_map, 1, 0); + def_field->move_field(newptr+1, def_field->maybe_null() ? newptr : 0, 1); } + else + def_field->move_field_offset((my_ptrdiff_t) + (def_field->table->s->default_values - + def_field->table->record[0])); + set_field(def_field); return FALSE; error: @@ -8793,6 +8798,7 @@ void Item_default_value::calculate() { if (field->default_value) field->set_default(); + DEBUG_SYNC(field->table->in_use, "after_Item_default_value_calculate"); } String *Item_default_value::val_str(String *str) From eda2ebefba43bde1b1881688576e865f9ba9617c Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 18 Jan 2017 20:40:15 +0100 Subject: [PATCH 192/258] MDEV-11784 View is created with invalid definition which causes ERROR 1241 (21000): Operand should contain 1 column(s) set the correct print precedence for IN subqueries --- mysql-test/r/view.result | 15 +++++++++++---- mysql-test/t/view.test | 19 +++++++++++-------- sql/item_subselect.h | 22 ++++++++++------------ 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index 39b4410b9eb..7aa1ad3c044 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -1,7 +1,3 @@ -drop table if exists t1,t2,t3,t4,t5,t6,t9,`t1a``b`,v1,v2,v3,v4,v5,v6; -drop view if exists t1,t2,t3,t4,t5,t6,t9,`t1a``b`,v1,v2,v3,v4,v5,v6; -drop database if exists mysqltest; -use test; SET @save_optimizer_switch=@@optimizer_switch; SET optimizer_switch='outer_join_with_cache=off'; create view v1 (c,d) as select a,b from t1; @@ -6325,6 +6321,17 @@ INSERT INTO v (f1, f3) VALUES (1,1), (2,2); ERROR HY000: Can not modify more than one base table through a join view 'test.v' drop view v; drop tables t1,t2,t3; +create table t1 (i int, j int); +insert t1 values (1,1),(2,2); +create view v1 as select (2, 3) not in (select i, j from t1); +select * from v1; +(2, 3) not in (select i, j from t1) +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 !((2,3) in (select `t1`.`i`,`t1`.`j` from `t1`)) AS `(2, 3) not in (select i, j from t1)` latin1 latin1_swedish_ci +drop view v1; +drop table t1; # # End of 10.2 tests # diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index fbe307be5ba..229df8b893f 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -1,11 +1,3 @@ - ---disable_warnings -drop table if exists t1,t2,t3,t4,t5,t6,t9,`t1a``b`,v1,v2,v3,v4,v5,v6; -drop view if exists t1,t2,t3,t4,t5,t6,t9,`t1a``b`,v1,v2,v3,v4,v5,v6; -drop database if exists mysqltest; ---enable_warnings -use test; - # Save the initial number of concurrent sessions. --source include/count_sessions.inc @@ -6066,6 +6058,17 @@ INSERT INTO v (f1, f3) VALUES (1,1), (2,2); drop view v; drop tables t1,t2,t3; +# +# MDEV-11784 View is created with invalid definition which causes ERROR 1241 (21000): Operand should contain 1 column(s) +# +create table t1 (i int, j int); +insert t1 values (1,1),(2,2); +create view v1 as select (2, 3) not in (select i, j from t1); +select * from v1; +show create view v1; +drop view v1; +drop table t1; + --echo # --echo # End of 10.2 tests --echo # diff --git a/sql/item_subselect.h b/sql/item_subselect.h index 823dbc6c281..805e8958246 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -399,7 +399,7 @@ public: bool val_bool(); bool fix_fields(THD *thd, Item **ref); void fix_length_and_dec(); - virtual void print(String *str, enum_query_type query_type); + void print(String *str, enum_query_type query_type); bool select_transformer(JOIN *join); void top_level_item() { abort_on_null=1; } inline bool is_top_level_item() { return abort_on_null; } @@ -616,7 +616,8 @@ public: void update_null_value () { (void) val_bool(); } bool val_bool(); bool test_limit(st_select_lex_unit *unit); - virtual void print(String *str, enum_query_type query_type); + void print(String *str, enum_query_type query_type); + enum precedence precedence() const { return CMP_PRECEDENCE; } bool fix_fields(THD *thd, Item **ref); void fix_length_and_dec(); void fix_after_pullout(st_select_lex *new_parent, Item **ref); @@ -740,7 +741,7 @@ public: subs_type substype() { return all?ALL_SUBS:ANY_SUBS; } bool select_transformer(JOIN *join); void create_comp_func(bool invert) { func= func_creator(invert); } - virtual void print(String *str, enum_query_type query_type); + void print(String *str, enum_query_type query_type); bool is_maxmin_applicable(JOIN *join); bool transform_into_max_min(JOIN *join); void no_rows_in_result(); @@ -849,7 +850,7 @@ public: uint8 uncacheable(); void exclude(); table_map upper_select_const_tables(); - virtual void print (String *str, enum_query_type query_type); + void print (String *str, enum_query_type query_type); bool change_result(Item_subselect *si, select_result_interceptor *result, bool temp); @@ -883,7 +884,7 @@ public: uint8 uncacheable(); void exclude(); table_map upper_select_const_tables(); - virtual void print (String *str, enum_query_type query_type); + void print (String *str, enum_query_type query_type); bool change_result(Item_subselect *si, select_result_interceptor *result, bool temp= FALSE); @@ -940,7 +941,7 @@ public: uint8 uncacheable() { return UNCACHEABLE_DEPENDENT_INJECTED; } void exclude(); table_map upper_select_const_tables() { return 0; } - virtual void print (String *str, enum_query_type query_type); + void print (String *str, enum_query_type query_type); bool change_result(Item_subselect *si, select_result_interceptor *result, bool temp= FALSE); @@ -998,7 +999,7 @@ public: having(having_arg) {} int exec(); - virtual void print (String *str, enum_query_type query_type); + void print (String *str, enum_query_type query_type); virtual enum_engine_type engine_type() { return INDEXSUBQUERY_ENGINE; } }; @@ -1073,11 +1074,8 @@ public: void cleanup(); int prepare(THD *); int exec(); - virtual void print(String *str, enum_query_type query_type); - uint cols() - { - return materialize_engine->cols(); - } + void print(String *str, enum_query_type query_type); + uint cols() { return materialize_engine->cols(); } uint8 uncacheable() { return materialize_engine->uncacheable(); } table_map upper_select_const_tables() { return 0; } bool no_rows() { return !tmp_table->file->stats.records; } From 4cf4b61b24d4331aa930d0b36c36763b7d9ca0cd Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 23 Jan 2017 12:26:29 +0100 Subject: [PATCH 193/258] oqgraph: remove redundant update_virtual_fields() calls --- storage/oqgraph/oqgraph_thunk.cc | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/storage/oqgraph/oqgraph_thunk.cc b/storage/oqgraph/oqgraph_thunk.cc index 128e6191d98..19a709a1c59 100644 --- a/storage/oqgraph/oqgraph_thunk.cc +++ b/storage/oqgraph/oqgraph_thunk.cc @@ -193,9 +193,6 @@ int oqgraph3::cursor::restore_position() return rc; } - if (table.vfield) - table.update_virtual_fields(VCOL_UPDATE_FOR_READ); - table.file->position(table.record[0]); while (memcmp(table.file->ref, _position.data(), table.file->ref_length)) @@ -206,9 +203,6 @@ int oqgraph3::cursor::restore_position() return rc; } - if (table.vfield) - table.update_virtual_fields(VCOL_UPDATE_FOR_READ); - if ((_origid && vertex_id(_graph->_source->val_int()) != *_origid) || (_destid && vertex_id(_graph->_target->val_int()) != *_destid)) { @@ -230,9 +224,6 @@ int oqgraph3::cursor::restore_position() table.file->ha_rnd_end(); return rc; } - - if (table.vfield) - table.update_virtual_fields(VCOL_UPDATE_FOR_READ); } _graph->_cursor= this; @@ -310,8 +301,6 @@ int oqgraph3::cursor::seek_next() return clear_position(rc); } - if (table.vfield) - table.update_virtual_fields(VCOL_UPDATE_FOR_READ); _graph->_stale= true; if ((_origid && vertex_id(_graph->_source->val_int()) != *_origid) || @@ -345,8 +334,6 @@ int oqgraph3::cursor::seek_prev() return clear_position(rc); } - if (table.vfield) - table.update_virtual_fields(VCOL_UPDATE_FOR_READ); _graph->_stale= true; if ((_origid && vertex_id(_graph->_source->val_int()) != *_origid) || @@ -507,9 +494,6 @@ int oqgraph3::cursor::seek_to( return clear_position(rc); } - if (table.vfield) - table.update_virtual_fields(VCOL_UPDATE_FOR_READ); - if ((_origid && vertex_id(_graph->_source->val_int()) != *_origid) || (_destid && vertex_id(_graph->_target->val_int()) != *_destid)) { From 29ed440d4457a3cc2ab8c22674eb5dc8f0ac0ce6 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 22 Jan 2017 17:14:36 +0100 Subject: [PATCH 194/258] MDEV-11836 vcol.vcol_keys_myisam fails in buildbot and outside move TABLE::key_read into handler. Because in index merge and DS-MRR there can be many handlers per table, and some of them use key read while others don't. "keyread" is really per handler, not per TABLE property. --- mysql-test/suite/vcol/disabled.def | 1 - sql/handler.cc | 20 +++++----- sql/handler.h | 18 ++++++++- sql/opt_range.cc | 41 ++++++-------------- sql/opt_range.h | 1 - sql/opt_sum.cc | 4 +- sql/sql_base.cc | 11 +++--- sql/sql_delete.cc | 2 +- sql/sql_insert.cc | 5 ++- sql/sql_select.cc | 47 ++++++++++------------- sql/sql_statistics.cc | 5 +-- sql/sql_table.cc | 2 +- sql/sql_update.cc | 9 +++-- sql/table.cc | 14 +++---- sql/table.h | 26 +------------ storage/innobase/handler/handler0alter.cc | 2 +- storage/myisam/ha_myisam.cc | 4 +- 17 files changed, 91 insertions(+), 121 deletions(-) diff --git a/mysql-test/suite/vcol/disabled.def b/mysql-test/suite/vcol/disabled.def index 86480ca3a4c..e69de29bb2d 100644 --- a/mysql-test/suite/vcol/disabled.def +++ b/mysql-test/suite/vcol/disabled.def @@ -1 +0,0 @@ -vcol_keys_myisam : MDEV-11836 diff --git a/sql/handler.cc b/sql/handler.cc index 28fabeea692..2aa905f70f6 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -2580,7 +2580,7 @@ int handler::ha_rnd_next(uchar *buf) { update_rows_read(); if (table->vfield && buf == table->record[0]) - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(this, VCOL_UPDATE_FOR_READ); increment_statistics(&SSV::ha_read_rnd_next_count); } else if (result == HA_ERR_RECORD_DELETED) @@ -2608,7 +2608,7 @@ int handler::ha_rnd_pos(uchar *buf, uchar *pos) { update_rows_read(); if (table->vfield && buf == table->record[0]) - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(this, VCOL_UPDATE_FOR_READ); } table->status=result ? STATUS_NOT_FOUND: 0; DBUG_RETURN(result); @@ -2631,7 +2631,7 @@ int handler::ha_index_read_map(uchar *buf, const uchar *key, { update_index_statistics(); if (table->vfield && buf == table->record[0]) - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(this, VCOL_UPDATE_FOR_READ); } table->status=result ? STATUS_NOT_FOUND: 0; DBUG_RETURN(result); @@ -2660,7 +2660,7 @@ int handler::ha_index_read_idx_map(uchar *buf, uint index, const uchar *key, update_rows_read(); index_rows_read[index]++; if (table->vfield && buf == table->record[0]) - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(this, VCOL_UPDATE_FOR_READ); } table->status=result ? STATUS_NOT_FOUND: 0; return result; @@ -2681,7 +2681,7 @@ int handler::ha_index_next(uchar * buf) { update_index_statistics(); if (table->vfield && buf == table->record[0]) - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(this, VCOL_UPDATE_FOR_READ); } table->status=result ? STATUS_NOT_FOUND: 0; DBUG_RETURN(result); @@ -2702,7 +2702,7 @@ int handler::ha_index_prev(uchar * buf) { update_index_statistics(); if (table->vfield && buf == table->record[0]) - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(this, VCOL_UPDATE_FOR_READ); } table->status=result ? STATUS_NOT_FOUND: 0; DBUG_RETURN(result); @@ -2722,7 +2722,7 @@ int handler::ha_index_first(uchar * buf) { update_index_statistics(); if (table->vfield && buf == table->record[0]) - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(this, VCOL_UPDATE_FOR_READ); } table->status=result ? STATUS_NOT_FOUND: 0; return result; @@ -2742,7 +2742,7 @@ int handler::ha_index_last(uchar * buf) { update_index_statistics(); if (table->vfield && buf == table->record[0]) - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(this, VCOL_UPDATE_FOR_READ); } table->status=result ? STATUS_NOT_FOUND: 0; return result; @@ -2762,7 +2762,7 @@ int handler::ha_index_next_same(uchar *buf, const uchar *key, uint keylen) { update_index_statistics(); if (table->vfield && buf == table->record[0]) - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(this, VCOL_UPDATE_FOR_READ); } table->status=result ? STATUS_NOT_FOUND: 0; return result; @@ -5911,7 +5911,7 @@ int handler::ha_reset() table->s->column_bitmap_size == (uchar*) table->def_write_set.bitmap); DBUG_ASSERT(bitmap_is_set_all(&table->s->all_set)); - DBUG_ASSERT(table->key_read == 0); + DBUG_ASSERT(table->file->key_read == 0); /* ensure that ha_index_end / ha_rnd_end has been called */ DBUG_ASSERT(inited == NONE); /* reset the bitmaps to point to defaults */ diff --git a/sql/handler.h b/sql/handler.h index 8b00ec8503b..017d045cdbc 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -2654,6 +2654,7 @@ public: uint errkey; /* Last dup key */ uint key_used_on_scan; uint active_index; + bool key_read; /** Length of ref (1-8 or the clustered key length) */ uint ref_length; @@ -2695,7 +2696,6 @@ private: public: void set_time_tracker(Exec_time_tracker *tracker_arg) { tracker=tracker_arg;} - Item *pushed_idx_cond; uint pushed_idx_cond_keyno; /* The index which the above condition is for */ @@ -2751,6 +2751,7 @@ public: in_range_check_pushed_down(FALSE), key_used_on_scan(MAX_KEY), active_index(MAX_KEY), + key_read(false), ref_length(sizeof(my_off_t)), ft_handler(0), inited(NONE), pushed_cond(0), next_insert_id(0), insert_id_for_cur_row(0), @@ -2855,6 +2856,21 @@ public: int ha_delete_row(const uchar * buf); void ha_release_auto_increment(); + int ha_start_keyread() + { + if (key_read) + return 0; + key_read= 1; + return extra(HA_EXTRA_KEYREAD); + } + int ha_end_keyread() + { + if (!key_read) + return 0; + key_read= 0; + return extra(HA_EXTRA_NO_KEYREAD); + } + int check_collation_compatibility(); int ha_check_for_upgrade(HA_CHECK_OPT *check_opt); /** to be actually called to get 'check()' functionality*/ diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 8446da51926..d41c4a45276 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -1236,7 +1236,7 @@ QUICK_SELECT_I::QUICK_SELECT_I() QUICK_RANGE_SELECT::QUICK_RANGE_SELECT(THD *thd, TABLE *table, uint key_nr, bool no_alloc, MEM_ROOT *parent_alloc, bool *create_error) - :doing_key_read(0),free_file(0),cur_range(NULL),last_range(0),dont_free(0) + :free_file(0),cur_range(NULL),last_range(0),dont_free(0) { my_bitmap_map *bitmap; DBUG_ENTER("QUICK_RANGE_SELECT::QUICK_RANGE_SELECT"); @@ -1318,8 +1318,7 @@ QUICK_RANGE_SELECT::~QUICK_RANGE_SELECT() if (file) { range_end(); - if (doing_key_read) - file->extra(HA_EXTRA_NO_KEYREAD); + file->ha_end_keyread(); if (free_file) { DBUG_PRINT("info", ("Freeing separate handler 0x%lx (free: %d)", (long) file, @@ -1475,7 +1474,6 @@ int QUICK_RANGE_SELECT::init_ror_merged_scan(bool reuse_handler, MEM_ROOT *local_alloc) { handler *save_file= file, *org_file; - my_bool org_key_read; THD *thd= head->in_use; MY_BITMAP * const save_vcol_set= head->vcol_set; MY_BITMAP * const save_read_set= head->read_set; @@ -1537,21 +1535,15 @@ end: key. The 'column_bitmap' is used in ::get_next() */ org_file= head->file; - org_key_read= head->key_read; head->file= file; - head->key_read= 0; head->mark_columns_used_by_index_no_reset(index, &column_bitmap); if (!head->no_keyread) - { - doing_key_read= 1; - head->set_keyread(true); - } + head->file->ha_start_keyread(); head->prepare_for_position(); head->file= org_file; - head->key_read= org_key_read; /* Restore head->read_set (and write_set) to what they had before the call */ head->column_bitmaps_set(save_read_set, save_write_set); @@ -10631,7 +10623,7 @@ QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table, /* Call multi_range_read_info() to get the MRR flags and buffer size */ quick->mrr_flags= HA_MRR_NO_ASSOCIATION | - (table->key_read ? HA_MRR_INDEX_ONLY : 0); + (table->file->key_read ? HA_MRR_INDEX_ONLY : 0); if (thd->lex->sql_command != SQLCOM_SELECT) quick->mrr_flags |= HA_MRR_USE_DEFAULT_IMPL; @@ -10681,15 +10673,10 @@ int read_keys_and_merge_scans(THD *thd, Unique *unique= *unique_ptr; handler *file= head->file; bool with_cpk_filter= pk_quick_select != NULL; - bool enabled_keyread= 0; DBUG_ENTER("read_keys_and_merge"); /* We're going to just read rowids. */ - if (!head->key_read) - { - enabled_keyread= 1; - head->set_keyread(true); - } + head->file->ha_start_keyread(); head->prepare_for_position(); cur_quick_it.rewind(); @@ -10780,16 +10767,14 @@ int read_keys_and_merge_scans(THD *thd, /* index merge currently doesn't support "using index" at all */ - if (enabled_keyread) - head->set_keyread(false); + head->file->ha_end_keyread(); if (init_read_record(read_record, thd, head, (SQL_SELECT*) 0, &unique->sort, 1 , 1, TRUE)) result= 1; DBUG_RETURN(result); err: - if (enabled_keyread) - head->set_keyread(false); + head->file->ha_end_keyread(); DBUG_RETURN(1); } @@ -13340,7 +13325,7 @@ QUICK_GROUP_MIN_MAX_SELECT(TABLE *table, JOIN *join_arg, bool have_min_arg, group_prefix_len(group_prefix_len_arg), group_key_parts(group_key_parts_arg), have_min(have_min_arg), have_max(have_max_arg), have_agg_distinct(have_agg_distinct_arg), - seen_first_key(FALSE), doing_key_read(FALSE), min_max_arg_part(min_max_arg_part_arg), + seen_first_key(FALSE), min_max_arg_part(min_max_arg_part_arg), key_infix(key_infix_arg), key_infix_len(key_infix_len_arg), min_functions_it(NULL), max_functions_it(NULL), is_index_scan(is_index_scan_arg) @@ -13480,8 +13465,7 @@ QUICK_GROUP_MIN_MAX_SELECT::~QUICK_GROUP_MIN_MAX_SELECT() if (file->inited != handler::NONE) { DBUG_ASSERT(file == head->file); - if (doing_key_read) - head->set_keyread(false); + head->file->ha_end_keyread(); /* There may be a code path when the same table was first accessed by index, then the index is closed, and the table is scanned (order by + loose scan). @@ -13671,11 +13655,8 @@ int QUICK_GROUP_MIN_MAX_SELECT::reset(void) DBUG_ENTER("QUICK_GROUP_MIN_MAX_SELECT::reset"); seen_first_key= FALSE; - if (!head->key_read) - { - doing_key_read= 1; - head->set_keyread(true); /* We need only the key attributes */ - } + head->file->ha_start_keyread(); /* We need only the key attributes */ + if ((result= file->ha_index_init(index,1))) { head->file->print_error(result, MYF(0)); diff --git a/sql/opt_range.h b/sql/opt_range.h index 9e4521a9437..c1f7079ce7f 100644 --- a/sql/opt_range.h +++ b/sql/opt_range.h @@ -1037,7 +1037,6 @@ class QUICK_RANGE_SELECT : public QUICK_SELECT_I { protected: /* true if we enabled key only reads */ - bool doing_key_read; handler *file; /* Members to deal with case when this quick select is a ROR-merged scan */ diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc index ad3f5aed112..9d229f6aeef 100644 --- a/sql/opt_sum.cc +++ b/sql/opt_sum.cc @@ -406,7 +406,7 @@ int opt_sum_query(THD *thd, if (!error && reckey_in_range(is_max, &ref, item_field->field, conds, range_fl, prefix_len)) error= HA_ERR_KEY_NOT_FOUND; - table->set_keyread(false); + table->file->ha_end_keyread(); table->file->ha_index_end(); if (error) { @@ -968,7 +968,7 @@ static bool find_key_for_maxmin(bool max_fl, TABLE_REF *ref, converted (for example to upper case) */ if (field->part_of_key.is_set(idx)) - table->set_keyread(true); + table->file->ha_start_keyread(); DBUG_RETURN(TRUE); } } diff --git a/sql/sql_base.cc b/sql/sql_base.cc index cdbef309527..cdd70280eaf 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -859,7 +859,7 @@ void close_thread_table(THD *thd, TABLE **table_ptr) DBUG_ENTER("close_thread_table"); DBUG_PRINT("tcache", ("table: '%s'.'%s' 0x%lx", table->s->db.str, table->s->table_name.str, (long) table)); - DBUG_ASSERT(table->key_read == 0); + DBUG_ASSERT(table->file->key_read == 0); DBUG_ASSERT(!table->file || table->file->inited == handler::NONE); /* @@ -7918,7 +7918,7 @@ fill_record(THD *thd, TABLE *table_arg, List &fields, List &values, goto err; /* Update virtual fields */ if (table_arg->vfield && - table_arg->update_virtual_fields(VCOL_UPDATE_FOR_WRITE)) + table_arg->update_virtual_fields(table_arg->file, VCOL_UPDATE_FOR_WRITE)) goto err; thd->abort_on_warning= save_abort_on_warning; thd->no_errors= save_no_errors; @@ -8067,7 +8067,8 @@ fill_record_n_invoke_before_triggers(THD *thd, TABLE *table, if (item_field) { DBUG_ASSERT(table == item_field->field->table); - result|= table->update_virtual_fields(VCOL_UPDATE_FOR_WRITE); + result|= table->update_virtual_fields(table->file, + VCOL_UPDATE_FOR_WRITE); } } } @@ -8163,7 +8164,7 @@ fill_record(THD *thd, TABLE *table, Field **ptr, List &values, /* Update virtual fields */ thd->abort_on_warning= FALSE; if (table->vfield && - table->update_virtual_fields(VCOL_UPDATE_FOR_WRITE)) + table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_WRITE)) goto err; thd->abort_on_warning= abort_on_warning_saved; DBUG_RETURN(thd->is_error()); @@ -8217,7 +8218,7 @@ fill_record_n_invoke_before_triggers(THD *thd, TABLE *table, Field **ptr, { DBUG_ASSERT(table == (*ptr)->table); if (table->vfield) - result= table->update_virtual_fields(VCOL_UPDATE_FOR_WRITE); + result= table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_WRITE); } return result; diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index 108fc51c569..eb5f0d7a477 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -562,7 +562,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, explain->tracker.on_record_read(); thd->inc_examined_row_count(1); if (table->vfield) - (void) table->update_virtual_fields(VCOL_UPDATE_FOR_DELETE); + (void) table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_DELETE); if (!select || select->skip_record(thd) > 0) { explain->tracker.on_record_after_where(); diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 8e8f6c7a26f..27820c16543 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -1732,7 +1732,7 @@ int write_record(THD *thd, TABLE *table,COPY_INFO *info) in handler methods for the just read row in record[1]. */ table->move_fields(table->field, table->record[1], table->record[0]); - table->update_virtual_fields(VCOL_UPDATE_FOR_REPLACE); + table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_REPLACE); table->move_fields(table->field, table->record[0], table->record[1]); } if (info->handle_duplicates == DUP_UPDATE) @@ -3268,7 +3268,8 @@ bool Delayed_insert::handle_inserts(void) TABLE object used had vcol_set empty. Better to calculate them here to make the caller faster. */ - tmp_error= table->update_virtual_fields(VCOL_UPDATE_FOR_WRITE); + tmp_error= table->update_virtual_fields(table->file, + VCOL_UPDATE_FOR_WRITE); } if (tmp_error || write_record(&thd, table, &info)) diff --git a/sql/sql_select.cc b/sql/sql_select.cc index ac4b842e328..ceb48616f96 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -11260,7 +11260,7 @@ make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after) join_read_system :join_read_const; if (table->covering_keys.is_set(tab->ref.key) && !table->no_keyread) - table->set_keyread(true); + table->file->ha_start_keyread(); else if ((!jcl || jcl > 4) && !tab->ref.is_access_triggered()) push_index_cond(tab, tab->ref.key); break; @@ -11269,7 +11269,7 @@ make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after) /* fall through */ if (table->covering_keys.is_set(tab->ref.key) && !table->no_keyread) - table->set_keyread(true); + table->file->ha_start_keyread(); else if ((!jcl || jcl > 4) && !tab->ref.is_access_triggered()) push_index_cond(tab, tab->ref.key); break; @@ -11284,7 +11284,7 @@ make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after) tab->quick=0; if (table->covering_keys.is_set(tab->ref.key) && !table->no_keyread) - table->set_keyread(true); + table->file->ha_start_keyread(); else if ((!jcl || jcl > 4) && !tab->ref.is_access_triggered()) push_index_cond(tab, tab->ref.key); break; @@ -11347,7 +11347,7 @@ make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after) if (tab->select && tab->select->quick && tab->select->quick->index != MAX_KEY && //not index_merge table->covering_keys.is_set(tab->select->quick->index)) - table->set_keyread(true); + table->file->ha_start_keyread(); else if (!table->covering_keys.is_clear_all() && !(tab->select && tab->select->quick)) { // Only read index tree @@ -11376,7 +11376,7 @@ make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after) } } if (tab->select && tab->select->quick && - tab->select->quick->index != MAX_KEY && ! tab->table->key_read) + tab->select->quick->index != MAX_KEY && !tab->table->file->key_read) push_index_cond(tab, tab->select->quick->index); } break; @@ -11529,12 +11529,12 @@ void JOIN_TAB::cleanup() if (table && (table->s->tmp_table != INTERNAL_TMP_TABLE || table->is_created())) { - table->set_keyread(FALSE); + table->file->ha_end_keyread(); table->file->ha_index_or_rnd_end(); } if (table) { - table->set_keyread(false); + table->file->ha_end_keyread(); table->file->ha_index_or_rnd_end(); preread_init_done= FALSE; if (table->pos_in_table_list && @@ -18825,15 +18825,15 @@ join_read_const_table(THD *thd, JOIN_TAB *tab, POSITION *pos) } else { - if (!table->key_read && table->covering_keys.is_set(tab->ref.key) && - !table->no_keyread && + if (/*!table->file->key_read && */ + table->covering_keys.is_set(tab->ref.key) && !table->no_keyread && (int) table->reginfo.lock_type <= (int) TL_READ_HIGH_PRIORITY) { - table->set_keyread(true); + table->file->ha_start_keyread(); tab->index= tab->ref.key; } error=join_read_const(tab); - table->set_keyread(false); + table->file->ha_end_keyread(); if (error) { tab->info= ET_UNIQUE_ROW_NOT_FOUND; @@ -19348,9 +19348,8 @@ join_read_first(JOIN_TAB *tab) TABLE *table=tab->table; DBUG_ENTER("join_read_first"); - if (table->covering_keys.is_set(tab->index) && !table->no_keyread && - !table->key_read) - table->set_keyread(true); + if (table->covering_keys.is_set(tab->index) && !table->no_keyread) + table->file->ha_start_keyread(); tab->table->status=0; tab->read_record.read_record=join_read_next; tab->read_record.table=table; @@ -19388,9 +19387,8 @@ join_read_last(JOIN_TAB *tab) int error= 0; DBUG_ENTER("join_read_first"); - if (table->covering_keys.is_set(tab->index) && !table->no_keyread && - !table->key_read) - table->set_keyread(true); + if (table->covering_keys.is_set(tab->index) && !table->no_keyread) + table->file->ha_start_keyread(); tab->table->status=0; tab->read_record.read_record=join_read_prev; tab->read_record.table=table; @@ -21256,12 +21254,9 @@ check_reverse_order: and best_key doesn't, then revert the decision. */ if (!table->covering_keys.is_set(best_key)) - table->set_keyread(false); + table->file->ha_end_keyread(); else - { - if (!table->key_read) - table->set_keyread(true); - } + table->file->ha_start_keyread(); if (!quick_created) { @@ -21291,7 +21286,7 @@ check_reverse_order: tab->ref.key_parts= 0; if (select_limit < table->stat_records()) tab->limit= select_limit; - table->set_keyread(false); + table->file->ha_end_keyread(); } } else if (tab->type != JT_ALL || tab->select->quick) @@ -21465,7 +21460,7 @@ create_sort_index(THD *thd, JOIN *join, JOIN_TAB *tab, Filesort *fsort) and in index_merge 'Only index' cannot be used */ if (((uint) tab->ref.key != select->quick->index)) - table->set_keyread(FALSE); + table->file->ha_end_keyread(); } else { @@ -21518,7 +21513,7 @@ create_sort_index(THD *thd, JOIN *join, JOIN_TAB *tab, Filesort *fsort) select->cleanup(); } - table->set_keyread(FALSE); // Restore if we used indexes + table->file->ha_end_keyread(); if (tab->type == JT_FT) table->file->ft_end(); else @@ -24213,7 +24208,7 @@ void JOIN_TAB::save_explain_data(Explain_table_access *eta, } /* Build "Extra" field and save it */ - key_read=table->key_read; + key_read=table->file->key_read; if ((tab_type == JT_NEXT || tab_type == JT_CONST) && table->covering_keys.is_set(index)) key_read=1; diff --git a/sql/sql_statistics.cc b/sql/sql_statistics.cc index 6de8727876c..63e8b7bcec7 100644 --- a/sql/sql_statistics.cc +++ b/sql/sql_statistics.cc @@ -2633,8 +2633,7 @@ int collect_statistics_for_index(THD *thd, TABLE *table, uint index) DBUG_RETURN(rc); } - table->key_read= 1; - table->file->extra(HA_EXTRA_KEYREAD); + table->file->ha_start_keyread(); table->file->ha_index_init(index, TRUE); rc= table->file->ha_index_first(table->record[0]); @@ -2649,7 +2648,7 @@ int collect_statistics_for_index(THD *thd, TABLE *table, uint index) index_prefix_calc.add(); rc= table->file->ha_index_next(table->record[0]); } - table->key_read= 0; + table->file->ha_end_keyread(); table->file->ha_index_end(); rc= (rc == HA_ERR_END_OF_FILE && !thd->killed) ? 0 : 1; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 3856cc46031..eac61052284 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -9839,7 +9839,7 @@ copy_data_between_tables(THD *thd, TABLE *from, TABLE *to, if (to->default_field) to->update_default_fields(0, ignore); if (to->vfield) - to->update_virtual_fields(VCOL_UPDATE_FOR_WRITE); + to->update_virtual_fields(to->file, VCOL_UPDATE_FOR_WRITE); /* This will set thd->is_error() if fatal failure */ if (to->verify_constraints(ignore) == VIEW_CHECK_SKIP) diff --git a/sql/sql_update.cc b/sql/sql_update.cc index c46b80f798b..4aa68c51b3e 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -682,7 +682,7 @@ int mysql_update(THD *thd, if (error >= 0) goto err; } - table->set_keyread(false); + table->file->ha_end_keyread(); table->column_bitmaps_set(save_read_set, save_write_set); } @@ -1032,7 +1032,7 @@ err: delete select; delete file_sort; free_underlaid_joins(thd, select_lex); - table->set_keyread(false); + table->file->ha_end_keyread(); thd->abort_on_warning= 0; DBUG_RETURN(1); @@ -2404,7 +2404,8 @@ int multi_update::do_updates() } while ((tbl= check_opt_it++)); if (table->vfield && - table->update_virtual_fields(VCOL_UPDATE_INDEXED_FOR_UPDATE)) + table->update_virtual_fields(table->file, + VCOL_UPDATE_INDEXED_FOR_UPDATE)) goto err2; table->status|= STATUS_UPDATED; @@ -2431,7 +2432,7 @@ int multi_update::do_updates() (error= table->update_default_fields(1, ignore))) goto err2; if (table->vfield && - table->update_virtual_fields(VCOL_UPDATE_FOR_WRITE)) + table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_WRITE)) goto err2; if ((error= cur_table->view_check_option(thd, ignore)) != VIEW_CHECK_OK) diff --git a/sql/table.cc b/sql/table.cc index ca1fd3ac262..01481b3ec56 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -4447,7 +4447,7 @@ void TABLE::init(THD *thd, TABLE_LIST *tl) (*f_ptr)->cond_selectivity= 1.0; } - DBUG_ASSERT(key_read == 0); + DBUG_ASSERT(file->key_read == 0); /* mark the record[0] uninitialized */ TRASH_ALLOC(record[0], s->reclength); @@ -6096,7 +6096,7 @@ void TABLE::mark_columns_used_by_index(uint index) MY_BITMAP *bitmap= &tmp_set; DBUG_ENTER("TABLE::mark_columns_used_by_index"); - set_keyread(true); + file->ha_start_keyread(); bitmap_clear_all(bitmap); mark_columns_used_by_index_no_reset(index, bitmap); column_bitmaps_set(bitmap, bitmap); @@ -6117,7 +6117,7 @@ void TABLE::add_read_columns_used_by_index(uint index) MY_BITMAP *bitmap= &tmp_set; DBUG_ENTER("TABLE::add_read_columns_used_by_index"); - set_keyread(true); + file->ha_start_keyread(); bitmap_copy(bitmap, read_set); mark_columns_used_by_index_no_reset(index, bitmap); column_bitmaps_set(bitmap, write_set); @@ -6140,7 +6140,7 @@ void TABLE::restore_column_maps_after_mark_index() { DBUG_ENTER("TABLE::restore_column_maps_after_mark_index"); - set_keyread(false); + file->ha_end_keyread(); default_column_bitmaps(); file->column_bitmaps_signal(); DBUG_VOID_RETURN; @@ -7335,7 +7335,7 @@ public: >0 Error occurred when storing a virtual field value */ -int TABLE::update_virtual_fields(enum_vcol_update_mode update_mode) +int TABLE::update_virtual_fields(handler *h, enum_vcol_update_mode update_mode) { DBUG_ENTER("TABLE::update_virtual_fields"); DBUG_PRINT("enter", ("update_mode: %d", update_mode)); @@ -7370,7 +7370,7 @@ int TABLE::update_virtual_fields(enum_vcol_update_mode update_mode) switch (update_mode) { case VCOL_UPDATE_FOR_READ: update= !vcol_info->stored_in_db - && !(key_read && vf->part_of_key.is_set(file->active_index)) + && !(h->key_read && vf->part_of_key.is_set(h->active_index)) && bitmap_is_set(vcol_set, vf->field_index); swap_values= 1; break; @@ -7400,7 +7400,7 @@ int TABLE::update_virtual_fields(enum_vcol_update_mode update_mode) /* Read indexed fields that was not updated in VCOL_UPDATE_FOR_READ */ update= (!vcol_info->stored_in_db && (vf->flags & PART_KEY_FLAG) && bitmap_is_set(vcol_set, vf->field_index) && - (key_read && vf->part_of_key.is_set(file->active_index))); + (h->key_read && vf->part_of_key.is_set(h->active_index))); swap_values= 1; break; } diff --git a/sql/table.h b/sql/table.h index 5b1c1d0d2ea..9b171ef0674 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1245,11 +1245,6 @@ public: */ bool keep_row_order; - /** - If set, the optimizer has found that row retrieval should access index - tree only. - */ - bool key_read; bool no_keyread; /** If set, indicate that the table is not replicated by the server. @@ -1388,23 +1383,6 @@ public: tablenr= tablenr_arg; } - void set_keyread(bool flag) - { - DBUG_ASSERT(file); - if (flag && !key_read) - { - key_read= 1; - if (is_created()) - file->extra(HA_EXTRA_KEYREAD); - } - else if (!flag && key_read) - { - key_read= 0; - if (is_created()) - file->extra(HA_EXTRA_NO_KEYREAD); - } - } - /// Return true if table is instantiated, and false otherwise. bool is_created() const { return created; } @@ -1416,7 +1394,7 @@ public: { if (created) return; - if (key_read) + if (file->key_read) file->extra(HA_EXTRA_KEYREAD); created= true; } @@ -1438,7 +1416,7 @@ public: uint actual_n_key_parts(KEY *keyinfo); ulong actual_key_flags(KEY *keyinfo); int update_virtual_field(Field *vf); - int update_virtual_fields(enum_vcol_update_mode update_mode); + int update_virtual_fields(handler *h, enum_vcol_update_mode update_mode); int update_default_fields(bool update, bool ignore_errors); void reset_default_fields(); inline ha_rows stat_records() { return used_stat_records; } diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 8e41a631e5d..d766dd6ada6 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -1898,7 +1898,7 @@ innobase_row_to_mysql( } if (table->vfield) { my_bitmap_map* old_vcol_set = tmp_use_all_columns(table, table->vcol_set); - table->update_virtual_fields(VCOL_UPDATE_FOR_READ); + table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_READ); tmp_restore_column_map(table->vcol_set, old_vcol_set); } } diff --git a/storage/myisam/ha_myisam.cc b/storage/myisam/ha_myisam.cc index 95908aea099..46a7734ef22 100644 --- a/storage/myisam/ha_myisam.cc +++ b/storage/myisam/ha_myisam.cc @@ -665,8 +665,8 @@ static int compute_vcols(MI_INFO *info, uchar *record, int keynum) table->move_fields(table->field, record, table->field[0]->record_ptr()); if (keynum == -1) // update all vcols { - int error= table->update_virtual_fields(VCOL_UPDATE_FOR_READ); - if (table->update_virtual_fields(VCOL_UPDATE_INDEXED)) + int error= table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_READ); + if (table->update_virtual_fields(table->file, VCOL_UPDATE_INDEXED)) error= 1; return error; } From b6a3917b0555a0fdaee7c3f13423009f4f4b878d Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 24 Jan 2017 00:01:25 +0100 Subject: [PATCH 195/258] MDEV-11750 Assertion `vfield' failed in TABLE::update_virtual_fields after crash recovery on corrupted MyISAM table Adjust the length of the BIT field (same as in _mi_put_key_in_record()) --- mysql-test/suite/vcol/r/vcol_keys_myisam.result | 10 ++++++++++ mysql-test/suite/vcol/t/vcol_keys_myisam.test | 13 +++++++++++++ storage/myisam/mi_open.c | 2 ++ 3 files changed, 25 insertions(+) diff --git a/mysql-test/suite/vcol/r/vcol_keys_myisam.result b/mysql-test/suite/vcol/r/vcol_keys_myisam.result index 594f87bf4d3..bd013da9b03 100644 --- a/mysql-test/suite/vcol/r/vcol_keys_myisam.result +++ b/mysql-test/suite/vcol/r/vcol_keys_myisam.result @@ -365,3 +365,13 @@ ALTER TABLE t1 ADD INDEX(col_enum,vcol_int); SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX(col_year); DROP TABLE t1; +create table t1 ( +pk int primary key auto_increment, +b bit default null, +key(b) +) engine=myisam; +insert into t1 values (null, 0); +repair table t1 extended; +Table Op Msg_type Msg_text +test.t1 repair status OK +drop table t1; diff --git a/mysql-test/suite/vcol/t/vcol_keys_myisam.test b/mysql-test/suite/vcol/t/vcol_keys_myisam.test index fe7b8de8ef0..337d14c3074 100644 --- a/mysql-test/suite/vcol/t/vcol_keys_myisam.test +++ b/mysql-test/suite/vcol/t/vcol_keys_myisam.test @@ -249,3 +249,16 @@ SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR ALTER TABLE t1 ADD INDEX(col_year); --enable_warnings DROP TABLE t1; + +# +# MDEV-11750 Assertion `vfield' failed in TABLE::update_virtual_fields after crash recovery on corrupted MyISAM table +# +create table t1 ( + pk int primary key auto_increment, + b bit default null, + key(b) +) engine=myisam; + +insert into t1 values (null, 0); +repair table t1 extended; +drop table t1; diff --git a/storage/myisam/mi_open.c b/storage/myisam/mi_open.c index 604dd1674ae..5bd5554db51 100644 --- a/storage/myisam/mi_open.c +++ b/storage/myisam/mi_open.c @@ -376,6 +376,8 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) { uint real_length= pos->flag & HA_BLOB_PART ? pos->bit_start : pos->length; + if (pos->type == HA_KEYTYPE_BIT && pos->bit_length) + real_length--; set_if_bigger(share->vreclength, pos->start + real_length); } } From d2f84ab978c596fcaa96e0d53282b57f6225e50f Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 24 Jan 2017 22:57:08 +0100 Subject: [PATCH 196/258] MDEV-10352 Server crashes in Field::set_default on CREATE TABLE fix Item_default_value not to pretend being const_item if the field's default_value expression isn't parsed yet --- mysql-test/r/default.result | 2 ++ mysql-test/t/default.test | 6 ++++++ sql/item.cc | 8 +++++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/default.result b/mysql-test/r/default.result index 014d4bee6c8..39202f5eabb 100644 --- a/mysql-test/r/default.result +++ b/mysql-test/r/default.result @@ -3362,4 +3362,6 @@ a b t 4 5 4 also expression DEFAULT(0)+0 4 5 5 the value of the DEFAULT(a), that is b drop table t1; +create table t1 (col1 int default(-(default(col1)))); +ERROR 01000: Expression for field `col1` is refering to uninitialized field `col1` # end of 10.2 test diff --git a/mysql-test/t/default.test b/mysql-test/t/default.test index c96f8ac239b..b9f97b08a72 100644 --- a/mysql-test/t/default.test +++ b/mysql-test/t/default.test @@ -2069,4 +2069,10 @@ insert into t1 values (b, 5, '5 the value of the DEFAULT(a), that is b'); select * from t1 order by t; drop table t1; +# +# MDEV-10352 Server crashes in Field::set_default on CREATE TABLE +# +--error ER_EXPRESSION_REFERS_TO_UNINIT_FIELD +create table t1 (col1 int default(-(default(col1)))); + --echo # end of 10.2 test diff --git a/sql/item.cc b/sql/item.cc index 3b3e878f4d3..c34d27fa63b 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -8853,9 +8853,11 @@ int Item_default_value::save_in_field(Field *field_arg, bool no_conversions) table_map Item_default_value::used_tables() const { - if (field && field->default_value && field->default_value->flags) - return field->default_value->expr->used_tables(); - return static_cast(0); + if (!field || !field->default_value) + return static_cast(0); + if (!field->default_value->expr) // not fully parsed field + return static_cast(RAND_TABLE_BIT); + return field->default_value->expr->used_tables(); } /** From ef0db6bfd13f587ed37b6ec13c4b3b84bf0ea5a7 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 29 Jan 2017 12:02:56 +0100 Subject: [PATCH 197/258] fix rpl_binlog_errors test not to leave dbug enabled --- mysql-test/extra/rpl_tests/rpl_binlog_errors.inc | 8 ++++---- .../suite/binlog_encryption/rpl_binlog_errors.result | 8 ++++---- mysql-test/suite/rpl/r/rpl_binlog_errors.result | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc b/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc index 29731e823ce..36568d7ddd5 100644 --- a/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc +++ b/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc @@ -50,7 +50,7 @@ call mtr.add_suppression("Can't generate a unique log-filename"); call mtr.add_suppression("Writing one row to the row-based binary log failed.*"); call mtr.add_suppression("Error writing file .*"); -SET @old_debug= @@global.debug; +SET @old_debug= @@global.debug_dbug; ### ACTION: create a large file (> 4096 bytes) that will be later used ### in LOAD DATA INFILE to check binlog errors in its vacinity @@ -296,7 +296,7 @@ SET GLOBAL debug_dbug="+d,fault_injection_registering_index"; -- replace_regex /\.[\\\/]master/master/ -- error ER_CANT_OPEN_FILE FLUSH LOGS; -SET GLOBAL debug_dbug="-d,fault_injection_registering_index"; +SET GLOBAL debug_dbug=@old_debug; -- error ER_NO_BINARY_LOGGING SHOW BINARY LOGS; @@ -324,7 +324,7 @@ SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; -- replace_regex /\.[\\\/]master/master/ -- error ER_CANT_OPEN_FILE FLUSH LOGS; -SET GLOBAL debug_dbug="-d,fault_injection_openning_index"; +SET GLOBAL debug_dbug=@old_debug; -- error ER_FLUSH_MASTER_BINLOG_CLOSED RESET MASTER; @@ -351,7 +351,7 @@ DROP TABLE t5; SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; -- error ER_ERROR_ON_WRITE FLUSH LOGS; -SET GLOBAL debug_dbug="-d,fault_injection_new_file_rotate_event"; +SET GLOBAL debug_dbug=@old_debug; -- error ER_FLUSH_MASTER_BINLOG_CLOSED RESET MASTER; diff --git a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result index 8820aa23f53..8d9191fb806 100644 --- a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result +++ b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result @@ -9,7 +9,7 @@ connection master; call mtr.add_suppression("Can't generate a unique log-filename"); call mtr.add_suppression("Writing one row to the row-based binary log failed.*"); call mtr.add_suppression("Error writing file .*"); -SET @old_debug= @@global.debug; +SET @old_debug= @@global.debug_dbug; SELECT repeat('x',8192) INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data'; SELECT repeat('x',10) INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug_46166-2.data'; RESET MASTER; @@ -180,7 +180,7 @@ Level Code Message SET GLOBAL debug_dbug="+d,fault_injection_registering_index"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin.000002' (errno: 1 "Operation not permitted") -SET GLOBAL debug_dbug="-d,fault_injection_registering_index"; +SET GLOBAL debug_dbug=@old_debug; SHOW BINARY LOGS; ERROR HY000: You are not using binary logging CREATE TABLE t5 (a INT); @@ -194,7 +194,7 @@ include/rpl_restart_server.inc [server_number=1] SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin.index' (errno: 1 "Operation not permitted") -SET GLOBAL debug_dbug="-d,fault_injection_openning_index"; +SET GLOBAL debug_dbug=@old_debug; RESET MASTER; ERROR HY000: Binlog closed, cannot RESET MASTER CREATE TABLE t5 (a INT); @@ -208,7 +208,7 @@ include/rpl_restart_server.inc [server_number=1] SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin' (errno: 2 "No such file or directory") -SET GLOBAL debug_dbug="-d,fault_injection_new_file_rotate_event"; +SET GLOBAL debug_dbug=@old_debug; RESET MASTER; ERROR HY000: Binlog closed, cannot RESET MASTER CREATE TABLE t5 (a INT); diff --git a/mysql-test/suite/rpl/r/rpl_binlog_errors.result b/mysql-test/suite/rpl/r/rpl_binlog_errors.result index 8820aa23f53..8d9191fb806 100644 --- a/mysql-test/suite/rpl/r/rpl_binlog_errors.result +++ b/mysql-test/suite/rpl/r/rpl_binlog_errors.result @@ -9,7 +9,7 @@ connection master; call mtr.add_suppression("Can't generate a unique log-filename"); call mtr.add_suppression("Writing one row to the row-based binary log failed.*"); call mtr.add_suppression("Error writing file .*"); -SET @old_debug= @@global.debug; +SET @old_debug= @@global.debug_dbug; SELECT repeat('x',8192) INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug_46166.data'; SELECT repeat('x',10) INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug_46166-2.data'; RESET MASTER; @@ -180,7 +180,7 @@ Level Code Message SET GLOBAL debug_dbug="+d,fault_injection_registering_index"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin.000002' (errno: 1 "Operation not permitted") -SET GLOBAL debug_dbug="-d,fault_injection_registering_index"; +SET GLOBAL debug_dbug=@old_debug; SHOW BINARY LOGS; ERROR HY000: You are not using binary logging CREATE TABLE t5 (a INT); @@ -194,7 +194,7 @@ include/rpl_restart_server.inc [server_number=1] SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin.index' (errno: 1 "Operation not permitted") -SET GLOBAL debug_dbug="-d,fault_injection_openning_index"; +SET GLOBAL debug_dbug=@old_debug; RESET MASTER; ERROR HY000: Binlog closed, cannot RESET MASTER CREATE TABLE t5 (a INT); @@ -208,7 +208,7 @@ include/rpl_restart_server.inc [server_number=1] SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; FLUSH LOGS; ERROR HY000: Can't open file: 'master-bin' (errno: 2 "No such file or directory") -SET GLOBAL debug_dbug="-d,fault_injection_new_file_rotate_event"; +SET GLOBAL debug_dbug=@old_debug; RESET MASTER; ERROR HY000: Binlog closed, cannot RESET MASTER CREATE TABLE t5 (a INT); From 6c4144a46873abc6b90649ca396b7e057ff3841e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 30 Jan 2017 01:01:28 +0100 Subject: [PATCH 198/258] InnoDB: suppress posix_fallocate() failure errors when EINVAL EINVAL means that the filesystem doesn't support posix_fallocate(). There were two places where this error was issued, one checked for EINVAL, the other did not. This commit fixed the other place to also check for EINVAL. Also, remove the space after the REFMAN to get the valid url with no space in the middle. Also don't say "Make sure the file system supports this function." when posix_fallocate() fails, because this message is only shown when the filesystem does support this function. --- storage/innobase/fil/fil0fil.cc | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc index 81ee2b5f53a..14dad77f332 100644 --- a/storage/innobase/fil/fil0fil.cc +++ b/storage/innobase/fil/fil0fil.cc @@ -1052,6 +1052,7 @@ fil_write_zeros( return(err); } + /** Try to extend a tablespace. @param[in,out] space tablespace to be extended @param[in,out] node last file of the tablespace @@ -1136,10 +1137,9 @@ fil_space_extend_must_retry( " Operating system error number " << ret << ". Check" " that the disk is not full or a disk quota" - " exceeded. Make sure the file system supports" - " this function. Some operating system error" + " exceeded. Some operating system error" " numbers are described at " REFMAN - " operating-system-error-codes.html"; + "operating-system-error-codes.html"; } else #endif if (DB_SUCCESS != fil_write_zeros( @@ -3734,7 +3734,9 @@ fil_ibd_create( */ int ret = posix_fallocate(file, 0, size * UNIV_PAGE_SIZE); - if (ret != 0) { + if (ret == 0) { + success = true; + } else if (ret != EINVAL) { ib::error() << "posix_fallocate(): Failed to preallocate" " data for file " << path @@ -3743,13 +3745,10 @@ fil_ibd_create( << " Operating system error number " << ret << ". Check" " that the disk is not full or a disk quota" - " exceeded. Make sure the file system supports" - " this function. Some operating system error" + " exceeded. Some operating system error" " numbers are described at " REFMAN - " operating-system-error-codes.html"; - } else { - success = true; - } + "operating-system-error-codes.html"; + } #endif /* HAVE_POSIX_FALLOCATE */ if (!success) { From 8246b0ac50051be3d7e29c1a876fe280db046e51 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 30 Jan 2017 09:28:05 +0100 Subject: [PATCH 199/258] cleanup: TABLE::non_determinstic_insert move the check where it make sense, remove incorrect comment --- sql/table.cc | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/sql/table.cc b/sql/table.cc index 01481b3ec56..b513fb33cde 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1073,6 +1073,8 @@ bool parse_vcol_defs(THD *thd, MEM_ROOT *mem_root, TABLE *table, &((*field_ptr)->default_value), error_reported); *(dfield_ptr++)= *field_ptr; + if (vcol && (vcol->flags & (VCOL_NON_DETERMINISTIC | VCOL_SESSION_FUNC))) + table->s->non_determinstic_insert= true; break; case VCOL_CHECK_FIELD: vcol= unpack_vcol_info_from_frm(thd, mem_root, table, &expr_str, @@ -2761,12 +2763,6 @@ bool fix_session_vcol_expr_for_read(THD *thd, Field *field, the virtual column vcol_field. The expression is used to compute the values of this column. - @note - If the virtual column has stored_in_db set and it uses non deterministic - function then table->non_determinstic_insert is set. - This is used in replication to ensure that row based replication is used - for inserts. - @retval TRUE An error occurred, something was wrong with the function @retval @@ -2816,13 +2812,6 @@ static bool fix_and_check_vcol_expr(THD *thd, TABLE *table, } vcol->flags= res.errors; - /* - Mark what kind of default / virtual fields the table has - */ - if (vcol->stored_in_db && - vcol->flags & (VCOL_NON_DETERMINISTIC | VCOL_SESSION_FUNC)) - table->s->non_determinstic_insert= true; - if (vcol->flags & VCOL_SESSION_FUNC) table->s->vcols_need_refixing= true; From 5d7607f340f77db697bbc6029530653704ca9b5a Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 1 Feb 2017 16:41:17 +0100 Subject: [PATCH 200/258] cleanup: style fixes, sql_join_cache.cc --- mysql-test/r/join_cache.result | 4 +- mysql-test/t/join_cache.test | 4 +- sql/sql_join_cache.cc | 568 ++++++++++++++++----------------- sql/sql_select.cc | 11 +- 4 files changed, 291 insertions(+), 296 deletions(-) diff --git a/mysql-test/r/join_cache.result b/mysql-test/r/join_cache.result index 6a8581e0605..d138babc96b 100644 --- a/mysql-test/r/join_cache.result +++ b/mysql-test/r/join_cache.result @@ -5609,8 +5609,8 @@ set join_cache_level = default; set optimizer_switch=@tmp_optimizer_switch; DROP TABLE t1,t2,t3; # -# Bug #925985: LEFT JOIN with optimize_join_buffer_size=off + -# join_buffer_size > join_buffer_space_limit +# lp:925985 LEFT JOIN with optimize_join_buffer_size=off + +# join_buffer_size > join_buffer_space_limit # CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (5), (3); diff --git a/mysql-test/t/join_cache.test b/mysql-test/t/join_cache.test index 5ee868b4177..009e72c1c14 100644 --- a/mysql-test/t/join_cache.test +++ b/mysql-test/t/join_cache.test @@ -3587,8 +3587,8 @@ set optimizer_switch=@tmp_optimizer_switch; DROP TABLE t1,t2,t3; --echo # ---echo # Bug #925985: LEFT JOIN with optimize_join_buffer_size=off + ---echo # join_buffer_size > join_buffer_space_limit +--echo # lp:925985 LEFT JOIN with optimize_join_buffer_size=off + +--echo # join_buffer_size > join_buffer_space_limit --echo # CREATE TABLE t1 (a int); diff --git a/sql/sql_join_cache.cc b/sql/sql_join_cache.cc index b9d7f660a5a..8a293956da7 100644 --- a/sql/sql_join_cache.cc +++ b/sql/sql_join_cache.cc @@ -1376,7 +1376,8 @@ uint JOIN_CACHE::write_record_data(uchar * link, bool *is_full) if (copy->referenced_field_no) copy->offset= cp-curr_rec_pos; - if (copy->type == CACHE_BLOB) + switch (copy->type) { + case CACHE_BLOB: { Field_blob *blob_field= (Field_blob *) copy->field; if (last_record) @@ -1397,69 +1398,66 @@ uint JOIN_CACHE::write_record_data(uchar * link, bool *is_full) memcpy(cp+copy->length, copy->str, copy->blob_length); cp+= copy->length+copy->blob_length; } + break; } - else + case CACHE_VARSTR1: + /* Copy the significant part of the short varstring field */ + len= (uint) copy->str[0] + 1; + DBUG_ASSERT(cp + len <= buff + buff_size); + memcpy(cp, copy->str, len); + cp+= len; + break; + case CACHE_VARSTR2: + /* Copy the significant part of the long varstring field */ + len= uint2korr(copy->str) + 2; + DBUG_ASSERT(cp + len <= buff + buff_size); + memcpy(cp, copy->str, len); + cp+= len; + break; + case CACHE_STRIPPED: { - switch (copy->type) { - case CACHE_VARSTR1: - /* Copy the significant part of the short varstring field */ - len= (uint) copy->str[0] + 1; - DBUG_ASSERT(cp + len <= buff + buff_size); - memcpy(cp, copy->str, len); - cp+= len; - break; - case CACHE_VARSTR2: - /* Copy the significant part of the long varstring field */ - len= uint2korr(copy->str) + 2; - DBUG_ASSERT(cp + len <= buff + buff_size); - memcpy(cp, copy->str, len); - cp+= len; - break; - case CACHE_STRIPPED: + /* + Put down the field value stripping all trailing spaces off. + After this insert the length of the written sequence of bytes. + */ + uchar *str, *end; + for (str= copy->str, end= str+copy->length; + end > str && end[-1] == ' '; + end--) ; + len=(uint) (end-str); + DBUG_ASSERT(cp + len + 2 <= buff + buff_size); + int2store(cp, len); + memcpy(cp+2, str, len); + cp+= len+2; + break; + } + case CACHE_ROWID: + if (!copy->length) { - /* - Put down the field value stripping all trailing spaces off. - After this insert the length of the written sequence of bytes. - */ - uchar *str, *end; - for (str= copy->str, end= str+copy->length; - end > str && end[-1] == ' '; - end--) ; - len=(uint) (end-str); - DBUG_ASSERT(cp + len + 2 <= buff + buff_size); - int2store(cp, len); - memcpy(cp+2, str, len); - cp+= len+2; - break; - } - case CACHE_ROWID: - if (!copy->length) - { + /* + This may happen only for ROWID fields of materialized + derived tables and views. + */ + TABLE *table= (TABLE *) copy->str; + copy->str= table->file->ref; + copy->length= table->file->ref_length; + if (!copy->str) + { /* - This may happen only for ROWID fields of materialized - derived tables and views. - */ - TABLE *table= (TABLE *) copy->str; - copy->str= table->file->ref; - copy->length= table->file->ref_length; - if (!copy->str) - { - /* - If table is an empty inner table of an outer join and it is - a materialized derived table then table->file->ref == NULL. - */ - cp+= copy->length; - break; - } + If table is an empty inner table of an outer join and it is + a materialized derived table then table->file->ref == NULL. + */ + cp+= copy->length; + break; } - /* fall through */ - default: - /* Copy the entire image of the field from the record buffer */ - DBUG_ASSERT(cp + copy->length <= buff + buff_size); - if (copy->str) - memcpy(cp, copy->str, copy->length); - cp+= copy->length; } + /* fall through */ + default: + /* Copy the entire image of the field from the record buffer */ + DBUG_ASSERT(cp + copy->length <= buff + buff_size); + if (copy->str) + memcpy(cp, copy->str, copy->length); + cp+= copy->length; } } @@ -1717,7 +1715,7 @@ uint JOIN_CACHE::aux_buffer_incr(ulong recno) The function reads all flag and data fields of a record from the join buffer into the corresponding record buffers. The fields are read starting from the position 'pos' which is - supposed to point to the beginning og the first record field. + supposed to point to the beginning of the first record field. The function increments the value of 'pos' by the length of the read data. @@ -1808,60 +1806,58 @@ uint JOIN_CACHE::read_flag_fields() uint JOIN_CACHE::read_record_field(CACHE_FIELD *copy, bool blob_in_rec_buff) { uint len; - /* Do not copy the field if its value is null */ + /* Do not copy the field if its value is null */ if (copy->field && copy->field->maybe_null() && copy->field->is_null()) - return 0; - if (copy->type == CACHE_BLOB) - { - Field_blob *blob_field= (Field_blob *) copy->field; - /* - Copy the length and the pointer to data but not the blob data - itself to the record buffer - */ - if (blob_in_rec_buff) + return 0; + switch (copy->type) { + case CACHE_BLOB: { - blob_field->set_image(pos, copy->length+sizeof(char*), - blob_field->charset()); - len= copy->length+sizeof(char*); - } - else - { - blob_field->set_ptr(pos, pos+copy->length); - len= copy->length+blob_field->get_length(); - } - } - else - { - switch (copy->type) { - case CACHE_VARSTR1: - /* Copy the significant part of the short varstring field */ - len= (uint) pos[0] + 1; - memcpy(copy->str, pos, len); - break; - case CACHE_VARSTR2: - /* Copy the significant part of the long varstring field */ - len= uint2korr(pos) + 2; - memcpy(copy->str, pos, len); - break; - case CACHE_STRIPPED: - /* Pad the value by spaces that has been stripped off */ - len= uint2korr(pos); - memcpy(copy->str, pos+2, len); - memset(copy->str+len, ' ', copy->length-len); - len+= 2; - break; - case CACHE_ROWID: - if (!copy->str) + Field_blob *blob_field= (Field_blob *) copy->field; + /* + Copy the length and the pointer to data but not the blob data + itself to the record buffer + */ + if (blob_in_rec_buff) { - len= copy->length; - break; + blob_field->set_image(pos, copy->length + sizeof(char*), + blob_field->charset()); + len= copy->length + sizeof(char*); + } + else + { + blob_field->set_ptr(pos, pos+copy->length); + len= copy->length + blob_field->get_length(); } - /* fall through */ - default: - /* Copy the entire image of the field from the record buffer */ - len= copy->length; - memcpy(copy->str, pos, len); } + break; + case CACHE_VARSTR1: + /* Copy the significant part of the short varstring field */ + len= (uint) pos[0] + 1; + memcpy(copy->str, pos, len); + break; + case CACHE_VARSTR2: + /* Copy the significant part of the long varstring field */ + len= uint2korr(pos) + 2; + memcpy(copy->str, pos, len); + break; + case CACHE_STRIPPED: + /* Pad the value by spaces that has been stripped off */ + len= uint2korr(pos); + memcpy(copy->str, pos+2, len); + memset(copy->str+len, ' ', copy->length-len); + len+= 2; + break; + case CACHE_ROWID: + if (!copy->str) + { + len= copy->length; + break; + } + /* fall through */ + default: + /* Copy the entire image of the field from the record buffer */ + len= copy->length; + memcpy(copy->str, pos, len); } pos+= len; return len; @@ -2718,7 +2714,7 @@ int JOIN_CACHE_HASHED::init(bool for_explain) data_fields_offset+= copy->length; } - DBUG_RETURN(rc); + DBUG_RETURN(0); } @@ -3927,9 +3923,9 @@ static void bka_range_seq_key_info(void *init_params, uint *length, key_part_map *map) { -TABLE_REF *ref= &(((JOIN_CACHE*)init_params)->join_tab->ref); -*length= ref->key_length; -*map= (key_part_map(1) << ref->key_parts) - 1; + TABLE_REF *ref= &(((JOIN_CACHE*)init_params)->join_tab->ref); + *length= ref->key_length; + *map= (key_part_map(1) << ref->key_parts) - 1; } @@ -3957,10 +3953,10 @@ RETURN VALUE static range_seq_t bka_range_seq_init(void *init_param, uint n_ranges, uint flags) { -DBUG_ENTER("bka_range_seq_init"); -JOIN_CACHE_BKA *cache= (JOIN_CACHE_BKA *) init_param; -cache->reset(0); -DBUG_RETURN((range_seq_t) init_param); + DBUG_ENTER("bka_range_seq_init"); + JOIN_CACHE_BKA *cache= (JOIN_CACHE_BKA *) init_param; + cache->reset(0); + DBUG_RETURN((range_seq_t) init_param); } @@ -3988,21 +3984,21 @@ RETURN VALUE static bool bka_range_seq_next(range_seq_t rseq, KEY_MULTI_RANGE *range) { -DBUG_ENTER("bka_range_seq_next"); -JOIN_CACHE_BKA *cache= (JOIN_CACHE_BKA *) rseq; -TABLE_REF *ref= &cache->join_tab->ref; -key_range *start_key= &range->start_key; -if ((start_key->length= cache->get_next_key((uchar **) &start_key->key))) -{ - start_key->keypart_map= (1 << ref->key_parts) - 1; - start_key->flag= HA_READ_KEY_EXACT; - range->end_key= *start_key; - range->end_key.flag= HA_READ_AFTER_KEY; - range->ptr= (char *) cache->get_curr_rec(); - range->range_flag= EQ_RANGE; - DBUG_RETURN(0); -} -DBUG_RETURN(1); + DBUG_ENTER("bka_range_seq_next"); + JOIN_CACHE_BKA *cache= (JOIN_CACHE_BKA *) rseq; + TABLE_REF *ref= &cache->join_tab->ref; + key_range *start_key= &range->start_key; + if ((start_key->length= cache->get_next_key((uchar **) &start_key->key))) + { + start_key->keypart_map= (1 << ref->key_parts) - 1; + start_key->flag= HA_READ_KEY_EXACT; + range->end_key= *start_key; + range->end_key.flag= HA_READ_AFTER_KEY; + range->ptr= (char *) cache->get_curr_rec(); + range->range_flag= EQ_RANGE; + DBUG_RETURN(0); + } + DBUG_RETURN(1); } @@ -4034,11 +4030,11 @@ RETURN VALUE static bool bka_range_seq_skip_record(range_seq_t rseq, range_id_t range_info, uchar *rowid) { -DBUG_ENTER("bka_range_seq_skip_record"); -JOIN_CACHE_BKA *cache= (JOIN_CACHE_BKA *) rseq; -bool res= cache->get_match_flag_by_pos((uchar *) range_info) == - JOIN_CACHE::MATCH_FOUND; -DBUG_RETURN(res); + DBUG_ENTER("bka_range_seq_skip_record"); + JOIN_CACHE_BKA *cache= (JOIN_CACHE_BKA *) rseq; + bool res= cache->get_match_flag_by_pos((uchar *) range_info) == + JOIN_CACHE::MATCH_FOUND; + DBUG_RETURN(res); } @@ -4065,14 +4061,14 @@ RETURN VALUE static bool bka_skip_index_tuple(range_seq_t rseq, range_id_t range_info) { -DBUG_ENTER("bka_skip_index_tuple"); -JOIN_CACHE_BKA *cache= (JOIN_CACHE_BKA *) rseq; -THD *thd= cache->thd(); -bool res; -status_var_increment(thd->status_var.ha_icp_attempts); -if (!(res= cache->skip_index_tuple(range_info))) - status_var_increment(thd->status_var.ha_icp_match); -DBUG_RETURN(res); + DBUG_ENTER("bka_skip_index_tuple"); + JOIN_CACHE_BKA *cache= (JOIN_CACHE_BKA *) rseq; + THD *thd= cache->thd(); + bool res; + status_var_increment(thd->status_var.ha_icp_attempts); + if (!(res= cache->skip_index_tuple(range_info))) + status_var_increment(thd->status_var.ha_icp_match); + DBUG_RETURN(res); } @@ -4101,10 +4097,10 @@ RETURN VALUE bool JOIN_CACHE_BKA::prepare_look_for_matches(bool skip_last) { -if (!records) - return TRUE; -rem_records= 1; -return FALSE; + if (!records) + return TRUE; + rem_records= 1; + return FALSE; } @@ -4133,11 +4129,11 @@ RETURN VALUE uchar *JOIN_CACHE_BKA::get_next_candidate_for_match() { -if (!rem_records) - return 0; -rem_records--; -return curr_association; -} + if (!rem_records) + return 0; + rem_records--; + return curr_association; +} /* @@ -4161,8 +4157,8 @@ RETURN VALUE bool JOIN_CACHE_BKA::skip_next_candidate_for_match(uchar *rec_ptr) { -return join_tab->check_only_first_match() && - (get_match_flag_by_pos(rec_ptr) == MATCH_FOUND); + return join_tab->check_only_first_match() && + (get_match_flag_by_pos(rec_ptr) == MATCH_FOUND); } @@ -4189,8 +4185,8 @@ RETURN VALUE void JOIN_CACHE_BKA::read_next_candidate_for_match(uchar *rec_ptr) { -get_record_by_pos(rec_ptr); -} + get_record_by_pos(rec_ptr); +} /* @@ -4216,30 +4212,29 @@ RETURN VALUE int JOIN_CACHE_BKA::init(bool for_explain) { -int res; -bool check_only_first_match= join_tab->check_only_first_match(); + int res; + bool check_only_first_match= join_tab->check_only_first_match(); -RANGE_SEQ_IF rs_funcs= { bka_range_seq_key_info, - bka_range_seq_init, - bka_range_seq_next, - check_only_first_match ? - bka_range_seq_skip_record : 0, - bka_skip_index_tuple }; + RANGE_SEQ_IF rs_funcs= { bka_range_seq_key_info, + bka_range_seq_init, + bka_range_seq_next, + check_only_first_match ? bka_range_seq_skip_record : 0, + bka_skip_index_tuple }; -DBUG_ENTER("JOIN_CACHE_BKA::init"); + DBUG_ENTER("JOIN_CACHE_BKA::init"); -JOIN_TAB_SCAN_MRR *jsm; -if (!(join_tab_scan= jsm= new JOIN_TAB_SCAN_MRR(join, join_tab, - mrr_mode, rs_funcs))) - DBUG_RETURN(1); + JOIN_TAB_SCAN_MRR *jsm; + if (!(join_tab_scan= jsm= new JOIN_TAB_SCAN_MRR(join, join_tab, + mrr_mode, rs_funcs))) + DBUG_RETURN(1); -if ((res= JOIN_CACHE::init(for_explain))) - DBUG_RETURN(res); + if ((res= JOIN_CACHE::init(for_explain))) + DBUG_RETURN(res); -if (use_emb_key) - jsm->mrr_mode |= HA_MRR_MATERIALIZED_KEYS; + if (use_emb_key) + jsm->mrr_mode |= HA_MRR_MATERIALIZED_KEYS; -DBUG_RETURN(0); + DBUG_RETURN(0); } @@ -4278,96 +4273,96 @@ RETURN VALUE uint JOIN_CACHE_BKA::get_next_key(uchar ** key) { -uint len; -uint32 rec_len; -uchar *init_pos; -JOIN_CACHE *cache; + uint len; + uint32 rec_len; + uchar *init_pos; + JOIN_CACHE *cache; start: -/* Any record in a BKA cache is prepended with its length */ -DBUG_ASSERT(with_length); - -if ((pos+size_of_rec_len) > last_rec_pos || !records) - return 0; + /* Any record in a BKA cache is prepended with its length */ + DBUG_ASSERT(with_length); -/* Read the length of the record */ -rec_len= get_rec_length(pos); -pos+= size_of_rec_len; -init_pos= pos; + if ((pos+size_of_rec_len) > last_rec_pos || !records) + return 0; -/* Read a reference to the previous cache if any */ -if (prev_cache) - pos+= prev_cache->get_size_of_rec_offset(); + /* Read the length of the record */ + rec_len= get_rec_length(pos); + pos+= size_of_rec_len; + init_pos= pos; -curr_rec_pos= pos; + /* Read a reference to the previous cache if any */ + if (prev_cache) + pos+= prev_cache->get_size_of_rec_offset(); -/* Read all flag fields of the record */ -read_flag_fields(); + curr_rec_pos= pos; -if (with_match_flag && - (Match_flag) curr_rec_pos[0] == MATCH_IMPOSSIBLE ) -{ - pos= init_pos+rec_len; - goto start; -} + /* Read all flag fields of the record */ + read_flag_fields(); -if (use_emb_key) -{ - /* An embedded key is taken directly from the join buffer */ - *key= pos; - len= emb_key_length; -} -else -{ - /* Read key arguments from previous caches if there are any such fields */ - if (external_key_arg_fields) + if (with_match_flag && + (Match_flag) curr_rec_pos[0] == MATCH_IMPOSSIBLE ) { - uchar *rec_ptr= curr_rec_pos; - uint key_arg_count= external_key_arg_fields; - CACHE_FIELD **copy_ptr= blob_ptr-key_arg_count; - for (cache= prev_cache; key_arg_count; cache= cache->prev_cache) - { - uint len= 0; - DBUG_ASSERT(cache); - rec_ptr= cache->get_rec_ref(rec_ptr); - while (!cache->referenced_fields) + pos= init_pos+rec_len; + goto start; + } + + if (use_emb_key) + { + /* An embedded key is taken directly from the join buffer */ + *key= pos; + len= emb_key_length; + } + else + { + /* Read key arguments from previous caches if there are any such fields */ + if (external_key_arg_fields) + { + uchar *rec_ptr= curr_rec_pos; + uint key_arg_count= external_key_arg_fields; + CACHE_FIELD **copy_ptr= blob_ptr-key_arg_count; + for (cache= prev_cache; key_arg_count; cache= cache->prev_cache) { - cache= cache->prev_cache; + uint len= 0; DBUG_ASSERT(cache); rec_ptr= cache->get_rec_ref(rec_ptr); - } - while (key_arg_count && - cache->read_referenced_field(*copy_ptr, rec_ptr, &len)) - { - copy_ptr++; - --key_arg_count; + while (!cache->referenced_fields) + { + cache= cache->prev_cache; + DBUG_ASSERT(cache); + rec_ptr= cache->get_rec_ref(rec_ptr); + } + while (key_arg_count && + cache->read_referenced_field(*copy_ptr, rec_ptr, &len)) + { + copy_ptr++; + --key_arg_count; + } } } + + /* + Read the other key arguments from the current record. The fields for + these arguments are always first in the sequence of the record's fields. + */ + CACHE_FIELD *copy= field_descr+flag_fields; + CACHE_FIELD *copy_end= copy+local_key_arg_fields; + bool blob_in_rec_buff= blob_data_is_in_rec_buff(curr_rec_pos); + for ( ; copy < copy_end; copy++) + read_record_field(copy, blob_in_rec_buff); + + /* Build the key over the fields read into the record buffers */ + TABLE_REF *ref= &join_tab->ref; + cp_buffer_from_ref(join->thd, join_tab->table, ref); + *key= ref->key_buff; + len= ref->key_length; } - - /* - Read the other key arguments from the current record. The fields for - these arguments are always first in the sequence of the record's fields. - */ - CACHE_FIELD *copy= field_descr+flag_fields; - CACHE_FIELD *copy_end= copy+local_key_arg_fields; - bool blob_in_rec_buff= blob_data_is_in_rec_buff(curr_rec_pos); - for ( ; copy < copy_end; copy++) - read_record_field(copy, blob_in_rec_buff); - - /* Build the key over the fields read into the record buffers */ - TABLE_REF *ref= &join_tab->ref; - cp_buffer_from_ref(join->thd, join_tab->table, ref); - *key= ref->key_buff; - len= ref->key_length; + + pos= init_pos+rec_len; + + return len; } -pos= init_pos+rec_len; - -return len; -} - /* Check the index condition of the joined table for a record from the BKA cache @@ -4407,9 +4402,9 @@ RETURN VALUE bool JOIN_CACHE_BKA::skip_index_tuple(range_id_t range_info) { -DBUG_ENTER("JOIN_CACHE_BKA::skip_index_tuple"); -get_record_by_pos((uchar*)range_info); -DBUG_RETURN(!join_tab->cache_idx_cond->val_int()); + DBUG_ENTER("JOIN_CACHE_BKA::skip_index_tuple"); + get_record_by_pos((uchar*)range_info); + DBUG_RETURN(!join_tab->cache_idx_cond->val_int()); } @@ -4439,10 +4434,10 @@ RETURN VALUE static range_seq_t bkah_range_seq_init(void *init_param, uint n_ranges, uint flags) { -DBUG_ENTER("bkah_range_seq_init"); -JOIN_CACHE_BKAH *cache= (JOIN_CACHE_BKAH *) init_param; -cache->reset(0); -DBUG_RETURN((range_seq_t) init_param); + DBUG_ENTER("bkah_range_seq_init"); + JOIN_CACHE_BKAH *cache= (JOIN_CACHE_BKAH *) init_param; + cache->reset(0); + DBUG_RETURN((range_seq_t) init_param); } @@ -4467,24 +4462,24 @@ RETURN VALUE TRUE no more ranges */ -static +static bool bkah_range_seq_next(range_seq_t rseq, KEY_MULTI_RANGE *range) { -DBUG_ENTER("bkah_range_seq_next"); -JOIN_CACHE_BKAH *cache= (JOIN_CACHE_BKAH *) rseq; -TABLE_REF *ref= &cache->join_tab->ref; -key_range *start_key= &range->start_key; -if ((start_key->length= cache->get_next_key((uchar **) &start_key->key))) -{ - start_key->keypart_map= (1 << ref->key_parts) - 1; - start_key->flag= HA_READ_KEY_EXACT; - range->end_key= *start_key; - range->end_key.flag= HA_READ_AFTER_KEY; - range->ptr= (char *) cache->get_curr_key_chain(); - range->range_flag= EQ_RANGE; - DBUG_RETURN(0); -} -DBUG_RETURN(1); + DBUG_ENTER("bkah_range_seq_next"); + JOIN_CACHE_BKAH *cache= (JOIN_CACHE_BKAH *) rseq; + TABLE_REF *ref= &cache->join_tab->ref; + key_range *start_key= &range->start_key; + if ((start_key->length= cache->get_next_key((uchar **) &start_key->key))) + { + start_key->keypart_map= (1 << ref->key_parts) - 1; + start_key->flag= HA_READ_KEY_EXACT; + range->end_key= *start_key; + range->end_key.flag= HA_READ_AFTER_KEY; + range->ptr= (char *) cache->get_curr_key_chain(); + range->range_flag= EQ_RANGE; + DBUG_RETURN(0); + } + DBUG_RETURN(1); } @@ -4512,14 +4507,13 @@ RETURN VALUE 0 the record is to be left in the stream */ -static -bool bkah_range_seq_skip_record(range_seq_t rseq, range_id_t range_info, - uchar *rowid) +static +bool bkah_range_seq_skip_record(range_seq_t rseq, range_id_t range_info, uchar *rowid) { -DBUG_ENTER("bkah_range_seq_skip_record"); -JOIN_CACHE_BKAH *cache= (JOIN_CACHE_BKAH *) rseq; -bool res= cache->check_all_match_flags_for_key((uchar *) range_info); -DBUG_RETURN(res); + DBUG_ENTER("bkah_range_seq_skip_record"); + JOIN_CACHE_BKAH *cache= (JOIN_CACHE_BKAH *) rseq; + bool res= cache->check_all_match_flags_for_key((uchar *) range_info); + DBUG_RETURN(res); } @@ -4546,14 +4540,14 @@ RETURN VALUE static bool bkah_skip_index_tuple(range_seq_t rseq, range_id_t range_info) { -DBUG_ENTER("bka_unique_skip_index_tuple"); -JOIN_CACHE_BKAH *cache= (JOIN_CACHE_BKAH *) rseq; -THD *thd= cache->thd(); -bool res; -status_var_increment(thd->status_var.ha_icp_attempts); -if (!(res= cache->skip_index_tuple(range_info))) - status_var_increment(thd->status_var.ha_icp_match); -DBUG_RETURN(res); + DBUG_ENTER("bka_unique_skip_index_tuple"); + JOIN_CACHE_BKAH *cache= (JOIN_CACHE_BKAH *) rseq; + THD *thd= cache->thd(); + bool res; + status_var_increment(thd->status_var.ha_icp_attempts); + if (!(res= cache->skip_index_tuple(range_info))) + status_var_increment(thd->status_var.ha_icp_match); + DBUG_RETURN(res); } @@ -4581,8 +4575,8 @@ RETURN VALUE bool JOIN_CACHE_BKAH::prepare_look_for_matches(bool skip_last) { -last_matching_rec_ref_ptr= next_matching_rec_ref_ptr= 0; -if (no_association && + last_matching_rec_ref_ptr= next_matching_rec_ref_ptr= 0; + if (no_association && !(curr_matching_chain= get_matching_chain_by_join_key())) //psergey: added '!' return 1; last_matching_rec_ref_ptr= get_next_rec_ref(curr_matching_chain); diff --git a/sql/sql_select.cc b/sql/sql_select.cc index ceb48616f96..7e642b519c6 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -10752,6 +10752,7 @@ uint check_join_cache_usage(JOIN_TAB *tab, uint bufsz= 4096; JOIN_CACHE *prev_cache=0; JOIN *join= tab->join; + MEM_ROOT *root= join->thd->mem_root; uint cache_level= tab->used_join_cache_level; bool force_unlinked_cache= !(join->allowed_join_cache_types & JOIN_CACHE_INCREMENTAL_BIT); @@ -10871,7 +10872,7 @@ uint check_join_cache_usage(JOIN_TAB *tab, case JT_ALL: if (cache_level == 1) prev_cache= 0; - if ((tab->cache= new JOIN_CACHE_BNL(join, tab, prev_cache)) && + if ((tab->cache= new (root) JOIN_CACHE_BNL(join, tab, prev_cache)) && !tab->cache->init(options & SELECT_DESCRIBE)) { tab->icp_other_tables_ok= FALSE; @@ -10906,7 +10907,7 @@ uint check_join_cache_usage(JOIN_TAB *tab, goto no_join_cache; if (cache_level == 3) prev_cache= 0; - if ((tab->cache= new JOIN_CACHE_BNLH(join, tab, prev_cache)) && + if ((tab->cache= new (root) JOIN_CACHE_BNLH(join, tab, prev_cache)) && !tab->cache->init(options & SELECT_DESCRIBE)) { tab->icp_other_tables_ok= FALSE; @@ -10927,7 +10928,7 @@ uint check_join_cache_usage(JOIN_TAB *tab, { if (cache_level == 5) prev_cache= 0; - if ((tab->cache= new JOIN_CACHE_BKA(join, tab, flags, prev_cache)) && + if ((tab->cache= new (root) JOIN_CACHE_BKA(join, tab, flags, prev_cache)) && !tab->cache->init(options & SELECT_DESCRIBE)) return (6 - MY_TEST(!prev_cache)); goto no_join_cache; @@ -10936,10 +10937,10 @@ uint check_join_cache_usage(JOIN_TAB *tab, { if (cache_level == 7) prev_cache= 0; - if ((tab->cache= new JOIN_CACHE_BKAH(join, tab, flags, prev_cache)) && + if ((tab->cache= new (root) JOIN_CACHE_BKAH(join, tab, flags, prev_cache)) && !tab->cache->init(options & SELECT_DESCRIBE)) { - tab->idx_cond_fact_out= FALSE; + tab->idx_cond_fact_out= FALSE; return (8 - MY_TEST(!prev_cache)); } goto no_join_cache; From 0254f1a6e0e1dbf4fd524d9e2bfd0c1005e16139 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 2 Feb 2017 15:49:31 +0100 Subject: [PATCH 201/258] bugfix: TABLE::mark_columns_used_by_index Do *not* modify write_set. keyread only affects what columns are *read*, UPDATE statement can *write* into columns that aren't part of the keyread. --- sql/table.cc | 2 +- sql/table.h | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sql/table.cc b/sql/table.cc index b513fb33cde..58478daa0bf 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6088,7 +6088,7 @@ void TABLE::mark_columns_used_by_index(uint index) file->ha_start_keyread(); bitmap_clear_all(bitmap); mark_columns_used_by_index_no_reset(index, bitmap); - column_bitmaps_set(bitmap, bitmap); + column_bitmaps_set(bitmap); DBUG_VOID_RETURN; } diff --git a/sql/table.h b/sql/table.h index 9b171ef0674..b12b5919d55 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1321,6 +1321,12 @@ public: void mark_columns_used_by_check_constraints(void); void mark_check_constraint_columns_for_read(void); int verify_constraints(bool ignore_failure); + inline void column_bitmaps_set(MY_BITMAP *read_set_arg) + { + read_set= read_set_arg; + if (file) + file->column_bitmaps_signal(); + } inline void column_bitmaps_set(MY_BITMAP *read_set_arg, MY_BITMAP *write_set_arg) { From bf8f70a47c0fb606b52ecea94dd450b22cd02098 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 1 Feb 2017 17:20:35 +0100 Subject: [PATCH 202/258] cleanup: mark_columns_used_by_index_no_reset in opt_range.cc use table->mark_columns_used_by_index, don't copy it --- sql/opt_range.cc | 10 ++-------- sql/table.cc | 11 +++++------ sql/table.h | 4 +++- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/sql/opt_range.cc b/sql/opt_range.cc index d41c4a45276..58c6d8d0b2d 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -1488,7 +1488,6 @@ int QUICK_RANGE_SELECT::init_ror_merged_scan(bool reuse_handler, { DBUG_RETURN(1); } - head->column_bitmaps_set(&column_bitmap, &column_bitmap, &column_bitmap); goto end; } @@ -1513,8 +1512,6 @@ int QUICK_RANGE_SELECT::init_ror_merged_scan(bool reuse_handler, goto failure; /* purecov: inspected */ } - head->column_bitmaps_set(&column_bitmap, &column_bitmap, &column_bitmap); - if (file->ha_external_lock(thd, F_RDLCK)) goto failure; @@ -1528,7 +1525,6 @@ int QUICK_RANGE_SELECT::init_ror_merged_scan(bool reuse_handler, last_rowid= file->ref; end: - DBUG_ASSERT(head->read_set == &column_bitmap); /* We are only going to read key fields and call position() on 'file' The following sets head->read_set (== column_bitmap) to only use this @@ -1536,11 +1532,9 @@ end: */ org_file= head->file; head->file= file; - head->mark_columns_used_by_index_no_reset(index, &column_bitmap); - - if (!head->no_keyread) - head->file->ha_start_keyread(); + head->column_bitmaps_set_no_signal(&column_bitmap, &column_bitmap, &column_bitmap); + head->mark_columns_used_by_index_in_bitmap(index, &column_bitmap); head->prepare_for_position(); head->file= org_file; diff --git a/sql/table.cc b/sql/table.cc index 58478daa0bf..8290d3d9ea5 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6080,12 +6080,12 @@ void TABLE::prepare_for_position() or TABLE::restore_column_maps_after_mark_index() */ -void TABLE::mark_columns_used_by_index(uint index) +void TABLE::mark_columns_used_by_index_in_bitmap(uint index, MY_BITMAP *bitmap) { - MY_BITMAP *bitmap= &tmp_set; - DBUG_ENTER("TABLE::mark_columns_used_by_index"); + DBUG_ENTER("TABLE::mark_columns_used_by_index_in_bitmap"); - file->ha_start_keyread(); + if (!no_keyread) + file->ha_start_keyread(); bitmap_clear_all(bitmap); mark_columns_used_by_index_no_reset(index, bitmap); column_bitmaps_set(bitmap); @@ -6140,8 +6140,7 @@ void TABLE::restore_column_maps_after_mark_index() mark columns used by key, but don't reset other fields */ -void TABLE::mark_columns_used_by_index_no_reset(uint index, - MY_BITMAP *bitmap) +void TABLE::mark_columns_used_by_index_no_reset(uint index, MY_BITMAP *bitmap) { KEY_PART_INFO *key_part= key_info[index].key_part; KEY_PART_INFO *key_part_end= (key_part + diff --git a/sql/table.h b/sql/table.h index b12b5919d55..6c29a9767fb 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1307,7 +1307,9 @@ public: void clear_column_bitmaps(void); void prepare_for_position(void); void mark_columns_used_by_index_no_reset(uint index, MY_BITMAP *map); - void mark_columns_used_by_index(uint index); + void mark_columns_used_by_index_in_bitmap(uint index, MY_BITMAP *map); + void mark_columns_used_by_index(uint index) + { mark_columns_used_by_index_in_bitmap(index, &tmp_set); } void add_read_columns_used_by_index(uint index); void restore_column_maps_after_mark_index(); void mark_auto_increment_column(void); From 4dd7e11332cab9eb07551062f3ba0f696d9602e3 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 1 Feb 2017 19:59:24 +0100 Subject: [PATCH 203/258] cleanup: mark_columns_used_by_index_no_reset in handler::get_auto_increment use table->mark_columns_used_by_index, don't copy it --- sql/handler.cc | 8 +++----- sql/table.cc | 12 ++++++------ sql/table.h | 8 ++++---- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/sql/handler.cc b/sql/handler.cc index 2aa905f70f6..d32b13ef5fb 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -3222,11 +3222,9 @@ void handler::get_auto_increment(ulonglong offset, ulonglong increment, { ulonglong nr; int error; + MY_BITMAP *old_read_set; - (void) extra(HA_EXTRA_KEYREAD); - table->mark_columns_used_by_index_no_reset(table->s->next_number_index, - table->read_set); - column_bitmaps_signal(); + old_read_set= table->mark_columns_used_by_index(table->s->next_number_index); if (ha_index_init(table->s->next_number_index, 1)) { @@ -3278,7 +3276,7 @@ void handler::get_auto_increment(ulonglong offset, ulonglong increment, nr= ((ulonglong) table->next_number_field-> val_int_offset(table->s->rec_buff_length)+1); ha_index_end(); - (void) extra(HA_EXTRA_NO_KEYREAD); + table->restore_column_maps_after_mark_index(old_read_set); *first_value= nr; return; } diff --git a/sql/table.cc b/sql/table.cc index 8290d3d9ea5..16396b70d6b 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6080,16 +6080,17 @@ void TABLE::prepare_for_position() or TABLE::restore_column_maps_after_mark_index() */ -void TABLE::mark_columns_used_by_index_in_bitmap(uint index, MY_BITMAP *bitmap) +MY_BITMAP *TABLE::mark_columns_used_by_index_in_bitmap(uint index, + MY_BITMAP *bitmap) { + MY_BITMAP *backup= read_set; DBUG_ENTER("TABLE::mark_columns_used_by_index_in_bitmap"); - if (!no_keyread) file->ha_start_keyread(); bitmap_clear_all(bitmap); mark_columns_used_by_index_no_reset(index, bitmap); column_bitmaps_set(bitmap); - DBUG_VOID_RETURN; + DBUG_RETURN(backup); } @@ -6125,12 +6126,11 @@ void TABLE::add_read_columns_used_by_index(uint index) when calling mark_columns_used_by_index */ -void TABLE::restore_column_maps_after_mark_index() +void TABLE::restore_column_maps_after_mark_index(MY_BITMAP *backup) { DBUG_ENTER("TABLE::restore_column_maps_after_mark_index"); - file->ha_end_keyread(); - default_column_bitmaps(); + read_set= backup; file->column_bitmaps_signal(); DBUG_VOID_RETURN; } diff --git a/sql/table.h b/sql/table.h index 6c29a9767fb..845c94b11c4 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1307,11 +1307,11 @@ public: void clear_column_bitmaps(void); void prepare_for_position(void); void mark_columns_used_by_index_no_reset(uint index, MY_BITMAP *map); - void mark_columns_used_by_index_in_bitmap(uint index, MY_BITMAP *map); - void mark_columns_used_by_index(uint index) - { mark_columns_used_by_index_in_bitmap(index, &tmp_set); } + MY_BITMAP *mark_columns_used_by_index_in_bitmap(uint index, MY_BITMAP *map); + MY_BITMAP *mark_columns_used_by_index(uint index) + { return mark_columns_used_by_index_in_bitmap(index, &tmp_set); } void add_read_columns_used_by_index(uint index); - void restore_column_maps_after_mark_index(); + void restore_column_maps_after_mark_index(MY_BITMAP *backup); void mark_auto_increment_column(void); void mark_columns_needed_for_update(void); void mark_columns_needed_for_delete(void); From 9fa6589f64654642543c88a53dfba8c4ef5a215e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 2 Feb 2017 19:15:11 +0100 Subject: [PATCH 204/258] bugfix: TABLE::mark_columns_used_by_index_no_reset it should not mark base columns that a vcol depends on, because keyread (on a vcol) will not read them --- sql/table.cc | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sql/table.cc b/sql/table.cc index 16396b70d6b..078ba5b075b 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6146,13 +6146,7 @@ void TABLE::mark_columns_used_by_index_no_reset(uint index, MY_BITMAP *bitmap) KEY_PART_INFO *key_part_end= (key_part + key_info[index].user_defined_key_parts); for (;key_part != key_part_end; key_part++) - { bitmap_set_bit(bitmap, key_part->fieldnr-1); - if (key_part->field->vcol_info && - key_part->field->vcol_info->expr) - key_part->field->vcol_info-> - expr->walk(&Item::register_field_in_bitmap, 1, bitmap); - } } From 3cae225b0ff8751a5708bfe4ab0cf52b1badc37e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 1 Feb 2017 18:00:16 +0100 Subject: [PATCH 205/258] cleanup: remove TABLE::add_read_columns_used_by_index TABLE::add_read_columns_used_by_index() is conceptually wrong, it *adds* columns used by index to the bitmap, without clearing it first. But it also enables keyread, meaning that *only* columns from the index will be read. It is supposed to be used to add columns used by an index to a bitmap that already has columns of a primary key - for engines where a primary key is part of every index. The correct fix is to change mark_columns_used_by_index() to take into account extended keys. this reverts 1d0acc7754a44613d2ad and cf97cbd1db762c443aa3 --- sql/key.cc | 12 +----------- sql/sql_update.cc | 2 +- sql/table.cc | 28 ++++------------------------ sql/table.h | 1 - 4 files changed, 6 insertions(+), 37 deletions(-) diff --git a/sql/key.cc b/sql/key.cc index 31b65adabe9..3bb009fcac9 100644 --- a/sql/key.cc +++ b/sql/key.cc @@ -467,17 +467,7 @@ bool is_key_used(TABLE *table, uint idx, const MY_BITMAP *fields) { bitmap_clear_all(&table->tmp_set); table->mark_columns_used_by_index_no_reset(idx, &table->tmp_set); - if (bitmap_is_overlapping(&table->tmp_set, fields)) - return 1; - - /* - If table handler has primary key as part of the index, check that primary - key is not updated - */ - if (idx != table->s->primary_key && table->s->primary_key < MAX_KEY && - (table->file->ha_table_flags() & HA_PRIMARY_KEY_IN_READ_INDEX)) - return is_key_used(table, table->s->primary_key, fields); - return 0; + return bitmap_is_overlapping(&table->tmp_set, fields); } diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 4aa68c51b3e..a74a4c2b761 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -539,7 +539,7 @@ int mysql_update(THD *thd, MY_BITMAP *save_write_set= table->write_set; if (query_plan.index < MAX_KEY && old_covering_keys.is_set(query_plan.index)) - table->add_read_columns_used_by_index(query_plan.index); + table->mark_columns_used_by_index(query_plan.index); else table->use_all_columns(); diff --git a/sql/table.cc b/sql/table.cc index 078ba5b075b..5b491e3e892 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6093,28 +6093,6 @@ MY_BITMAP *TABLE::mark_columns_used_by_index_in_bitmap(uint index, DBUG_RETURN(backup); } - -/* - Add fields used by a specified index to the table's read_set. - - NOTE: - The original state can be restored with - restore_column_maps_after_mark_index(). -*/ - -void TABLE::add_read_columns_used_by_index(uint index) -{ - MY_BITMAP *bitmap= &tmp_set; - DBUG_ENTER("TABLE::add_read_columns_used_by_index"); - - file->ha_start_keyread(); - bitmap_copy(bitmap, read_set); - mark_columns_used_by_index_no_reset(index, bitmap); - column_bitmaps_set(bitmap, write_set); - DBUG_VOID_RETURN; -} - - /* Restore to use normal column maps after key read @@ -6143,10 +6121,12 @@ void TABLE::restore_column_maps_after_mark_index(MY_BITMAP *backup) void TABLE::mark_columns_used_by_index_no_reset(uint index, MY_BITMAP *bitmap) { KEY_PART_INFO *key_part= key_info[index].key_part; - KEY_PART_INFO *key_part_end= (key_part + - key_info[index].user_defined_key_parts); + KEY_PART_INFO *key_part_end= (key_part + key_info[index].user_defined_key_parts); for (;key_part != key_part_end; key_part++) bitmap_set_bit(bitmap, key_part->fieldnr-1); + if (file->ha_table_flags() & HA_PRIMARY_KEY_IN_READ_INDEX && + s->primary_key != MAX_KEY && s->primary_key != index) + mark_columns_used_by_index_no_reset(s->primary_key, bitmap); } diff --git a/sql/table.h b/sql/table.h index 845c94b11c4..61efea0c5b3 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1310,7 +1310,6 @@ public: MY_BITMAP *mark_columns_used_by_index_in_bitmap(uint index, MY_BITMAP *map); MY_BITMAP *mark_columns_used_by_index(uint index) { return mark_columns_used_by_index_in_bitmap(index, &tmp_set); } - void add_read_columns_used_by_index(uint index); void restore_column_maps_after_mark_index(MY_BITMAP *backup); void mark_auto_increment_column(void); void mark_columns_needed_for_update(void); From 460ff39871d6554ec17714a79a174cf8f80f7817 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 2 Feb 2017 12:44:01 +0100 Subject: [PATCH 206/258] bugfix: don't calculate vcols if doing keyread old code didn't calculate vcols that were part of keyread, but calculated other vcols. It was wrong - there was no guarantee that vcol's base columns were part of keyread. Technically it's possible for the vcol not be a part of keyread, but all its base columns being part of keyread. But currently the optimizer doesn't do that, keyread is only used if it covers all columns used in the query. This fixes crashes of vcol.vcol_trigger_sp_innodb --- sql/table.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/table.cc b/sql/table.cc index 5b491e3e892..c9b356bbbed 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -7308,6 +7308,9 @@ int TABLE::update_virtual_fields(handler *h, enum_vcol_update_mode update_mode) bool handler_pushed= 0; DBUG_ASSERT(vfield); + if (h->key_read) + DBUG_RETURN(0); + error= 0; in_use->set_n_backup_active_arena(expr_arena, &backup_arena); @@ -7332,7 +7335,6 @@ int TABLE::update_virtual_fields(handler *h, enum_vcol_update_mode update_mode) switch (update_mode) { case VCOL_UPDATE_FOR_READ: update= !vcol_info->stored_in_db - && !(h->key_read && vf->part_of_key.is_set(h->active_index)) && bitmap_is_set(vcol_set, vf->field_index); swap_values= 1; break; From e46c42217f4fc7ba43992ca54c039f2556d1859f Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 2 Feb 2017 00:47:07 +0100 Subject: [PATCH 207/258] cleanup: TABLE::mark_columns_used_by_index() mark_columns_used_by_index used to do reset + mark_columns_used_by_index_no_reset + start keyread + set bitmaps Now prepare_for_keyread does that, while mark_columns_used_by_index does only reset + mark_columns_used_by_index_no_reset, just as its name suggests. --- sql/handler.cc | 4 ++-- sql/key.cc | 3 +-- sql/opt_range.cc | 2 +- sql/sql_class.cc | 8 +++----- sql/sql_update.cc | 4 ++-- sql/table.cc | 34 ++++++++++++++++++---------------- sql/table.h | 9 +++++---- 7 files changed, 32 insertions(+), 32 deletions(-) diff --git a/sql/handler.cc b/sql/handler.cc index d32b13ef5fb..8781db30889 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -3224,7 +3224,7 @@ void handler::get_auto_increment(ulonglong offset, ulonglong increment, int error; MY_BITMAP *old_read_set; - old_read_set= table->mark_columns_used_by_index(table->s->next_number_index); + old_read_set= table->prepare_for_keyread(table->s->next_number_index); if (ha_index_init(table->s->next_number_index, 1)) { @@ -3276,7 +3276,7 @@ void handler::get_auto_increment(ulonglong offset, ulonglong increment, nr= ((ulonglong) table->next_number_field-> val_int_offset(table->s->rec_buff_length)+1); ha_index_end(); - table->restore_column_maps_after_mark_index(old_read_set); + table->restore_column_maps_after_keyread(old_read_set); *first_value= nr; return; } diff --git a/sql/key.cc b/sql/key.cc index 3bb009fcac9..bb10e902b8b 100644 --- a/sql/key.cc +++ b/sql/key.cc @@ -465,8 +465,7 @@ void key_unpack(String *to, TABLE *table, KEY *key) bool is_key_used(TABLE *table, uint idx, const MY_BITMAP *fields) { - bitmap_clear_all(&table->tmp_set); - table->mark_columns_used_by_index_no_reset(idx, &table->tmp_set); + table->mark_columns_used_by_index(idx, &table->tmp_set); return bitmap_is_overlapping(&table->tmp_set, fields); } diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 58c6d8d0b2d..f013f6ae254 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -1534,7 +1534,7 @@ end: head->file= file; head->column_bitmaps_set_no_signal(&column_bitmap, &column_bitmap, &column_bitmap); - head->mark_columns_used_by_index_in_bitmap(index, &column_bitmap); + head->prepare_for_keyread(index, &column_bitmap); head->prepare_for_position(); head->file= org_file; diff --git a/sql/sql_class.cc b/sql/sql_class.cc index f63ba4ed657..f042e6600e0 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -6489,21 +6489,19 @@ void THD::binlog_prepare_row_images(TABLE *table) */ DBUG_ASSERT(table->read_set != &table->tmp_set); - bitmap_clear_all(&table->tmp_set); - switch(thd->variables.binlog_row_image) { case BINLOG_ROW_IMAGE_MINIMAL: /* MINIMAL: Mark only PK */ - table->mark_columns_used_by_index_no_reset(table->s->primary_key, - &table->tmp_set); + table->mark_columns_used_by_index(table->s->primary_key, + &table->tmp_set); break; case BINLOG_ROW_IMAGE_NOBLOB: /** NOBLOB: Remove unnecessary BLOB fields from read_set (the ones that are not part of PK). */ - bitmap_union(&table->tmp_set, table->read_set); + bitmap_copy(&table->tmp_set, table->read_set); for (Field **ptr=table->field ; *ptr ; ptr++) { Field *field= (*ptr); diff --git a/sql/sql_update.cc b/sql/sql_update.cc index a74a4c2b761..9c0e9443b0d 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -191,7 +191,7 @@ static void prepare_record_for_error_message(int error, TABLE *table) /* Create unique_map with all fields used by that index. */ my_bitmap_init(&unique_map, unique_map_buf, table->s->fields, FALSE); - table->mark_columns_used_by_index_no_reset(keynr, &unique_map); + table->mark_columns_used_by_index(keynr, &unique_map); /* Subtract read_set and write_set. */ bitmap_subtract(&unique_map, table->read_set); @@ -539,7 +539,7 @@ int mysql_update(THD *thd, MY_BITMAP *save_write_set= table->write_set; if (query_plan.index < MAX_KEY && old_covering_keys.is_set(query_plan.index)) - table->mark_columns_used_by_index(query_plan.index); + table->prepare_for_keyread(query_plan.index); else table->use_all_columns(); diff --git a/sql/table.cc b/sql/table.cc index c9b356bbbed..093adf339b4 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6070,27 +6070,29 @@ void TABLE::prepare_for_position() } -/* - Mark that only fields from one key is used - - NOTE: - This changes the bitmap to use the tmp bitmap - After this, you can't access any other columns in the table until - bitmaps are reset, for example with TABLE::clear_column_bitmaps() - or TABLE::restore_column_maps_after_mark_index() -*/ - -MY_BITMAP *TABLE::mark_columns_used_by_index_in_bitmap(uint index, - MY_BITMAP *bitmap) +MY_BITMAP *TABLE::prepare_for_keyread(uint index, MY_BITMAP *map) { MY_BITMAP *backup= read_set; - DBUG_ENTER("TABLE::mark_columns_used_by_index_in_bitmap"); + DBUG_ENTER("TABLE::prepare_for_keyread"); if (!no_keyread) file->ha_start_keyread(); + mark_columns_used_by_index(index, map); + column_bitmaps_set(map); + DBUG_RETURN(backup); +} + + +/* + Mark that only fields from one key is used. Useful before keyread. +*/ + +void TABLE::mark_columns_used_by_index(uint index, MY_BITMAP *bitmap) +{ + DBUG_ENTER("TABLE::mark_columns_used_by_index"); + bitmap_clear_all(bitmap); mark_columns_used_by_index_no_reset(index, bitmap); - column_bitmaps_set(bitmap); - DBUG_RETURN(backup); + DBUG_VOID_RETURN; } /* @@ -6104,7 +6106,7 @@ MY_BITMAP *TABLE::mark_columns_used_by_index_in_bitmap(uint index, when calling mark_columns_used_by_index */ -void TABLE::restore_column_maps_after_mark_index(MY_BITMAP *backup) +void TABLE::restore_column_maps_after_keyread(MY_BITMAP *backup) { DBUG_ENTER("TABLE::restore_column_maps_after_mark_index"); file->ha_end_keyread(); diff --git a/sql/table.h b/sql/table.h index 61efea0c5b3..adfefba3234 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1306,11 +1306,12 @@ public: void reset_item_list(List *item_list) const; void clear_column_bitmaps(void); void prepare_for_position(void); + MY_BITMAP *prepare_for_keyread(uint index, MY_BITMAP *map); + MY_BITMAP *prepare_for_keyread(uint index) + { return prepare_for_keyread(index, &tmp_set); } + void mark_columns_used_by_index(uint index, MY_BITMAP *map); void mark_columns_used_by_index_no_reset(uint index, MY_BITMAP *map); - MY_BITMAP *mark_columns_used_by_index_in_bitmap(uint index, MY_BITMAP *map); - MY_BITMAP *mark_columns_used_by_index(uint index) - { return mark_columns_used_by_index_in_bitmap(index, &tmp_set); } - void restore_column_maps_after_mark_index(MY_BITMAP *backup); + void restore_column_maps_after_keyread(MY_BITMAP *backup); void mark_auto_increment_column(void); void mark_columns_needed_for_update(void); void mark_columns_needed_for_delete(void); From dafb507e3ed09699230e3dd52fdc68c6094ee148 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 3 Feb 2017 19:09:19 +0100 Subject: [PATCH 208/258] find_all_keys: add an assert, remove current_thd Filesort temporarily changes read_set to be tmp_set and marks only fields needed for filesort. Add an assert to ensure that it doesn't overwrite the old value of tmp_set, that is that read_set was *not* already tmp_set when filesort was invoked. Fix sql_update.cc that was was doing exactly that - changing read_set to tmp_set, configuring tmp_set for keyread, and then invoking filesort. --- sql/filesort.cc | 4 ++-- sql/sql_update.cc | 24 +++++++++++++----------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/sql/filesort.cc b/sql/filesort.cc index 2283e6e3d0a..baeb75b3b0b 100644 --- a/sql/filesort.cc +++ b/sql/filesort.cc @@ -747,8 +747,7 @@ static ha_rows find_all_keys(THD *thd, Sort_param *param, SQL_SELECT *select, DBUG_SET("+d,ha_rnd_init_fail");); if (file->ha_rnd_init_with_error(1)) DBUG_RETURN(HA_POS_ERROR); - file->extra_opt(HA_EXTRA_CACHE, - current_thd->variables.read_buff_size); + file->extra_opt(HA_EXTRA_CACHE, thd->variables.read_buff_size); } /* Remember original bitmaps */ @@ -757,6 +756,7 @@ static ha_rows find_all_keys(THD *thd, Sort_param *param, SQL_SELECT *select, save_vcol_set= sort_form->vcol_set; /* Set up temporary column read map for columns used by sort */ + DBUG_ASSERT(save_read_set != &sort_form->tmp_set); bitmap_clear_all(&sort_form->tmp_set); sort_form->column_bitmaps_set(&sort_form->tmp_set, &sort_form->tmp_set, &sort_form->tmp_set); diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 9c0e9443b0d..35e1fe24b97 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -534,16 +534,9 @@ int mysql_update(THD *thd, /* We can't update table directly; We must first search after all matching rows before updating the table! + + note: We avoid sorting if we sort on the used index */ - MY_BITMAP *save_read_set= table->read_set; - MY_BITMAP *save_write_set= table->write_set; - - if (query_plan.index < MAX_KEY && old_covering_keys.is_set(query_plan.index)) - table->prepare_for_keyread(query_plan.index); - else - table->use_all_columns(); - - /* note: We avoid sorting if we sort on the used index */ if (query_plan.using_filesort) { /* @@ -569,6 +562,14 @@ int mysql_update(THD *thd, } else { + MY_BITMAP *save_read_set= table->read_set; + MY_BITMAP *save_write_set= table->write_set; + + if (query_plan.index < MAX_KEY && old_covering_keys.is_set(query_plan.index)) + table->prepare_for_keyread(query_plan.index); + else + table->use_all_columns(); + /* We are doing a search on a key that is updated. In this case we go trough the matching rows, save a pointer to them and @@ -681,9 +682,10 @@ int mysql_update(THD *thd, select->file=tempfile; // Read row ptrs from this file if (error >= 0) goto err; + + table->file->ha_end_keyread(); + table->column_bitmaps_set(save_read_set, save_write_set); } - table->file->ha_end_keyread(); - table->column_bitmaps_set(save_read_set, save_write_set); } if (ignore) From cff144a8ea47be2db8aace52cc282f4d2e0d7aaa Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 4 Feb 2017 19:17:42 +0100 Subject: [PATCH 209/258] cleanup: handler::key_read * rename to "keyread" (to avoid conflicts with tokudb), * change from bool to uint and store the keyread index number there * provide a bool accessor to check if keyread is enabled --- sql/handler.cc | 2 +- sql/handler.h | 17 ++++++++--------- sql/opt_range.cc | 6 +++--- sql/opt_sum.cc | 2 +- sql/sql_base.cc | 2 +- sql/sql_select.cc | 38 ++++++++++++++++++-------------------- sql/sql_statistics.cc | 3 +-- sql/table.cc | 11 +++++------ sql/table.h | 2 +- 9 files changed, 39 insertions(+), 44 deletions(-) diff --git a/sql/handler.cc b/sql/handler.cc index 8781db30889..fb5d1699419 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -5909,7 +5909,7 @@ int handler::ha_reset() table->s->column_bitmap_size == (uchar*) table->def_write_set.bitmap); DBUG_ASSERT(bitmap_is_set_all(&table->s->all_set)); - DBUG_ASSERT(table->file->key_read == 0); + DBUG_ASSERT(!table->file->keyread_enabled()); /* ensure that ha_index_end / ha_rnd_end has been called */ DBUG_ASSERT(inited == NONE); /* reset the bitmaps to point to defaults */ diff --git a/sql/handler.h b/sql/handler.h index 017d045cdbc..3e04cf7f7b5 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -2653,8 +2653,7 @@ public: uint errkey; /* Last dup key */ uint key_used_on_scan; - uint active_index; - bool key_read; + uint active_index, keyread; /** Length of ref (1-8 or the clustered key length) */ uint ref_length; @@ -2750,8 +2749,7 @@ public: check_table_binlog_row_based_result(0), in_range_check_pushed_down(FALSE), key_used_on_scan(MAX_KEY), - active_index(MAX_KEY), - key_read(false), + active_index(MAX_KEY), keyread(MAX_KEY), ref_length(sizeof(my_off_t)), ft_handler(0), inited(NONE), pushed_cond(0), next_insert_id(0), insert_id_for_cur_row(0), @@ -2856,18 +2854,19 @@ public: int ha_delete_row(const uchar * buf); void ha_release_auto_increment(); - int ha_start_keyread() + bool keyread_enabled() { return keyread < MAX_KEY; } + int ha_start_keyread(uint idx) { - if (key_read) + if (keyread_enabled()) return 0; - key_read= 1; + keyread= idx; return extra(HA_EXTRA_KEYREAD); } int ha_end_keyread() { - if (!key_read) + if (!keyread_enabled()) return 0; - key_read= 0; + keyread= MAX_KEY; return extra(HA_EXTRA_NO_KEYREAD); } diff --git a/sql/opt_range.cc b/sql/opt_range.cc index f013f6ae254..61fe64c3930 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -10617,7 +10617,7 @@ QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table, /* Call multi_range_read_info() to get the MRR flags and buffer size */ quick->mrr_flags= HA_MRR_NO_ASSOCIATION | - (table->file->key_read ? HA_MRR_INDEX_ONLY : 0); + (table->file->keyread_enabled() ? HA_MRR_INDEX_ONLY : 0); if (thd->lex->sql_command != SQLCOM_SELECT) quick->mrr_flags |= HA_MRR_USE_DEFAULT_IMPL; @@ -10670,7 +10670,7 @@ int read_keys_and_merge_scans(THD *thd, DBUG_ENTER("read_keys_and_merge"); /* We're going to just read rowids. */ - head->file->ha_start_keyread(); + head->file->ha_start_keyread(head->s->primary_key); head->prepare_for_position(); cur_quick_it.rewind(); @@ -13649,7 +13649,7 @@ int QUICK_GROUP_MIN_MAX_SELECT::reset(void) DBUG_ENTER("QUICK_GROUP_MIN_MAX_SELECT::reset"); seen_first_key= FALSE; - head->file->ha_start_keyread(); /* We need only the key attributes */ + head->file->ha_start_keyread(index); /* We need only the key attributes */ if ((result= file->ha_index_init(index,1))) { diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc index 9d229f6aeef..e7bf4658d5c 100644 --- a/sql/opt_sum.cc +++ b/sql/opt_sum.cc @@ -968,7 +968,7 @@ static bool find_key_for_maxmin(bool max_fl, TABLE_REF *ref, converted (for example to upper case) */ if (field->part_of_key.is_set(idx)) - table->file->ha_start_keyread(); + table->file->ha_start_keyread(idx); DBUG_RETURN(TRUE); } } diff --git a/sql/sql_base.cc b/sql/sql_base.cc index cdd70280eaf..99c67186dbd 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -859,7 +859,7 @@ void close_thread_table(THD *thd, TABLE **table_ptr) DBUG_ENTER("close_thread_table"); DBUG_PRINT("tcache", ("table: '%s'.'%s' 0x%lx", table->s->db.str, table->s->table_name.str, (long) table)); - DBUG_ASSERT(table->file->key_read == 0); + DBUG_ASSERT(!table->file->keyread_enabled()); DBUG_ASSERT(!table->file || table->file->inited == handler::NONE); /* diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 7e642b519c6..a981e3adc60 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -11257,20 +11257,18 @@ make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after) case JT_SYSTEM: // Only happens with left join case JT_CONST: // Only happens with left join /* Only happens with outer joins */ - tab->read_first_record= tab->type == JT_SYSTEM ? - join_read_system :join_read_const; - if (table->covering_keys.is_set(tab->ref.key) && - !table->no_keyread) - table->file->ha_start_keyread(); + tab->read_first_record= tab->type == JT_SYSTEM ? join_read_system + : join_read_const; + if (table->covering_keys.is_set(tab->ref.key) && !table->no_keyread) + table->file->ha_start_keyread(tab->ref.key); else if ((!jcl || jcl > 4) && !tab->ref.is_access_triggered()) push_index_cond(tab, tab->ref.key); break; case JT_EQ_REF: tab->read_record.unlock_row= join_read_key_unlock_row; /* fall through */ - if (table->covering_keys.is_set(tab->ref.key) && - !table->no_keyread) - table->file->ha_start_keyread(); + if (table->covering_keys.is_set(tab->ref.key) && !table->no_keyread) + table->file->ha_start_keyread(tab->ref.key); else if ((!jcl || jcl > 4) && !tab->ref.is_access_triggered()) push_index_cond(tab, tab->ref.key); break; @@ -11283,9 +11281,8 @@ make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after) } delete tab->quick; tab->quick=0; - if (table->covering_keys.is_set(tab->ref.key) && - !table->no_keyread) - table->file->ha_start_keyread(); + if (table->covering_keys.is_set(tab->ref.key) && !table->no_keyread) + table->file->ha_start_keyread(tab->ref.key); else if ((!jcl || jcl > 4) && !tab->ref.is_access_triggered()) push_index_cond(tab, tab->ref.key); break; @@ -11348,7 +11345,7 @@ make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after) if (tab->select && tab->select->quick && tab->select->quick->index != MAX_KEY && //not index_merge table->covering_keys.is_set(tab->select->quick->index)) - table->file->ha_start_keyread(); + table->file->ha_start_keyread(tab->select->quick->index); else if (!table->covering_keys.is_clear_all() && !(tab->select && tab->select->quick)) { // Only read index tree @@ -11377,7 +11374,8 @@ make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after) } } if (tab->select && tab->select->quick && - tab->select->quick->index != MAX_KEY && !tab->table->file->key_read) + tab->select->quick->index != MAX_KEY && + !tab->table->file->keyread_enabled()) push_index_cond(tab, tab->select->quick->index); } break; @@ -18830,7 +18828,7 @@ join_read_const_table(THD *thd, JOIN_TAB *tab, POSITION *pos) table->covering_keys.is_set(tab->ref.key) && !table->no_keyread && (int) table->reginfo.lock_type <= (int) TL_READ_HIGH_PRIORITY) { - table->file->ha_start_keyread(); + table->file->ha_start_keyread(tab->ref.key); tab->index= tab->ref.key; } error=join_read_const(tab); @@ -19350,7 +19348,7 @@ join_read_first(JOIN_TAB *tab) DBUG_ENTER("join_read_first"); if (table->covering_keys.is_set(tab->index) && !table->no_keyread) - table->file->ha_start_keyread(); + table->file->ha_start_keyread(tab->index); tab->table->status=0; tab->read_record.read_record=join_read_next; tab->read_record.table=table; @@ -19389,7 +19387,7 @@ join_read_last(JOIN_TAB *tab) DBUG_ENTER("join_read_first"); if (table->covering_keys.is_set(tab->index) && !table->no_keyread) - table->file->ha_start_keyread(); + table->file->ha_start_keyread(tab->index); tab->table->status=0; tab->read_record.read_record=join_read_prev; tab->read_record.table=table; @@ -21254,10 +21252,10 @@ check_reverse_order: If ref_key used index tree reading only ('Using index' in EXPLAIN), and best_key doesn't, then revert the decision. */ - if (!table->covering_keys.is_set(best_key)) - table->file->ha_end_keyread(); + if (table->covering_keys.is_set(best_key)) + table->file->ha_start_keyread(best_key); else - table->file->ha_start_keyread(); + table->file->ha_end_keyread(); if (!quick_created) { @@ -24209,7 +24207,7 @@ void JOIN_TAB::save_explain_data(Explain_table_access *eta, } /* Build "Extra" field and save it */ - key_read=table->file->key_read; + key_read= table->file->keyread_enabled(); if ((tab_type == JT_NEXT || tab_type == JT_CONST) && table->covering_keys.is_set(index)) key_read=1; diff --git a/sql/sql_statistics.cc b/sql/sql_statistics.cc index 63e8b7bcec7..979852e2f6b 100644 --- a/sql/sql_statistics.cc +++ b/sql/sql_statistics.cc @@ -2633,8 +2633,7 @@ int collect_statistics_for_index(THD *thd, TABLE *table, uint index) DBUG_RETURN(rc); } - table->file->ha_start_keyread(); - + table->file->ha_start_keyread(index); table->file->ha_index_init(index, TRUE); rc= table->file->ha_index_first(table->record[0]); while (rc != HA_ERR_END_OF_FILE) diff --git a/sql/table.cc b/sql/table.cc index 093adf339b4..33317234c85 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -4436,7 +4436,7 @@ void TABLE::init(THD *thd, TABLE_LIST *tl) (*f_ptr)->cond_selectivity= 1.0; } - DBUG_ASSERT(file->key_read == 0); + DBUG_ASSERT(!file->keyread_enabled()); /* mark the record[0] uninitialized */ TRASH_ALLOC(record[0], s->reclength); @@ -6075,7 +6075,7 @@ MY_BITMAP *TABLE::prepare_for_keyread(uint index, MY_BITMAP *map) MY_BITMAP *backup= read_set; DBUG_ENTER("TABLE::prepare_for_keyread"); if (!no_keyread) - file->ha_start_keyread(); + file->ha_start_keyread(index); mark_columns_used_by_index(index, map); column_bitmaps_set(map); DBUG_RETURN(backup); @@ -7310,7 +7310,7 @@ int TABLE::update_virtual_fields(handler *h, enum_vcol_update_mode update_mode) bool handler_pushed= 0; DBUG_ASSERT(vfield); - if (h->key_read) + if (h->keyread_enabled()) DBUG_RETURN(0); error= 0; @@ -7364,9 +7364,8 @@ int TABLE::update_virtual_fields(handler *h, enum_vcol_update_mode update_mode) case VCOL_UPDATE_INDEXED: case VCOL_UPDATE_INDEXED_FOR_UPDATE: /* Read indexed fields that was not updated in VCOL_UPDATE_FOR_READ */ - update= (!vcol_info->stored_in_db && (vf->flags & PART_KEY_FLAG) && - bitmap_is_set(vcol_set, vf->field_index) && - (h->key_read && vf->part_of_key.is_set(h->active_index))); + update= !vcol_info->stored_in_db && (vf->flags & PART_KEY_FLAG) && + bitmap_is_set(vcol_set, vf->field_index); swap_values= 1; break; } diff --git a/sql/table.h b/sql/table.h index adfefba3234..ec33188b688 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1402,7 +1402,7 @@ public: { if (created) return; - if (file->key_read) + if (file->keyread_enabled()) file->extra(HA_EXTRA_KEYREAD); created= true; } From 01dd355635d00f80d6960f319591bb568f4cf628 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sun, 5 Feb 2017 13:00:12 +0100 Subject: [PATCH 210/258] cleanup: make a couple of tests more robust with --sorted_result --- mysql-test/r/row.result | 10 +-- mysql-test/r/subselect.result | 68 +++++++++---------- mysql-test/r/subselect_no_exists_to_in.result | 68 +++++++++---------- mysql-test/r/subselect_no_mat.result | 68 +++++++++---------- mysql-test/r/subselect_no_opts.result | 68 +++++++++---------- mysql-test/r/subselect_no_scache.result | 68 +++++++++---------- mysql-test/r/subselect_no_semijoin.result | 68 +++++++++---------- mysql-test/r/view.result | 24 +++---- mysql-test/t/row.test | 2 + mysql-test/t/subselect.test | 2 + mysql-test/t/view.test | 1 + 11 files changed, 226 insertions(+), 221 deletions(-) diff --git a/mysql-test/r/row.result b/mysql-test/r/row.result index 9b796c24354..7483f37970f 100644 --- a/mysql-test/r/row.result +++ b/mysql-test/r/row.result @@ -354,12 +354,12 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a 1 Using index SELECT * FROM t1,t2 WHERE t1.a=1 and t1.b=t2.b; a b a b c -1 1 1 1 2 -1 1 3 1 3 -1 2 1 2 2 1 1 1 1 1 +1 1 1 1 2 1 1 3 1 1 +1 1 3 1 3 1 2 1 2 1 +1 2 1 2 2 SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2); a b a b c 1 2 1 1 1 @@ -388,10 +388,10 @@ Warnings: Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where `test`.`t1`.`a` - 1 = `test`.`t2`.`a` - 1 and `test`.`t1`.`b` = `test`.`t2`.`b` + 1 SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1); a b a b c -1 2 1 1 2 -3 2 3 1 3 1 2 1 1 1 +1 2 1 1 2 3 2 3 1 1 +3 2 3 1 3 EXPLAIN SELECT * FROM t2 WHERE a=3 AND b=2; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ref PRIMARY PRIMARY 8 const,const 1 Using index diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index f3187568428..3b18a4d0262 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -6012,26 +6012,26 @@ SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS (SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y DROP TABLE t1,t2; # # LP bug 919427: EXPLAIN for a query over a single-row table @@ -6362,26 +6362,26 @@ SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 ); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y explain SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS diff --git a/mysql-test/r/subselect_no_exists_to_in.result b/mysql-test/r/subselect_no_exists_to_in.result index d1cad4f9389..ecefc0b8883 100644 --- a/mysql-test/r/subselect_no_exists_to_in.result +++ b/mysql-test/r/subselect_no_exists_to_in.result @@ -6012,26 +6012,26 @@ SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS (SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y DROP TABLE t1,t2; # # LP bug 919427: EXPLAIN for a query over a single-row table @@ -6362,26 +6362,26 @@ SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 ); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y explain SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS diff --git a/mysql-test/r/subselect_no_mat.result b/mysql-test/r/subselect_no_mat.result index 32d39224e2a..49a60546b78 100644 --- a/mysql-test/r/subselect_no_mat.result +++ b/mysql-test/r/subselect_no_mat.result @@ -6009,26 +6009,26 @@ SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS (SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y DROP TABLE t1,t2; # # LP bug 919427: EXPLAIN for a query over a single-row table @@ -6357,26 +6357,26 @@ SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 ); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y explain SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS diff --git a/mysql-test/r/subselect_no_opts.result b/mysql-test/r/subselect_no_opts.result index 2daf33980d6..304a427df6b 100644 --- a/mysql-test/r/subselect_no_opts.result +++ b/mysql-test/r/subselect_no_opts.result @@ -6005,26 +6005,26 @@ SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS (SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y DROP TABLE t1,t2; # # LP bug 919427: EXPLAIN for a query over a single-row table @@ -6353,26 +6353,26 @@ SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 ); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y explain SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS diff --git a/mysql-test/r/subselect_no_scache.result b/mysql-test/r/subselect_no_scache.result index 09530f3ac0f..c045be5197c 100644 --- a/mysql-test/r/subselect_no_scache.result +++ b/mysql-test/r/subselect_no_scache.result @@ -6018,26 +6018,26 @@ SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS (SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y DROP TABLE t1,t2; # # LP bug 919427: EXPLAIN for a query over a single-row table @@ -6368,26 +6368,26 @@ SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 ); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y explain SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS diff --git a/mysql-test/r/subselect_no_semijoin.result b/mysql-test/r/subselect_no_semijoin.result index 7efb5127d2b..3440ecbc6c1 100644 --- a/mysql-test/r/subselect_no_semijoin.result +++ b/mysql-test/r/subselect_no_semijoin.result @@ -6005,26 +6005,26 @@ SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS (SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y DROP TABLE t1,t2; # # LP bug 919427: EXPLAIN for a query over a single-row table @@ -6353,26 +6353,26 @@ SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 ); f1 f1_key -v j -s j -v v -s v -v c s c -v m +s d +s d +s d +s j s m -v d -s d -v d -s d -v y -s y -v t -s t -v d -s d -v s s s +s t +s v +s y +v c +v d +v d +v d +v j +v m +v s +v t +v v +v y explain SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index 7aa1ad3c044..0cd2655777c 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -1579,22 +1579,22 @@ execute stmt1 using @a; deallocate prepare stmt1; select * from v3; a b -100 1000 -101 1000 -300 1000 -301 1000 -100 10 -101 10 -300 10 -301 10 -100 2000 -101 2000 -300 2000 -301 2000 100 0 +100 10 +100 1000 +100 2000 101 0 +101 10 +101 1000 +101 2000 300 0 +300 10 +300 1000 +300 2000 301 0 +301 10 +301 1000 +301 2000 drop view v3; drop tables t1,t2; create table t1(f1 int); diff --git a/mysql-test/t/row.test b/mysql-test/t/row.test index 1c1d1b00910..80c61c414bf 100644 --- a/mysql-test/t/row.test +++ b/mysql-test/t/row.test @@ -187,6 +187,7 @@ SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b); EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b=2; EXPLAIN SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2); +--sorted_result SELECT * FROM t1,t2 WHERE t1.a=1 and t1.b=t2.b; SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,2); @@ -194,6 +195,7 @@ EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1); SELECT * FROM t1,t2 WHERE (t1.a,t1.b)=(t2.a,t2.b+1); EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1); +--sorted_result SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1); EXPLAIN SELECT * FROM t2 WHERE a=3 AND b=2; diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 44a400dca20..f2e0adf9d53 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -5031,6 +5031,7 @@ EXPLAIN SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS (SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1); +--sorted_result SELECT table1.f1, table2.f1_key FROM t1 AS table1, t2 AS table2 WHERE EXISTS (SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1); @@ -5330,6 +5331,7 @@ SELECT DISTINCT f1_key FROM t2 WHERE f1_key != table2.f1_key AND f1_key >= table1.f1 ); +--sorted_result eval $query; eval explain $query; diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index 229df8b893f..3475d325321 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -1407,6 +1407,7 @@ execute stmt1 using @a; set @a= 301; execute stmt1 using @a; deallocate prepare stmt1; +--sorted_result select * from v3; drop view v3; From 1913daf42cfa9b93aceb82dd0f449ea3f3f7b119 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 4 Feb 2017 19:58:32 +0100 Subject: [PATCH 211/258] bugfix: disable ICP in InnoDB for indexes on virtual columns because it doesn't work, vcols are never calculated for ICP --- storage/innobase/handler/ha_innodb.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 170a9d5b5a3..9463eb5f514 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -22553,6 +22553,12 @@ ha_innobase::idx_cond_push( DBUG_ASSERT(keyno != MAX_KEY); DBUG_ASSERT(idx_cond != NULL); + /* We can only evaluate the condition if all columns are stored.*/ + dict_index_t* idx = innobase_get_index(keyno); + if (idx && dict_index_has_virtual(idx)) { + DBUG_RETURN(idx_cond); + } + pushed_idx_cond = idx_cond; pushed_idx_cond_keyno = keyno; in_range_check_pushed_down = TRUE; From 0e5230e12d1d06e734141bde24e1b928986a77ed Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 6 Feb 2017 23:36:39 +0100 Subject: [PATCH 212/258] support keyread in READ_RECORD make init_read_record() to detect enabled keyread and use index_* access methods, not rnd_* this makes MariaDB to use keyread a lot more often than before --- sql/records.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sql/records.cc b/sql/records.cc index fccfa751c7e..50ef18063cc 100644 --- a/sql/records.cc +++ b/sql/records.cc @@ -279,6 +279,18 @@ bool init_read_record(READ_RECORD *info,THD *thd, TABLE *table, info->read_record= (addon_field ? rr_unpack_from_buffer : rr_from_pointers); } + else if (table->file->keyread_enabled()) + { + int error; + info->read_record= rr_index_first; + if (!table->file->inited && + (error= table->file->ha_index_init(table->file->keyread, 1))) + { + if (print_error) + table->file->print_error(error, MYF(0)); + DBUG_RETURN(1); + } + } else { DBUG_PRINT("info",("using rr_sequential")); From 8d99166c697516ad9b4084c2bc10ba4acf8b9744 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 6 Feb 2017 23:52:47 +0100 Subject: [PATCH 213/258] MDEV-11640 gcol.gcol_select_myisam fails in buildbot on Power JOIN_CACHE's were initialized in check_join_cache_usage() from make_join_readinfo(). After that make_join_readinfo() was looking whether it's possible to use keyread. Later, after make_join_readinfo(), optimizer decided whether to use filesort. And even later, at the execution time, from join_read_first(), keyread was actually enabled. The problem is, that if a query uses a vcol, base columns that it depends on are automatically added to the read_set - because they're needed to calculate the vcol. But if we're doing keyread, vcol is taken from the index, not calculated, and base columns do not need to be in the read set (even should not be - as they aren't getting values). The bug was that JOIN_CACHE used read_set with base columns, they were not read because of keyread, so it was caching garbage. So read_set is only known after the keyread was decided. And after the filesort was decided, as filesort doesn't use keyread. But check_join_cache_usage() needs to be done in make_join_readinfo(), as the code below depends on these checks, Fix: keep JOIN_CACHE checks where they were, but move initialization down to the very end of JOIN::optimize_inner. If keyread was enabled, update the read_set to include only columns that are part of the index. Copy the keyread logic from join_read_first() to happen at optimize time. --- mysql-test/r/join_cache.result | 4 +- mysql-test/r/join_outer.result | 2 +- mysql-test/r/join_outer_jcl6.result | 2 +- mysql-test/r/limit_rows_examined.result | 12 +- mysql-test/r/subselect_cache.result | 174 +++++++++--------- mysql-test/r/subselect_sj2_jcl6.result | 2 +- .../suite/vcol/r/vcol_select_myisam.result | 109 +++++++++++ .../suite/vcol/t/vcol_select_myisam.test | 28 +++ sql/sql_select.cc | 60 ++++-- sql/sql_select.h | 1 + sql/table.cc | 7 +- 11 files changed, 285 insertions(+), 116 deletions(-) diff --git a/mysql-test/r/join_cache.result b/mysql-test/r/join_cache.result index d138babc96b..5cb76a93d9a 100644 --- a/mysql-test/r/join_cache.result +++ b/mysql-test/r/join_cache.result @@ -4450,7 +4450,7 @@ EXPLAIN SELECT t2.i FROM t1,t2 WHERE t1.cu = t2.cl ; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 -1 SIMPLE t1 hash_index cu #hash#cu:cu 33:33 func 10 Using where; Using join buffer (flat, BNLH join) +1 SIMPLE t1 hash_index cu #hash#cu:cu 33:33 func 10 Using where; Using index; Using join buffer (flat, BNLH join) SELECT t2.i FROM t1,t2 WHERE t1.cu = t2.cl ; i 6 @@ -5242,7 +5242,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.b) IN (SELECT c FROM t2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where -1 PRIMARY t2 hash_index c #hash#c:c 5:5 test.t1.b 8 Start temporary; End temporary; Using join buffer (flat, BNLH join) +1 PRIMARY t2 hash_index c #hash#c:c 5:5 test.t1.b 8 Using index; Start temporary; End temporary; Using join buffer (flat, BNLH join) SELECT * FROM t1 WHERE (t1.b) IN (SELECT c FROM t2); a b 3914 17 diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result index 7fb3517ecb7..ffeddc989ec 100644 --- a/mysql-test/r/join_outer.result +++ b/mysql-test/r/join_outer.result @@ -2006,7 +2006,7 @@ SELECT * FROM (t2 LEFT JOIN t1 ON t1.b = t2.b) JOIN t3 ON t1.b = t3.b; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 1 SIMPLE t3 hash_ALL PRIMARY #hash#PRIMARY 4 test.t1.b 10 10.00 Using join buffer (flat, BNLH join) -1 SIMPLE t2 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t1.b 27 3.70 Using join buffer (incremental, BNLH join) +1 SIMPLE t2 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t1.b 27 3.70 Using index; Using join buffer (incremental, BNLH join) Warnings: Note 1003 select `test`.`t2`.`b` AS `b`,`test`.`t1`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t2` join `test`.`t1` join `test`.`t3` where `test`.`t3`.`b` = `test`.`t1`.`b` and `test`.`t2`.`b` = `test`.`t1`.`b` PREPARE stmt FROM diff --git a/mysql-test/r/join_outer_jcl6.result b/mysql-test/r/join_outer_jcl6.result index ef749768d4c..4ffca891061 100644 --- a/mysql-test/r/join_outer_jcl6.result +++ b/mysql-test/r/join_outer_jcl6.result @@ -2017,7 +2017,7 @@ SELECT * FROM (t2 LEFT JOIN t1 ON t1.b = t2.b) JOIN t3 ON t1.b = t3.b; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 1 SIMPLE t3 hash_ALL PRIMARY #hash#PRIMARY 4 test.t1.b 10 10.00 Using join buffer (flat, BNLH join) -1 SIMPLE t2 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t1.b 27 3.70 Using join buffer (incremental, BNLH join) +1 SIMPLE t2 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t1.b 27 3.70 Using index; Using join buffer (incremental, BNLH join) Warnings: Note 1003 select `test`.`t2`.`b` AS `b`,`test`.`t1`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t2` join `test`.`t1` join `test`.`t3` where `test`.`t3`.`b` = `test`.`t1`.`b` and `test`.`t2`.`b` = `test`.`t1`.`b` PREPARE stmt FROM diff --git a/mysql-test/r/limit_rows_examined.result b/mysql-test/r/limit_rows_examined.result index 532448a8da8..157d10ae76a 100644 --- a/mysql-test/r/limit_rows_examined.result +++ b/mysql-test/r/limit_rows_examined.result @@ -752,15 +752,15 @@ LIMIT ROWS EXAMINED 120; ERROR HY000: Sort aborted: SHOW STATUS LIKE 'Handler_read%'; Variable_name Value -Handler_read_first 0 +Handler_read_first 1 Handler_read_key 5 Handler_read_last 0 -Handler_read_next 0 +Handler_read_next 7 Handler_read_prev 0 Handler_read_retry 0 Handler_read_rnd 0 Handler_read_rnd_deleted 0 -Handler_read_rnd_next 46 +Handler_read_rnd_next 38 SHOW STATUS LIKE 'Handler_tmp%'; Variable_name Value Handler_tmp_update 0 @@ -777,15 +777,15 @@ Warnings: Warning 1931 Query execution was interrupted. The query examined at least 125 rows, which exceeds LIMIT ROWS EXAMINED (124). The query result may be incomplete SHOW STATUS LIKE 'Handler_read%'; Variable_name Value -Handler_read_first 0 +Handler_read_first 1 Handler_read_key 5 Handler_read_last 0 -Handler_read_next 0 +Handler_read_next 7 Handler_read_prev 0 Handler_read_retry 0 Handler_read_rnd 2 Handler_read_rnd_deleted 1 -Handler_read_rnd_next 47 +Handler_read_rnd_next 39 SHOW STATUS LIKE 'Handler_tmp%'; Variable_name Value Handler_tmp_update 0 diff --git a/mysql-test/r/subselect_cache.result b/mysql-test/r/subselect_cache.result index 86bc78dc204..5c74555af00 100644 --- a/mysql-test/r/subselect_cache.result +++ b/mysql-test/r/subselect_cache.result @@ -2842,70 +2842,70 @@ WHERE table1 .`col_varchar_key` ) field10 1 NULL w 1 NULL y Warnings: -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'o' -Warning 1292 Truncated incorrect DOUBLE value: 'o' -Warning 1292 Truncated incorrect DOUBLE value: 'o' -Warning 1292 Truncated incorrect DOUBLE value: 'o' -Warning 1292 Truncated incorrect DOUBLE value: 'o' -Warning 1292 Truncated incorrect DOUBLE value: 'o' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' +Warning 1292 Truncated incorrect DOUBLE value: 'a' SET @@optimizer_switch='subquery_cache=on'; /* cache is on */ SELECT COUNT( DISTINCT table2 .`col_int_key` ) , ( SELECT SUBQUERY2_t1 .`col_int_key` @@ -2933,32 +2933,32 @@ WHERE table1 .`col_varchar_key` ) field10 1 NULL w 1 NULL y Warnings: -Warning 1292 Truncated incorrect DOUBLE value: 'r' -Warning 1292 Truncated incorrect DOUBLE value: 'c' -Warning 1292 Truncated incorrect DOUBLE value: 'o' -Warning 1292 Truncated incorrect DOUBLE value: 'd' -Warning 1292 Truncated incorrect DOUBLE value: 'v' -Warning 1292 Truncated incorrect DOUBLE value: 'm' -Warning 1292 Truncated incorrect DOUBLE value: 'j' -Warning 1292 Truncated incorrect DOUBLE value: 'f' -Warning 1292 Truncated incorrect DOUBLE value: 'n' -Warning 1292 Truncated incorrect DOUBLE value: 'z' -Warning 1292 Truncated incorrect DOUBLE value: 'h' -Warning 1292 Truncated incorrect DOUBLE value: 'q' -Warning 1292 Truncated incorrect DOUBLE value: 'w' Warning 1292 Truncated incorrect DOUBLE value: 'a' -Warning 1292 Truncated incorrect DOUBLE value: 'e' -Warning 1292 Truncated incorrect DOUBLE value: 'u' -Warning 1292 Truncated incorrect DOUBLE value: 's' -Warning 1292 Truncated incorrect DOUBLE value: 'g' Warning 1292 Truncated incorrect DOUBLE value: 'b' -Warning 1292 Truncated incorrect DOUBLE value: 'y' -Warning 1292 Truncated incorrect DOUBLE value: 'p' -Warning 1292 Truncated incorrect DOUBLE value: 't' -Warning 1292 Truncated incorrect DOUBLE value: 'x' -Warning 1292 Truncated incorrect DOUBLE value: 'l' -Warning 1292 Truncated incorrect DOUBLE value: 'k' +Warning 1292 Truncated incorrect DOUBLE value: 'c' +Warning 1292 Truncated incorrect DOUBLE value: 'd' +Warning 1292 Truncated incorrect DOUBLE value: 'e' +Warning 1292 Truncated incorrect DOUBLE value: 'f' +Warning 1292 Truncated incorrect DOUBLE value: 'g' +Warning 1292 Truncated incorrect DOUBLE value: 'h' Warning 1292 Truncated incorrect DOUBLE value: 'i' +Warning 1292 Truncated incorrect DOUBLE value: 'j' +Warning 1292 Truncated incorrect DOUBLE value: 'k' +Warning 1292 Truncated incorrect DOUBLE value: 'l' +Warning 1292 Truncated incorrect DOUBLE value: 'm' +Warning 1292 Truncated incorrect DOUBLE value: 'n' +Warning 1292 Truncated incorrect DOUBLE value: 'o' +Warning 1292 Truncated incorrect DOUBLE value: 'p' +Warning 1292 Truncated incorrect DOUBLE value: 'q' +Warning 1292 Truncated incorrect DOUBLE value: 'r' +Warning 1292 Truncated incorrect DOUBLE value: 's' +Warning 1292 Truncated incorrect DOUBLE value: 't' +Warning 1292 Truncated incorrect DOUBLE value: 'u' +Warning 1292 Truncated incorrect DOUBLE value: 'v' +Warning 1292 Truncated incorrect DOUBLE value: 'w' +Warning 1292 Truncated incorrect DOUBLE value: 'x' +Warning 1292 Truncated incorrect DOUBLE value: 'y' +Warning 1292 Truncated incorrect DOUBLE value: 'z' drop table t1,t2,t3,t4; set @@optimizer_switch= default; #launchpad BUG#609045 diff --git a/mysql-test/r/subselect_sj2_jcl6.result b/mysql-test/r/subselect_sj2_jcl6.result index 61519234f44..2955307eb86 100644 --- a/mysql-test/r/subselect_sj2_jcl6.result +++ b/mysql-test/r/subselect_sj2_jcl6.result @@ -1184,7 +1184,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 ref PRIMARY PRIMARY 5 const 1 Using where; Using index 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary; Using join buffer (flat, BNL join) 1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join) -1 PRIMARY t4 hash_index NULL #hash#$hj:PRIMARY 54:59 test.t3.t3_c 2 Using where; End temporary; Using join buffer (incremental, BNLH join) +1 PRIMARY t4 hash_index NULL #hash#$hj:PRIMARY 54:59 test.t3.t3_c 2 Using where; Using index; End temporary; Using join buffer (incremental, BNLH join) DROP TABLE t1,t2,t3,t4; # # MDEV-6263: Wrong result when using IN subquery with order by diff --git a/mysql-test/suite/vcol/r/vcol_select_myisam.result b/mysql-test/suite/vcol/r/vcol_select_myisam.result index 30d21d6792a..88a9e608c9d 100644 --- a/mysql-test/suite/vcol/r/vcol_select_myisam.result +++ b/mysql-test/suite/vcol/r/vcol_select_myisam.result @@ -295,3 +295,112 @@ Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a` from `test`.`t1` SELECT * FROM t1 NATURAL JOIN t2; b a DROP TABLE t1,t2; +create table t1 ( +pk integer auto_increment, +bi integer not null, +vi integer generated always as (bi) virtual, +bc varchar(1) not null, +vc varchar(2) generated always as (concat(bc, bc)), +primary key (pk), +key (vi, vc)); +insert t1 (bi, bc) values (0, 'x'), (0, 'n'), (1, 'w'), (7, 's'), (0, 'a'), (4, 'd'), (1, 'w'), (1, 'j'), (1, 'm'), (4, 'k'), (7, 't'), (4, 'k'), (2, 'e'), (0, 'i'), (1, 't'), (6, 'z'), (3, 'c'), (6, 'i'), (8, 'v'); +create table t2 ( +pk integer auto_increment, +bi integer not null, +vi integer generated always as (bi) virtual, +bc varchar(257) not null, +vc varchar(2) generated always as (concat(bc, bc)), +primary key (pk), +key (vi, vc)); +insert t2 (bi, bc) values (1, 'c'), (8, 'm'), (9, 'd'), (6, 'y'), (1, 't'), (6, 'd'), (2, 's'), (4, 'r'), (8, 'm'), (4, 'b'), (4, 'x'), (7, 'g'), (4, 'p'), (1, 'q'), (9, 'w'), (4, 'd'), (8, 'e'), (4, 'b'), (8, 'y'); +explain # should be using join buffer +select t2.vi from (t2 as t3 right join (t2 left join t1 on (t1.bi = t2.vi)) on (t1.vc = t2.vc)); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 index NULL vi 10 NULL 19 Using index +1 SIMPLE t1 ALL NULL NULL NULL NULL 19 Using where; Using join buffer (flat, BNL join) +1 SIMPLE t3 index NULL PRIMARY 4 NULL 19 Using where; Using index; Using join buffer (incremental, BNL join) +select t2.vi from (t2 as t3 right join (t2 left join t1 on (t1.bi = t2.vi)) on (t1.vc = t2.vc)); +vi +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +2 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +4 +6 +6 +6 +6 +7 +7 +8 +8 +8 +8 +9 +9 +drop table t2,t1; diff --git a/mysql-test/suite/vcol/t/vcol_select_myisam.test b/mysql-test/suite/vcol/t/vcol_select_myisam.test index c86ae10a4b3..5dd08894fea 100644 --- a/mysql-test/suite/vcol/t/vcol_select_myisam.test +++ b/mysql-test/suite/vcol/t/vcol_select_myisam.test @@ -68,3 +68,31 @@ SELECT * FROM t1 NATURAL JOIN t2; SELECT * FROM t1 NATURAL JOIN t2; DROP TABLE t1,t2; + +# +# MDEV-11640 gcol.gcol_select_myisam fails in buildbot on Power +# + +create table t1 ( + pk integer auto_increment, + bi integer not null, + vi integer generated always as (bi) virtual, + bc varchar(1) not null, + vc varchar(2) generated always as (concat(bc, bc)), + primary key (pk), + key (vi, vc)); +insert t1 (bi, bc) values (0, 'x'), (0, 'n'), (1, 'w'), (7, 's'), (0, 'a'), (4, 'd'), (1, 'w'), (1, 'j'), (1, 'm'), (4, 'k'), (7, 't'), (4, 'k'), (2, 'e'), (0, 'i'), (1, 't'), (6, 'z'), (3, 'c'), (6, 'i'), (8, 'v'); +create table t2 ( + pk integer auto_increment, + bi integer not null, + vi integer generated always as (bi) virtual, + bc varchar(257) not null, + vc varchar(2) generated always as (concat(bc, bc)), + primary key (pk), + key (vi, vc)); +insert t2 (bi, bc) values (1, 'c'), (8, 'm'), (9, 'd'), (6, 'y'), (1, 't'), (6, 'd'), (2, 's'), (4, 'r'), (8, 'm'), (4, 'b'), (4, 'x'), (7, 'g'), (4, 'p'), (1, 'q'), (9, 'w'), (4, 'd'), (8, 'e'), (4, 'b'), (8, 'y'); +explain # should be using join buffer +select t2.vi from (t2 as t3 right join (t2 left join t1 on (t1.bi = t2.vi)) on (t1.vc = t2.vc)); +--sorted_result +select t2.vi from (t2 as t3 right join (t2 left join t1 on (t1.bi = t2.vi)) on (t1.vc = t2.vc)); +drop table t2,t1; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index a981e3adc60..efdbed93802 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1111,6 +1111,34 @@ int JOIN::optimize() } +int JOIN::init_join_caches() +{ + JOIN_TAB *tab; + + for (tab= first_linear_tab(this, WITH_BUSH_ROOTS, WITHOUT_CONST_TABLES); + tab; + tab= next_linear_tab(this, tab, WITH_BUSH_ROOTS)) + { + TABLE *table= tab->table; + if (table->file->keyread_enabled()) + { + if (!(table->file->index_flags(table->file->keyread, 0, 1) & HA_CLUSTERED_INDEX)) + table->mark_columns_used_by_index(table->file->keyread, table->read_set); + } + else if ((tab->read_first_record == join_read_first || + tab->read_first_record == join_read_last) && + !tab->filesort && table->covering_keys.is_set(tab->index) && + !table->no_keyread) + { + table->prepare_for_keyread(tab->index, table->read_set); + } + if (tab->cache && tab->cache->init(select_options & SELECT_DESCRIBE)) + revise_cache_usage(tab); + } + return 0; +} + + /** global select optimisation. @@ -2122,6 +2150,9 @@ JOIN::optimize_inner() if (make_aggr_tables_info()) DBUG_RETURN(1); + if (init_join_caches()) + DBUG_RETURN(1); + error= 0; if (select_options & SELECT_DESCRIBE) @@ -10408,11 +10439,10 @@ void set_join_cache_denial(JOIN_TAB *join_tab) if (join_tab->cache->prev_cache) join_tab->cache->prev_cache->next_cache= 0; /* - No need to do the same for next_cache since cache denial is done - backwards starting from the latest cache in the linked list (see - revise_cache_usage()). + Same for the next_cache */ - DBUG_ASSERT(!join_tab->cache->next_cache); + if (join_tab->cache->next_cache) + join_tab->cache->next_cache->prev_cache= 0; join_tab->cache->free(); join_tab->cache= 0; @@ -10872,8 +10902,7 @@ uint check_join_cache_usage(JOIN_TAB *tab, case JT_ALL: if (cache_level == 1) prev_cache= 0; - if ((tab->cache= new (root) JOIN_CACHE_BNL(join, tab, prev_cache)) && - !tab->cache->init(options & SELECT_DESCRIBE)) + if ((tab->cache= new (root) JOIN_CACHE_BNL(join, tab, prev_cache))) { tab->icp_other_tables_ok= FALSE; return (2 - MY_TEST(!prev_cache)); @@ -10907,8 +10936,7 @@ uint check_join_cache_usage(JOIN_TAB *tab, goto no_join_cache; if (cache_level == 3) prev_cache= 0; - if ((tab->cache= new (root) JOIN_CACHE_BNLH(join, tab, prev_cache)) && - !tab->cache->init(options & SELECT_DESCRIBE)) + if ((tab->cache= new (root) JOIN_CACHE_BNLH(join, tab, prev_cache))) { tab->icp_other_tables_ok= FALSE; return (4 - MY_TEST(!prev_cache)); @@ -10928,8 +10956,7 @@ uint check_join_cache_usage(JOIN_TAB *tab, { if (cache_level == 5) prev_cache= 0; - if ((tab->cache= new (root) JOIN_CACHE_BKA(join, tab, flags, prev_cache)) && - !tab->cache->init(options & SELECT_DESCRIBE)) + if ((tab->cache= new (root) JOIN_CACHE_BKA(join, tab, flags, prev_cache))) return (6 - MY_TEST(!prev_cache)); goto no_join_cache; } @@ -10937,8 +10964,7 @@ uint check_join_cache_usage(JOIN_TAB *tab, { if (cache_level == 7) prev_cache= 0; - if ((tab->cache= new (root) JOIN_CACHE_BKAH(join, tab, flags, prev_cache)) && - !tab->cache->init(options & SELECT_DESCRIBE)) + if ((tab->cache= new (root) JOIN_CACHE_BKAH(join, tab, flags, prev_cache))) { tab->idx_cond_fact_out= FALSE; return (8 - MY_TEST(!prev_cache)); @@ -19347,8 +19373,9 @@ join_read_first(JOIN_TAB *tab) TABLE *table=tab->table; DBUG_ENTER("join_read_first"); - if (table->covering_keys.is_set(tab->index) && !table->no_keyread) - table->file->ha_start_keyread(tab->index); + DBUG_ASSERT(table->no_keyread || + !table->covering_keys.is_set(tab->index) || + table->file->keyread == tab->index); tab->table->status=0; tab->read_record.read_record=join_read_next; tab->read_record.table=table; @@ -19386,8 +19413,9 @@ join_read_last(JOIN_TAB *tab) int error= 0; DBUG_ENTER("join_read_first"); - if (table->covering_keys.is_set(tab->index) && !table->no_keyread) - table->file->ha_start_keyread(tab->index); + DBUG_ASSERT(table->no_keyread || + !table->covering_keys.is_set(tab->index) || + table->file->keyread == tab->index); tab->table->status=0; tab->read_record.read_record=join_read_prev; tab->read_record.table=table; diff --git a/sql/sql_select.h b/sql/sql_select.h index f1d48b700d7..f5bbc6718a0 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -1512,6 +1512,7 @@ public: bool flatten_subqueries(); bool optimize_unflattened_subqueries(); bool optimize_constant_subqueries(); + int init_join_caches(); bool make_sum_func_list(List &all_fields, List &send_fields, bool before_group_by, bool recompute= FALSE); diff --git a/sql/table.cc b/sql/table.cc index 33317234c85..1c6cc4205a6 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6076,8 +6076,11 @@ MY_BITMAP *TABLE::prepare_for_keyread(uint index, MY_BITMAP *map) DBUG_ENTER("TABLE::prepare_for_keyread"); if (!no_keyread) file->ha_start_keyread(index); - mark_columns_used_by_index(index, map); - column_bitmaps_set(map); + if (map != read_set || !(file->index_flags(index, 0, 1) & HA_CLUSTERED_INDEX)) + { + mark_columns_used_by_index(index, map); + column_bitmaps_set(map); + } DBUG_RETURN(backup); } From 0df39e603783e5b1ebce168f0c4a406a002c27a3 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 8 Feb 2017 20:00:39 +0100 Subject: [PATCH 214/258] bugfix: uninit variable --- sql/records.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/records.cc b/sql/records.cc index 50ef18063cc..3ec9ea814cc 100644 --- a/sql/records.cc +++ b/sql/records.cc @@ -69,7 +69,7 @@ static int rr_index_desc(READ_RECORD *info); bool init_read_record_idx(READ_RECORD *info, THD *thd, TABLE *table, bool print_error, uint idx, bool reverse) { - int error; + int error= 0; DBUG_ENTER("init_read_record_idx"); empty_record(table); From ca503e830b68941113c75f781bee365a35d268d3 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 9 Feb 2017 12:04:09 +0100 Subject: [PATCH 215/258] mtr: make sphinx skipping a bit less verbose --- storage/sphinx/mysql-test/sphinx/suite.pm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/storage/sphinx/mysql-test/sphinx/suite.pm b/storage/sphinx/mysql-test/sphinx/suite.pm index 9b17a5f78b8..24c377d7665 100644 --- a/storage/sphinx/mysql-test/sphinx/suite.pm +++ b/storage/sphinx/mysql-test/sphinx/suite.pm @@ -18,24 +18,14 @@ sub locate_sphinx_binary { # Look for Sphinx binaries my $exe_sphinx_indexer = &locate_sphinx_binary('indexer'); +return "'indexer' binary not found" unless $exe_sphinx_indexer; -unless ($exe_sphinx_indexer) { - mtr_report("Sphinx 'indexer' binary not found, sphinx suite will be skipped"); - return "No Sphinx"; -} my $exe_sphinx_searchd = &locate_sphinx_binary('searchd'); - -unless ($exe_sphinx_searchd) { - mtr_report("Sphinx 'searchd' binary not found, sphinx suite will be skipped"); - return "No Sphinx"; -} +return "'searchd' binary not found" unless $exe_sphinx_searchd; # Check for Sphinx engine -unless ($ENV{HA_SPHINX_SO} or $::mysqld_variables{'sphinx'} eq "ON") { - mtr_report("Sphinx engine not found, sphinx suite will be skipped"); - return "No SphinxSE"; -} +return "SphinxSE not found" unless $ENV{HA_SPHINX_SO} or $::mysqld_variables{'sphinx'} eq "ON"; { local $_ = `"$exe_sphinx_searchd" --help`; From 1afb11074ea2f156dcfda7c28b9e7e47eb68c5ba Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 9 Feb 2017 12:06:15 +0100 Subject: [PATCH 216/258] MDEV-11582 InnoDB: Failing assertion: !((field)->vcol_info && !(field)->stored_in_db()) change the parser not to allow SERIAL as a normal data type. make a special rule for it, where it could be used for define fields, but not generated fields, not return type of a stored function, etc. --- mysql-test/r/parser.result | 20 ++++++++++++++ mysql-test/t/parser.test | 20 ++++++++++++++ sql/sql_yacc.yy | 54 +++++++++++++++++++++++++++----------- 3 files changed, 78 insertions(+), 16 deletions(-) diff --git a/mysql-test/r/parser.result b/mysql-test/r/parser.result index 7a0a8667350..cfca156f3d6 100644 --- a/mysql-test/r/parser.result +++ b/mysql-test/r/parser.result @@ -1289,3 +1289,23 @@ SELECT 1; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1' at line 2 DROP TABLE t1; +create table t1 (a serial null); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'null)' at line 1 +create table t1 (a serial auto_increment); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'auto_increment)' at line 1 +create table t1 (a serial serial default value); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'serial default value)' at line 1 +create table t1 (a serial collate binary); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'collate binary)' at line 1 +create table t1 (i int, vc serial as (i)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'as (i))' at line 1 +create function fs() returns serial return 1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'serial return 1' at line 1 +create table t1 ( id serial ); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + UNIQUE KEY `id` (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +drop table t1; diff --git a/mysql-test/t/parser.test b/mysql-test/t/parser.test index 1fa7df7fc3d..4bd594bdf8e 100644 --- a/mysql-test/t/parser.test +++ b/mysql-test/t/parser.test @@ -1321,3 +1321,23 @@ UNION SELECT 1; DROP TABLE t1; + +# +# MDEV-11582 InnoDB: Failing assertion: !((field)->vcol_info && !(field)->stored_in_db()) +# +--error ER_PARSE_ERROR +create table t1 (a serial null); +--error ER_PARSE_ERROR +create table t1 (a serial auto_increment); +--error ER_PARSE_ERROR +create table t1 (a serial serial default value); +--error ER_PARSE_ERROR +create table t1 (a serial collate binary); +--error ER_PARSE_ERROR +create table t1 (i int, vc serial as (i)); +--error ER_PARSE_ERROR +create function fs() returns serial return 1; + +create table t1 ( id serial ); +show create table t1; +drop table t1; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index b84944c2ae2..124eab89cd3 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1993,6 +1993,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); definer_opt no_definer definer get_diagnostics parse_vcol_expr vcol_opt_specifier vcol_opt_attribute vcol_opt_attribute_list vcol_attribute + opt_serial_attribute opt_serial_attribute_list serial_attribute explainable_command END_OF_INPUT @@ -6151,8 +6152,7 @@ field_spec: lex->init_last_field(f, $1.str, NULL); $$= f; } - field_type { Lex->set_last_field_type($3); } - field_def + field_type_or_serial { LEX *lex=Lex; $$= $2; @@ -6170,6 +6170,30 @@ field_spec: } ; +field_type_or_serial: + field_type { Lex->set_last_field_type($1); } field_def + | SERIAL_SYM + { + Lex_field_type_st type; + type.set(MYSQL_TYPE_LONGLONG); + Lex->set_last_field_type(type); + Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG + | UNSIGNED_FLAG | UNIQUE_KEY_FLAG; + } + opt_serial_attribute + ; + +opt_serial_attribute: + /* empty */ {} + | opt_serial_attribute_list {} + ; + +opt_serial_attribute_list: + opt_serial_attribute_list serial_attribute {} + | serial_attribute + ; + + field_def: opt_attribute | opt_generated_always AS virtual_column_func @@ -6447,12 +6471,6 @@ field_type: { $$.set(MYSQL_TYPE_SET); } | LONG_SYM opt_binary { $$.set(MYSQL_TYPE_MEDIUM_BLOB); } - | SERIAL_SYM - { - $$.set(MYSQL_TYPE_LONGLONG); - Lex->last_field->flags|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG | - UNIQUE_KEY_FLAG); - } ; spatial_type: @@ -6575,7 +6593,6 @@ opt_attribute_list: attribute: NULL_SYM { Lex->last_field->flags&= ~ NOT_NULL_FLAG; } - | not NULL_SYM { Lex->last_field->flags|= NOT_NULL_FLAG; } | DEFAULT column_default_expr { Lex->last_field->default_value= $2; } | ON UPDATE_SYM NOW_SYM opt_default_time_precision { @@ -6591,6 +6608,18 @@ attribute: lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_KEY_FLAG; lex->alter_info.flags|= Alter_info::ALTER_ADD_INDEX; } + | COLLATE_SYM collation_name + { + if (Lex->charset && !my_charset_same(Lex->charset,$2)) + my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), + $2->name,Lex->charset->csname)); + Lex->last_field->charset= $2; + } + | serial_attribute + ; + +serial_attribute: + not NULL_SYM { Lex->last_field->flags|= NOT_NULL_FLAG; } | opt_primary KEY_SYM { LEX *lex=Lex; @@ -6610,13 +6639,6 @@ attribute: lex->alter_info.flags|= Alter_info::ALTER_ADD_INDEX; } | COMMENT_SYM TEXT_STRING_sys { Lex->last_field->comment= $2; } - | COLLATE_SYM collation_name - { - if (Lex->charset && !my_charset_same(Lex->charset,$2)) - my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), - $2->name,Lex->charset->csname)); - Lex->last_field->charset= $2; - } | IDENT_sys equal TEXT_STRING_sys { if ($3.length > ENGINE_OPTION_MAX_LENGTH) From 239790d92f73e73afaba5292162738c838fdcba2 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 9 Feb 2017 14:15:10 +0100 Subject: [PATCH 217/258] MDEV-11604 Assertion `!check_datetime_range(ltime)' failed in TIME_to_longlong_datetime_packed --- .../suite/vcol/r/vcol_keys_innodb.result | 33 +++++++++++++++ mysql-test/suite/vcol/t/vcol_keys_innodb.test | 40 +++++++++++++++++++ sql/sql_yacc.yy | 5 ++- 3 files changed, 77 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/vcol/r/vcol_keys_innodb.result b/mysql-test/suite/vcol/r/vcol_keys_innodb.result index 5053b5105cf..97f0bb04c27 100644 --- a/mysql-test/suite/vcol/r/vcol_keys_innodb.result +++ b/mysql-test/suite/vcol/r/vcol_keys_innodb.result @@ -225,3 +225,36 @@ ALTER TABLE t1 ADD COLUMN col INT; SELECT * FROM t1 WHERE vi < 2; i vi col DROP TABLE t1, t2; +create table t1 ( +pk int auto_increment, +col_varchar varchar(847) not null default '', +col_int bigint(15) unsigned zerofill, +col_datetime datetime(3) not null default '1900-01-01 00:00:00', +col_time time(5) not null default '00:00:00', +col_blob text, +col_bit bit(34), +col_year year, +col_char char(10), +col_dec decimal(18,9) not null default 0, +col_enum enum('','a','b','c','d','e','f','foo','bar') not null default '', +col_date date not null default '1900-01-01', +col_timestamp timestamp(3) not null default '1971-01-01 00:00:00', +vcol_datetime datetime as (col_datetime) virtual, +vcol_dec decimal(18,9) zerofill as (col_dec) virtual, +vcol_bit bit(63) as (col_bit) virtual, +vcol_char binary(51) as (col_char) virtual, +vcol_timestamp timestamp(5) as (col_timestamp) virtual, +vcol_enum enum('','a','b','c','d','e','f','foo','bar') as (col_enum) virtual, +vcol_int tinyint(48) zerofill as (col_int) virtual, +vcol_time time(4) as (col_time) virtual, +vcol_varchar varbinary(3873) as (col_varchar) virtual, +vcol_year year as (col_year) virtual, +vcol_date date as (col_date) virtual, +vcol_blob longtext as (col_blob) virtual, +primary key(pk) +) engine=innodb; +insert into t1 (col_varchar,col_int,col_datetime,col_time,col_blob,col_bit,col_year,col_char,col_dec,col_enum,col_date,col_timestamp) values +('foo',1,'2010-05-08 13:08:12.034783','18:32:14','foo',b'0111110101001001',1992,'f',0.2,'','1994-12-26','2019-01-11 00:00:00'), +('bar',6,'1900-01-01 00:00:00','00:00:00','bar',b'10011000001101011000101',1985,'b',0.7,'','2028-04-06','1971-01-01 00:00:00'); +alter table t1 add index(vcol_datetime); +drop table t1; diff --git a/mysql-test/suite/vcol/t/vcol_keys_innodb.test b/mysql-test/suite/vcol/t/vcol_keys_innodb.test index c872a9a6fe0..fdabed6f30d 100644 --- a/mysql-test/suite/vcol/t/vcol_keys_innodb.test +++ b/mysql-test/suite/vcol/t/vcol_keys_innodb.test @@ -61,3 +61,43 @@ CREATE TABLE t2 (i INT) ENGINE=InnoDB; ALTER TABLE t1 ADD COLUMN col INT; SELECT * FROM t1 WHERE vi < 2; DROP TABLE t1, t2; + + +# +# MDEV-11604 Assertion `!check_datetime_range(ltime)' failed in TIME_to_longlong_datetime_packed +# +create table t1 ( + pk int auto_increment, + col_varchar varchar(847) not null default '', + col_int bigint(15) unsigned zerofill, + col_datetime datetime(3) not null default '1900-01-01 00:00:00', + col_time time(5) not null default '00:00:00', + col_blob text, + col_bit bit(34), + col_year year, + col_char char(10), + col_dec decimal(18,9) not null default 0, + col_enum enum('','a','b','c','d','e','f','foo','bar') not null default '', + col_date date not null default '1900-01-01', + col_timestamp timestamp(3) not null default '1971-01-01 00:00:00', + vcol_datetime datetime as (col_datetime) virtual, + vcol_dec decimal(18,9) zerofill as (col_dec) virtual, + vcol_bit bit(63) as (col_bit) virtual, + vcol_char binary(51) as (col_char) virtual, + vcol_timestamp timestamp(5) as (col_timestamp) virtual, + vcol_enum enum('','a','b','c','d','e','f','foo','bar') as (col_enum) virtual, + vcol_int tinyint(48) zerofill as (col_int) virtual, + vcol_time time(4) as (col_time) virtual, + vcol_varchar varbinary(3873) as (col_varchar) virtual, + vcol_year year as (col_year) virtual, + vcol_date date as (col_date) virtual, + vcol_blob longtext as (col_blob) virtual, + primary key(pk) + ) engine=innodb; + +insert into t1 (col_varchar,col_int,col_datetime,col_time,col_blob,col_bit,col_year,col_char,col_dec,col_enum,col_date,col_timestamp) values + ('foo',1,'2010-05-08 13:08:12.034783','18:32:14','foo',b'0111110101001001',1992,'f',0.2,'','1994-12-26','2019-01-11 00:00:00'), + ('bar',6,'1900-01-01 00:00:00','00:00:00','bar',b'10011000001101011000101',1985,'b',0.7,'','2028-04-06','1971-01-01 00:00:00'); + +alter table t1 add index(vcol_datetime); +drop table t1; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 124eab89cd3..14963c815a7 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -6197,7 +6197,10 @@ opt_serial_attribute_list: field_def: opt_attribute | opt_generated_always AS virtual_column_func - { Lex->last_field->vcol_info= $3; } + { + Lex->last_field->vcol_info= $3; + Lex->last_field->flags&= ~NOT_NULL_FLAG; // undo automatic NOT NULL for timestamps + } vcol_opt_specifier vcol_opt_attribute ; From 87075e7f87868eb5438f4f5c191e3b1c1a1ea212 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 9 Feb 2017 17:43:14 +0100 Subject: [PATCH 218/258] MDEV-11704 InnoDB: Failing assertion: dfield_is_null(dfield2) || dfield2->data relax innodb assertion, because Field_blob::store() clearly says that a data pointer can be zero if the length is zero. --- mysql-test/suite/vcol/r/vcol_keys_innodb.result | 11 +++++++++++ mysql-test/suite/vcol/t/vcol_keys_innodb.test | 16 ++++++++++++++++ sql/table.cc | 2 +- storage/innobase/row/row0row.cc | 3 ++- 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/mysql-test/suite/vcol/r/vcol_keys_innodb.result b/mysql-test/suite/vcol/r/vcol_keys_innodb.result index 97f0bb04c27..242baba32af 100644 --- a/mysql-test/suite/vcol/r/vcol_keys_innodb.result +++ b/mysql-test/suite/vcol/r/vcol_keys_innodb.result @@ -258,3 +258,14 @@ insert into t1 (col_varchar,col_int,col_datetime,col_time,col_blob,col_bit,col_y ('bar',6,'1900-01-01 00:00:00','00:00:00','bar',b'10011000001101011000101',1985,'b',0.7,'','2028-04-06','1971-01-01 00:00:00'); alter table t1 add index(vcol_datetime); drop table t1; +create table t1 ( +pk int, +col_blob mediumtext not null default '', +vcol_blob tinyblob as (col_blob) virtual, +col_char char(22) null, +primary key(pk), +index(col_char,vcol_blob(64)) +) engine=innodb; +insert ignore into t1 (pk) values (1),(2); +update t1 set col_char = 'foo' where pk = 1; +drop table t1; diff --git a/mysql-test/suite/vcol/t/vcol_keys_innodb.test b/mysql-test/suite/vcol/t/vcol_keys_innodb.test index fdabed6f30d..58fb8378ac7 100644 --- a/mysql-test/suite/vcol/t/vcol_keys_innodb.test +++ b/mysql-test/suite/vcol/t/vcol_keys_innodb.test @@ -101,3 +101,19 @@ insert into t1 (col_varchar,col_int,col_datetime,col_time,col_blob,col_bit,col_y alter table t1 add index(vcol_datetime); drop table t1; + + +# +# MDEV-11704 InnoDB: Failing assertion: dfield_is_null(dfield2) || dfield2->data +# +create table t1 ( + pk int, + col_blob mediumtext not null default '', + vcol_blob tinyblob as (col_blob) virtual, + col_char char(22) null, + primary key(pk), + index(col_char,vcol_blob(64)) + ) engine=innodb; +insert ignore into t1 (pk) values (1),(2); +update t1 set col_char = 'foo' where pk = 1; +drop table t1; diff --git a/sql/table.cc b/sql/table.cc index 1c6cc4205a6..404c43bef17 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -6243,7 +6243,7 @@ void TABLE::mark_columns_needed_for_delete() void TABLE::mark_columns_needed_for_update() { - DBUG_ENTER("mark_columns_needed_for_update"); + DBUG_ENTER("TABLE::mark_columns_needed_for_update"); bool need_signal= false; mark_columns_per_binlog_row_image(); diff --git a/storage/innobase/row/row0row.cc b/storage/innobase/row/row0row.cc index 5c71e6e98bc..0f15299e71a 100644 --- a/storage/innobase/row/row0row.cc +++ b/storage/innobase/row/row0row.cc @@ -129,7 +129,8 @@ row_build_index_entry_low( ut_ad(v_col->v_pos < dtuple_get_n_v_fields(row)); dfield2 = dtuple_get_nth_v_field(row, v_col->v_pos); - ut_ad(dfield_is_null(dfield2) || dfield2->data); + ut_ad(dfield_is_null(dfield2) || + dfield_get_len(dfield2) == 0 || dfield2->data); } else { dfield2 = dtuple_get_nth_field(row, col_no); ut_ad(dfield_get_type(dfield2)->mtype == DATA_MISSING From 1f372cf1de2a15057a09c6936f025f09500c0228 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 13 Feb 2017 18:07:59 +0100 Subject: [PATCH 219/258] MDEV-11439 No data type JSON, but CAST(something AS JSON) pretends to work remove CAST(... AS JSON) from the grammar for 10.2.4 --- mysql-test/r/func_json.result | 9 --------- mysql-test/t/func_json.test | 6 +++--- sql/sql_yacc.yy | 1 - 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index e8d11fce56f..80b257cdd31 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -402,15 +402,6 @@ json_object("a", json_object("b", "abcd")) select json_object("a", '{"b": "abcd"}'); json_object("a", '{"b": "abcd"}') {"a": "{\"b\": \"abcd\"}"} -select json_object("a", cast('{"b": "abcd"}' as json)); -json_object("a", cast('{"b": "abcd"}' as json)) -{"a": {"b": "abcd"}} -select cast(NULL AS JSON); -cast(NULL AS JSON) -NULL -select json_depth(cast(NULL as JSON)); -json_depth(cast(NULL as JSON)) -NULL select json_depth('[[], {}]'); json_depth('[[], {}]') 2 diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test index aedc65159c5..ea616cbb19f 100644 --- a/mysql-test/t/func_json.test +++ b/mysql-test/t/func_json.test @@ -161,10 +161,10 @@ select json_unquote('abc'); select json_object("a", json_object("b", "abcd")); select json_object("a", '{"b": "abcd"}'); -select json_object("a", cast('{"b": "abcd"}' as json)); +#select json_object("a", cast('{"b": "abcd"}' as json)); -select cast(NULL AS JSON); -select json_depth(cast(NULL as JSON)); +#select cast(NULL AS JSON); +#select json_depth(cast(NULL as JSON)); select json_depth('[[], {}]'); select json_depth('[[[1,2,3],"s"], {}, []]'); select json_depth('[10, {"a": 20}]'); diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 14963c815a7..fe387ed80f2 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -10714,7 +10714,6 @@ cast_type: } | cast_type_numeric { $$= $1; Lex->charset= NULL; } | cast_type_temporal { $$= $1; Lex->charset= NULL; } - | JSON_SYM { $$.set(ITEM_CAST_JSON); } ; cast_type_numeric: From e1f0f0dd06d5e6f606c962b09ab0f6c0f1197955 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 13 Feb 2017 18:37:06 +0100 Subject: [PATCH 220/258] Revert "MDEV-11439 No data type JSON, but CAST(something AS JSON) pretends to work" This reverts commit 1f372cf1de2a15057a09c6936f025f09500c0228. Wasn't supposed to be pushed just yet. --- mysql-test/r/func_json.result | 9 +++++++++ mysql-test/t/func_json.test | 6 +++--- sql/sql_yacc.yy | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index 80b257cdd31..e8d11fce56f 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -402,6 +402,15 @@ json_object("a", json_object("b", "abcd")) select json_object("a", '{"b": "abcd"}'); json_object("a", '{"b": "abcd"}') {"a": "{\"b\": \"abcd\"}"} +select json_object("a", cast('{"b": "abcd"}' as json)); +json_object("a", cast('{"b": "abcd"}' as json)) +{"a": {"b": "abcd"}} +select cast(NULL AS JSON); +cast(NULL AS JSON) +NULL +select json_depth(cast(NULL as JSON)); +json_depth(cast(NULL as JSON)) +NULL select json_depth('[[], {}]'); json_depth('[[], {}]') 2 diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test index ea616cbb19f..aedc65159c5 100644 --- a/mysql-test/t/func_json.test +++ b/mysql-test/t/func_json.test @@ -161,10 +161,10 @@ select json_unquote('abc'); select json_object("a", json_object("b", "abcd")); select json_object("a", '{"b": "abcd"}'); -#select json_object("a", cast('{"b": "abcd"}' as json)); +select json_object("a", cast('{"b": "abcd"}' as json)); -#select cast(NULL AS JSON); -#select json_depth(cast(NULL as JSON)); +select cast(NULL AS JSON); +select json_depth(cast(NULL as JSON)); select json_depth('[[], {}]'); select json_depth('[[[1,2,3],"s"], {}, []]'); select json_depth('[10, {"a": 20}]'); diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index fe387ed80f2..14963c815a7 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -10714,6 +10714,7 @@ cast_type: } | cast_type_numeric { $$= $1; Lex->charset= NULL; } | cast_type_temporal { $$= $1; Lex->charset= NULL; } + | JSON_SYM { $$.set(ITEM_CAST_JSON); } ; cast_type_numeric: From fdfdea40f1b9d029de59131f54096c1b044ffdfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Mon, 12 Dec 2016 02:57:07 +0200 Subject: [PATCH 221/258] MDEV-11170: MariaDB 10.2 cannot start on MySQL 5.7 datadir: Fatal error: mysql.user table is damaged or in unsupported 3.20 format The problem stems from MySQL 5.7.6. According to MySQL documentation: In MySQL 5.7.6, the Password column was removed and all credentials are stored in the authentication_string column. If opening a MySQL 5.7.6 (and up) datadir with MariaDB 10.2, the user table appears corrupted. In order to fix this, the server must be started with --skip-grant-tables and then a subsequent mysql_upgrade command must be issued. This patch updates the mysql_upgrade command to also add the removed Password column. The password column is necessary, otherwise the mysql_upgrade script fails due to the Event_scheduler not being able to start, as it can't find Event_priv in the table where it ought to be. MySQL's version has column position 28 (0 index) vs our datadir version expects position 29. --- scripts/mysql_system_tables_fix.sql | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/mysql_system_tables_fix.sql b/scripts/mysql_system_tables_fix.sql index ea1059cdd78..80d0ef714a3 100644 --- a/scripts/mysql_system_tables_fix.sql +++ b/scripts/mysql_system_tables_fix.sql @@ -164,6 +164,12 @@ ALTER TABLE user MODIFY Host char(60) NOT NULL default '', MODIFY User char(80) NOT NULL default '', ENGINE=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; + +# In MySQL 5.7.6 the Password column is removed. Recreate it to preserve the number +# of columns MariaDB expects in the user table. +ALTER TABLE user + ADD Password char(41) character set latin1 collate latin1_bin NOT NULL default '' AFTER User; + ALTER TABLE user MODIFY Password char(41) character set latin1 collate latin1_bin NOT NULL default '', MODIFY Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, From f675eab7dc7f1eb4f4b61bfdd548d9e8052678a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 7 Feb 2017 14:02:25 +0200 Subject: [PATCH 222/258] MDEV-10122: MariaDB does not support group functions in some contexts where MySQL does The problematic queries involve unions. For unions we have an optimization where we skip the ORDER BY clause in a query from one side of the union if it will be performed later due to UNION. EX: (SELECT a from t1 ORDER BY a) ORDER BY b; The first ordering by a is not necessary and it gets removed. The problem is that we still need to resolve the Items before removing the ORDER BY list from the SELECT_LEX structure. During this final resolve step however, we forgot to allow SET functions within the ORDER BY clause. This caused us to return an "Invalid use of group function" error during the checking performed by fix_fields in Item_sum::init_sum_func_check. --- mysql-test/r/order_by-mdev-10122.result | 127 ++++++++++++++++++++++++ mysql-test/r/parser.result | 18 +++- mysql-test/t/order_by-mdev-10122.test | 39 ++++++++ mysql-test/t/parser.test | 4 - sql/sql_select.cc | 3 + 5 files changed, 183 insertions(+), 8 deletions(-) create mode 100644 mysql-test/r/order_by-mdev-10122.result create mode 100644 mysql-test/t/order_by-mdev-10122.test diff --git a/mysql-test/r/order_by-mdev-10122.result b/mysql-test/r/order_by-mdev-10122.result new file mode 100644 index 00000000000..57c0ecdd970 --- /dev/null +++ b/mysql-test/r/order_by-mdev-10122.result @@ -0,0 +1,127 @@ +# +# MariaDB does not support group functions in some contexts where MySQL does +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (10),(20),(30); +# All these queries must pass, not returning "Invalid use of group function". +(SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)); +a +10 +20 +30 +(SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) LIMIT 1; +a +10 +(SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)); +a +10 +20 +30 +(SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) LIMIT 1; +a +10 +(SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a; +a +10 +20 +30 +(SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1; +a +10 +(SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) ORDER BY a; +a +10 +20 +30 +(SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) ORDER BY a LIMIT 1; +a +10 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)); +a +1 +10 +20 +30 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) LIMIT 1; +a +1 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a; +a +1 +10 +20 +30 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1; +a +1 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)); +a +1 +10 +20 +30 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) LIMIT 1; +a +1 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) ORDER BY a; +a +1 +10 +20 +30 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) ORDER BY a LIMIT 1; +a +1 +(SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) ORDER BY a; +a +10 +20 +30 +(SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) ORDER BY a LIMIT 1; +a +10 +(SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) ORDER BY a; +a +10 +20 +30 +(SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) ORDER BY a LIMIT 1; +a +10 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)); +a +1 +10 +20 +30 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) LIMIT 1; +a +1 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) ORDER BY a; +a +1 +10 +20 +30 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) ORDER BY a LIMIT 1; +a +1 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)); +a +1 +10 +20 +30 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) LIMIT 1; +a +1 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) ORDER BY a; +a +1 +10 +20 +30 +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) ORDER BY a LIMIT 1; +a +1 +drop table t1; diff --git a/mysql-test/r/parser.result b/mysql-test/r/parser.result index cfca156f3d6..6029a976ba3 100644 --- a/mysql-test/r/parser.result +++ b/mysql-test/r/parser.result @@ -951,13 +951,23 @@ a 10 20 SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)); -ERROR HY000: Invalid use of group function +a +1 +10 +20 +30 SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) LIMIT 1; -ERROR HY000: Invalid use of group function +a +1 SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a; -ERROR HY000: Invalid use of group function +a +1 +10 +20 +30 SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1; -ERROR HY000: Invalid use of group function +a +1 DROP TABLE t1; # UNION with a parenthesized term with ROLLUP CREATE TABLE t1 (a INT); diff --git a/mysql-test/t/order_by-mdev-10122.test b/mysql-test/t/order_by-mdev-10122.test new file mode 100644 index 00000000000..2520e6487ac --- /dev/null +++ b/mysql-test/t/order_by-mdev-10122.test @@ -0,0 +1,39 @@ +--echo # +--echo # MariaDB does not support group functions in some contexts where MySQL does +--echo # +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (10),(20),(30); + +--echo # All these queries must pass, not returning "Invalid use of group function". +(SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)); +(SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) LIMIT 1; +(SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)); +(SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) LIMIT 1; + +(SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a; +(SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1; +(SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) ORDER BY a; +(SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) ORDER BY a LIMIT 1; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)); +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) LIMIT 1; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)); +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) LIMIT 1; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) ORDER BY a; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,GROUP_CONCAT(a)) ORDER BY a LIMIT 1; + +(SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) ORDER BY a; +(SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) ORDER BY a LIMIT 1; +(SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) ORDER BY a; +(SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) ORDER BY a LIMIT 1; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)); +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) LIMIT 1; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) ORDER BY a; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY MAX(a)) ORDER BY a LIMIT 1; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)); +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) LIMIT 1; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) ORDER BY a; +SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY a,MAX(a)) ORDER BY a LIMIT 1; + +drop table t1; diff --git a/mysql-test/t/parser.test b/mysql-test/t/parser.test index 4bd594bdf8e..a29a2f14d25 100644 --- a/mysql-test/t/parser.test +++ b/mysql-test/t/parser.test @@ -1091,13 +1091,9 @@ INSERT INTO t1 VALUES (10),(20),(30); SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a ORDER BY a) LIMIT 2); ---error ER_INVALID_GROUP_FUNC_USE SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)); ---error ER_INVALID_GROUP_FUNC_USE SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) LIMIT 1; ---error ER_INVALID_GROUP_FUNC_USE SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a; ---error ER_INVALID_GROUP_FUNC_USE SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1; DROP TABLE t1; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index efdbed93802..5c7ae1e88c1 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -820,9 +820,12 @@ JOIN::prepare(TABLE_LIST *tables_init, if (skip_order_by && select_lex != select_lex->master_unit()->global_parameters()) { + nesting_map save_allow_sum_func= thd->lex->allow_sum_func; + thd->lex->allow_sum_func|= (nesting_map)1 << select_lex->nest_level; if (setup_order(thd, ref_ptrs, tables_list, fields_list, all_fields, select_lex->order_list.first)) DBUG_RETURN(-1); + thd->lex->allow_sum_func= save_allow_sum_func; select_lex->order_list.empty(); } From 57341852b5b1e40b1f92e248d84f95de988022c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 7 Feb 2017 16:49:41 +0200 Subject: [PATCH 223/258] MDEV-11746: Wrong result upon using FIRST_VALUE with a window frame Reimplement FIRST_VALUE to act as NTH_VALUE with 0 offset. The previous implementation was flawed when the window frame would remove values. --- mysql-test/r/win_first_last_value.result | 25 ++++++++++++++++++++++++ mysql-test/t/win_first_last_value.test | 17 ++++++++++++++++ sql/item_windowfunc.cc | 12 ------------ sql/item_windowfunc.h | 13 +----------- sql/sql_window.cc | 24 +++++++++++++++-------- 5 files changed, 59 insertions(+), 32 deletions(-) diff --git a/mysql-test/r/win_first_last_value.result b/mysql-test/r/win_first_last_value.result index ba896a4a4f1..ed142f646e6 100644 --- a/mysql-test/r/win_first_last_value.result +++ b/mysql-test/r/win_first_last_value.result @@ -102,3 +102,28 @@ pk a b c d e fst_b lst_b fst_c lst_c fst_d lst_d fst_e lst_e 10 2 0 n_four 0.800 0.01 NULL 0 n_one n_four 0.500 0.800 0.007 0.01 11 2 10 NULL 0.900 NULL NULL 10 n_one NULL 0.500 0.900 0.007 NULL drop table t1; +# +# MDEV-11746: Wrong result upon using FIRST_VALUE with a window frame +# +create table t1 (i int); +insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); +select i, +first_value(i) OVER (order by i rows between CURRENT ROW and 1 FOLLOWING) as fst_1f, +last_value(i) OVER (order by i rows between CURRENT ROW and 1 FOLLOWING) as last_1f, +first_value(i) OVER (order by i rows between 1 PRECEDING AND 1 FOLLOWING) as fst_1p1f, +last_value(i) OVER (order by i rows between 1 PRECEDING AND 1 FOLLOWING) as fst_1p1f, +first_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p, +last_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p +from t1; +i fst_1f last_1f fst_1p1f fst_1p1f fst_2p1p fst_2p1p +1 1 2 1 2 NULL NULL +2 2 3 1 3 1 1 +3 3 4 2 4 1 2 +4 4 5 3 5 2 3 +5 5 6 4 6 3 4 +6 6 7 5 7 4 5 +7 7 8 6 8 5 6 +8 8 9 7 9 6 7 +9 9 10 8 10 7 8 +10 10 10 9 10 8 9 +drop table t1; diff --git a/mysql-test/t/win_first_last_value.test b/mysql-test/t/win_first_last_value.test index 5948cefe18a..6fc694560cf 100644 --- a/mysql-test/t/win_first_last_value.test +++ b/mysql-test/t/win_first_last_value.test @@ -56,3 +56,20 @@ select pk, a, b, c, d, e, from t1; drop table t1; + +--echo # +--echo # MDEV-11746: Wrong result upon using FIRST_VALUE with a window frame +--echo # +create table t1 (i int); +insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); + +select i, + first_value(i) OVER (order by i rows between CURRENT ROW and 1 FOLLOWING) as fst_1f, + last_value(i) OVER (order by i rows between CURRENT ROW and 1 FOLLOWING) as last_1f, + first_value(i) OVER (order by i rows between 1 PRECEDING AND 1 FOLLOWING) as fst_1p1f, + last_value(i) OVER (order by i rows between 1 PRECEDING AND 1 FOLLOWING) as fst_1p1f, + first_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p, + last_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p +from t1; + +drop table t1; diff --git a/sql/item_windowfunc.cc b/sql/item_windowfunc.cc index fb2ad666018..59a22c63ed5 100644 --- a/sql/item_windowfunc.cc +++ b/sql/item_windowfunc.cc @@ -221,18 +221,6 @@ void Item_sum_percent_rank::setup_window_func(THD *thd, Window_spec *window_spec clear(); } -bool Item_sum_first_value::add() -{ - if (value_added) - return false; - - /* TODO(cvicentiu) This is done like this due to how Item_sum_hybrid works. - For this usecase we can actually get rid of arg_cache. arg_cache is just - for running a comparison function. */ - value_added= true; - Item_sum_hybrid_simple::add(); - return false; -} bool Item_sum_hybrid_simple::fix_fields(THD *thd, Item **ref) { diff --git a/sql/item_windowfunc.h b/sql/item_windowfunc.h index 2beed69c0fa..b4953c8a6ac 100644 --- a/sql/item_windowfunc.h +++ b/sql/item_windowfunc.h @@ -331,16 +331,8 @@ class Item_sum_first_value : public Item_sum_hybrid_simple { public: Item_sum_first_value(THD* thd, Item* arg_expr) : - Item_sum_hybrid_simple(thd, arg_expr), - value_added(false) {} + Item_sum_hybrid_simple(thd, arg_expr) {} - bool add(); - - void clear() - { - value_added= false; - Item_sum_hybrid_simple::clear(); - } enum Sumfunctype sum_func () const { @@ -354,9 +346,6 @@ class Item_sum_first_value : public Item_sum_hybrid_simple Item *get_copy(THD *thd, MEM_ROOT *mem_root) { return get_item_copy(thd, mem_root, this); } - - private: - bool value_added; }; /* diff --git a/sql/sql_window.cc b/sql/sql_window.cc index e9e531714f6..668c6a41e08 100644 --- a/sql/sql_window.cc +++ b/sql/sql_window.cc @@ -2311,14 +2311,6 @@ void add_special_frame_cursors(THD *thd, Cursor_manager *cursor_manager, fc->add_sum_func(item_sum); cursor_manager->add_cursor(fc); break; - case Item_sum::FIRST_VALUE_FUNC: - fc= get_frame_cursor(thd, spec, true); - fc->set_no_action(); - cursor_manager->add_cursor(fc); - fc= new Frame_positional_cursor(*fc); - fc->add_sum_func(item_sum); - cursor_manager->add_cursor(fc); - break; case Item_sum::LAST_VALUE_FUNC: fc= get_frame_cursor(thd, spec, false); fc->add_sum_func(item_sum); @@ -2347,6 +2339,22 @@ void add_special_frame_cursors(THD *thd, Cursor_manager *cursor_manager, cursor_manager->add_cursor(fc); break; } + case Item_sum::FIRST_VALUE_FUNC: + { + Frame_cursor *bottom_bound= get_frame_cursor(thd, spec, false); + Frame_cursor *top_bound= get_frame_cursor(thd, spec, true); + cursor_manager->add_cursor(bottom_bound); + cursor_manager->add_cursor(top_bound); + DBUG_ASSERT(item_sum->fixed); + Item *offset_item= new (thd->mem_root) Item_int(thd, 0); + offset_item->fix_fields(thd, &offset_item); + fc= new Frame_positional_cursor(*top_bound, + *top_bound, *bottom_bound, + *offset_item, false); + fc->add_sum_func(item_sum); + cursor_manager->add_cursor(fc); + break; + } case Item_sum::NTH_VALUE_FUNC: { Frame_cursor *bottom_bound= get_frame_cursor(thd, spec, false); From 5bf338435aae358b2661ce2dc04b5a70d3d0c783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 7 Feb 2017 17:16:20 +0200 Subject: [PATCH 224/258] MDEV-11746: Wrong result upon using FIRST_VALUE with a window frame The same approach is needed for LAST_VALUE, otherwise the LAST_VALUE sum functions are not cleared correctly. Now LAST_VALUE behaves as NTH_VALUE with 0 offset, only that the frame that it is examining is the bottom bound, not the top bound. --- mysql-test/r/win_first_last_value.result | 26 +++++++++++++----------- mysql-test/t/win_first_last_value.test | 4 +++- sql/sql_window.cc | 21 ++++++++++++++----- 3 files changed, 33 insertions(+), 18 deletions(-) diff --git a/mysql-test/r/win_first_last_value.result b/mysql-test/r/win_first_last_value.result index ed142f646e6..b8fab458249 100644 --- a/mysql-test/r/win_first_last_value.result +++ b/mysql-test/r/win_first_last_value.result @@ -113,17 +113,19 @@ last_value(i) OVER (order by i rows between CURRENT ROW and 1 FOLLOWING) as last first_value(i) OVER (order by i rows between 1 PRECEDING AND 1 FOLLOWING) as fst_1p1f, last_value(i) OVER (order by i rows between 1 PRECEDING AND 1 FOLLOWING) as fst_1p1f, first_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p, -last_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p +last_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p, +first_value(i) OVER (order by i rows between 1 FOLLOWING AND 2 FOLLOWING) as fst_1f2f, +last_value(i) OVER (order by i rows between 1 FOLLOWING AND 2 FOLLOWING) as fst_1f2f from t1; -i fst_1f last_1f fst_1p1f fst_1p1f fst_2p1p fst_2p1p -1 1 2 1 2 NULL NULL -2 2 3 1 3 1 1 -3 3 4 2 4 1 2 -4 4 5 3 5 2 3 -5 5 6 4 6 3 4 -6 6 7 5 7 4 5 -7 7 8 6 8 5 6 -8 8 9 7 9 6 7 -9 9 10 8 10 7 8 -10 10 10 9 10 8 9 +i fst_1f last_1f fst_1p1f fst_1p1f fst_2p1p fst_2p1p fst_1f2f fst_1f2f +1 1 2 1 2 NULL NULL 2 3 +2 2 3 1 3 1 1 3 4 +3 3 4 2 4 1 2 4 5 +4 4 5 3 5 2 3 5 6 +5 5 6 4 6 3 4 6 7 +6 6 7 5 7 4 5 7 8 +7 7 8 6 8 5 6 8 9 +8 8 9 7 9 6 7 9 10 +9 9 10 8 10 7 8 10 10 +10 10 10 9 10 8 9 NULL NULL drop table t1; diff --git a/mysql-test/t/win_first_last_value.test b/mysql-test/t/win_first_last_value.test index 6fc694560cf..c7fd58472d8 100644 --- a/mysql-test/t/win_first_last_value.test +++ b/mysql-test/t/win_first_last_value.test @@ -69,7 +69,9 @@ select i, first_value(i) OVER (order by i rows between 1 PRECEDING AND 1 FOLLOWING) as fst_1p1f, last_value(i) OVER (order by i rows between 1 PRECEDING AND 1 FOLLOWING) as fst_1p1f, first_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p, - last_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p + last_value(i) OVER (order by i rows between 2 PRECEDING AND 1 PRECEDING) as fst_2p1p, + first_value(i) OVER (order by i rows between 1 FOLLOWING AND 2 FOLLOWING) as fst_1f2f, + last_value(i) OVER (order by i rows between 1 FOLLOWING AND 2 FOLLOWING) as fst_1f2f from t1; drop table t1; diff --git a/sql/sql_window.cc b/sql/sql_window.cc index 668c6a41e08..37095ad78ca 100644 --- a/sql/sql_window.cc +++ b/sql/sql_window.cc @@ -2311,11 +2311,6 @@ void add_special_frame_cursors(THD *thd, Cursor_manager *cursor_manager, fc->add_sum_func(item_sum); cursor_manager->add_cursor(fc); break; - case Item_sum::LAST_VALUE_FUNC: - fc= get_frame_cursor(thd, spec, false); - fc->add_sum_func(item_sum); - cursor_manager->add_cursor(fc); - break; case Item_sum::LEAD_FUNC: case Item_sum::LAG_FUNC: { @@ -2355,6 +2350,22 @@ void add_special_frame_cursors(THD *thd, Cursor_manager *cursor_manager, cursor_manager->add_cursor(fc); break; } + case Item_sum::LAST_VALUE_FUNC: + { + Frame_cursor *bottom_bound= get_frame_cursor(thd, spec, false); + Frame_cursor *top_bound= get_frame_cursor(thd, spec, true); + cursor_manager->add_cursor(bottom_bound); + cursor_manager->add_cursor(top_bound); + DBUG_ASSERT(item_sum->fixed); + Item *offset_item= new (thd->mem_root) Item_int(thd, 0); + offset_item->fix_fields(thd, &offset_item); + fc= new Frame_positional_cursor(*bottom_bound, + *top_bound, *bottom_bound, + *offset_item, false); + fc->add_sum_func(item_sum); + cursor_manager->add_cursor(fc); + break; + } case Item_sum::NTH_VALUE_FUNC: { Frame_cursor *bottom_bound= get_frame_cursor(thd, spec, false); From bdca350f59a62adfccc0f704efb5a3a34f0955ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Fri, 10 Feb 2017 12:39:10 +0200 Subject: [PATCH 225/258] Allow READ_RECORD to make use of RAII and free itself on destruction --- sql/records.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sql/records.h b/sql/records.h index 1928acfd4f4..473cb610be5 100644 --- a/sql/records.h +++ b/sql/records.h @@ -27,6 +27,10 @@ class SQL_SELECT; class Copy_field; class SORT_INFO; +struct READ_RECORD; + +void end_read_record(READ_RECORD *info); + /** A context for reading through a single table using a chosen access method: index read, scan, etc, use of cache, etc. @@ -73,7 +77,8 @@ struct READ_RECORD Copy_field *copy_field; Copy_field *copy_field_end; public: - READ_RECORD() {} + READ_RECORD() : table(NULL), cache(NULL) {} + ~READ_RECORD() { end_read_record(this); } }; bool init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form, @@ -82,7 +87,6 @@ bool init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form, bool print_errors, bool disable_rr_cache); bool init_read_record_idx(READ_RECORD *info, THD *thd, TABLE *table, bool print_error, uint idx, bool reverse); -void end_read_record(READ_RECORD *info); void rr_unlock_row(st_join_table *tab); From dc90e24978194fba352dca6f9295024884b5c32f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Fri, 10 Feb 2017 12:46:44 +0200 Subject: [PATCH 226/258] Define a helper class to allow for saving sql_mode using RAII On construction the Sql_mode_save class stores the current THD's sql_mode. On destruction, the THD's mode is restored. --- sql/sql_acl.cc | 29 ++++++++++------------------- sql/sql_class.h | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index ada5ab1cd28..c2712755584 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -1198,11 +1198,10 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) { TABLE *table; READ_RECORD read_record_info; - bool return_val= TRUE; bool check_no_resolve= specialflag & SPECIAL_NO_RESOLVE; char tmp_name[SAFE_NAME_LEN+1]; int password_length; - sql_mode_t old_sql_mode= thd->variables.sql_mode; + Sql_mode_save old_mode_save(thd); DBUG_ENTER("acl_load"); thd->variables.sql_mode&= ~MODE_PAD_CHAR_TO_FULL_LENGTH; @@ -1214,7 +1213,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) { if (init_read_record(&read_record_info, thd, table, NULL, NULL, 1, 1, FALSE)) - goto end; + DBUG_RETURN(TRUE); table->use_all_columns(); while (!(read_record_info.read_record(&read_record_info))) { @@ -1269,7 +1268,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) if (init_read_record(&read_record_info, thd, table=tables[USER_TABLE].table, NULL, NULL, 1, 1, FALSE)) - goto end; + DBUG_RETURN(TRUE); table->use_all_columns(); username_char_length= MY_MIN(table->field[1]->char_length(), @@ -1280,7 +1279,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) { sql_print_error("Fatal error: mysql.user table is damaged or in " "unsupported 3.20 format."); - goto end; + DBUG_RETURN(TRUE); } DBUG_PRINT("info",("user table fields: %d, password length: %d", @@ -1294,7 +1293,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) mysql_mutex_unlock(&LOCK_global_system_variables); sql_print_error("Fatal error: mysql.user table is in old format, " "but server started with --secure-auth option."); - goto end; + DBUG_RETURN(TRUE); } mysql_user_table_is_in_short_password_format= true; if (global_system_variables.old_passwords) @@ -1527,7 +1526,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) if (init_read_record(&read_record_info, thd, table=tables[DB_TABLE].table, NULL, NULL, 1, 1, FALSE)) - goto end; + DBUG_RETURN(TRUE); table->use_all_columns(); while (!(read_record_info.read_record(&read_record_info))) { @@ -1594,7 +1593,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) { if (init_read_record(&read_record_info, thd, table, NULL, NULL, 1, 1, FALSE)) - goto end; + DBUG_RETURN(TRUE); table->use_all_columns(); while (!(read_record_info.read_record(&read_record_info))) { @@ -1603,10 +1602,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) if (proxy.check_validity(check_no_resolve)) continue; if (push_dynamic(&acl_proxy_users, (uchar*) &proxy)) - { - end_read_record(&read_record_info); - goto end; - } + DBUG_RETURN(TRUE); } my_qsort((uchar*) dynamic_element(&acl_proxy_users, 0, ACL_PROXY_USER*), acl_proxy_users.elements, @@ -1624,7 +1620,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) { if (init_read_record(&read_record_info, thd, table, NULL, NULL, 1, 1, FALSE)) - goto end; + DBUG_RETURN(TRUE); table->use_all_columns(); MEM_ROOT temp_root; @@ -1662,12 +1658,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) init_check_host(); initialized=1; - return_val= FALSE; - -end: - end_read_record(&read_record_info); - thd->variables.sql_mode= old_sql_mode; - DBUG_RETURN(return_val); + DBUG_RETURN(FALSE); } diff --git a/sql/sql_class.h b/sql/sql_class.h index 3d9cbc65c22..ffdd63f1f4c 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -5712,6 +5712,22 @@ inline bool binlog_should_compress(ulong len) len >= opt_bin_log_compress_min_len; } + +/** + Save thd sql_mode on instantiation. + On destruction it resets the mode to the previously stored value. +*/ +class Sql_mode_save +{ + public: + Sql_mode_save(THD *thd) : thd(thd), old_mode(thd->variables.sql_mode) {} + ~Sql_mode_save() { thd->variables.sql_mode = old_mode; } + + private: + THD *thd; + sql_mode_t old_mode; // SQL mode saved at construction time. +}; + #endif /* MYSQL_SERVER */ #endif /* SQL_CLASS_INCLUDED */ From 5ab93737be716721e7b5a9a87206dbdc52b7a649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Mon, 13 Feb 2017 03:15:33 +0200 Subject: [PATCH 227/258] MDEV-11170: MariaDB 10.2 cannot start on MySQL 5.7 datadir PART 1 of the fix requires a bit of refactoring to not use hard-coded field indices any more. Create classes that express the grant tables structure, without exposing the underlying field indices. Most of the code is converted to use these classes, except parts which are not directly affected by the MDEV-11170. These however are TODO items for subsequent refactoring. --- sql/sql_acl.cc | 1460 ++++++++++++++++++++++++++++++++---------------- sql/structs.h | 2 +- 2 files changed, 995 insertions(+), 467 deletions(-) diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index c2712755584..dd0c302ae04 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -365,6 +365,10 @@ static bool show_table_and_column_privileges(THD *, const char *, const char *, static int show_routine_grants(THD *, const char *, const char *, HASH *, const char *, int, char *, int); +class Grant_tables; +class User_table; +class Proxies_priv_table; + class ACL_PROXY_USER :public ACL_ACCESS { acl_host_and_ip host; @@ -412,14 +416,7 @@ public: with_grant_arg); } - void init(TABLE *table, MEM_ROOT *mem) - { - init (get_field(mem, table->field[MYSQL_PROXIES_PRIV_HOST]), - get_field(mem, table->field[MYSQL_PROXIES_PRIV_USER]), - get_field(mem, table->field[MYSQL_PROXIES_PRIV_PROXIED_HOST]), - get_field(mem, table->field[MYSQL_PROXIES_PRIV_PROXIED_USER]), - table->field[MYSQL_PROXIES_PRIV_WITH_GRANT]->val_int() != 0); - } + void init(const Proxies_priv_table& proxies_priv_table, MEM_ROOT *mem); bool get_with_grant() { return with_grant; } const char *get_user() { return user; } @@ -731,7 +728,6 @@ static DYNAMIC_ARRAY acl_wild_hosts; static Hash_filo *acl_cache; static uint grant_version=0; /* Version of priv tables. incremented by acl_load */ static ulong get_access(TABLE *form,uint fieldnr, uint *next_field=0); -static bool check_is_role(TABLE *form); static int acl_compare(ACL_ACCESS *a,ACL_ACCESS *b); static ulong get_sort(uint count,...); static void init_check_host(void); @@ -742,12 +738,12 @@ static ACL_USER *find_user_wild(const char *host, const char *user, const char * static ACL_ROLE *find_acl_role(const char *user); static ROLE_GRANT_PAIR *find_role_grant_pair(const LEX_STRING *u, const LEX_STRING *h, const LEX_STRING *r); static ACL_USER_BASE *find_acl_user_base(const char *user, const char *host); -static bool update_user_table(THD *, TABLE *, const char *, const char *, const +static bool update_user_table(THD *, const User_table &, const char *, const char *, const char *, uint); -static bool acl_load(THD *thd, TABLE_LIST *tables); -static bool grant_load(THD *thd, TABLE_LIST *tables); +static bool acl_load(THD *thd, const Grant_tables& grant_tables); static inline void get_grantor(THD *thd, char* grantor); static bool add_role_user_mapping(const char *uname, const char *hname, const char *rname); +static bool get_YN_as_bool(Field *field); #define ROLE_CYCLE_FOUND 2 static int traverse_role_graph_up(ACL_ROLE *, void *, @@ -784,31 +780,614 @@ static const int Table_procs_priv= 1 << PROCS_PRIV_TABLE; static const int Table_proxies_priv= 1 << PROXIES_PRIV_TABLE; static const int Table_roles_mapping= 1 << ROLES_MAPPING_TABLE; -static int open_grant_tables(THD *thd, TABLE_LIST *tables, - enum thr_lock_type lock_type, int tables_to_open); +/** + Base class representing a generic grant table from the mysql database. -const LEX_STRING acl_table_names[]= // matches enum_acl_tables + The potential tables that this class can represent are: + user, db, columns_priv, tables_priv, host, procs_priv, proxies_priv, + roles_mapping + + Objects belonging to this parent class can only be constructed by the + Grants_table class. This ensures the correct initialization of the objects. +*/ +class Grant_table_base { - { C_STRING_WITH_LEN("user") }, - { C_STRING_WITH_LEN("db") }, - { C_STRING_WITH_LEN("tables_priv") }, - { C_STRING_WITH_LEN("columns_priv") }, - { C_STRING_WITH_LEN("host") }, - { C_STRING_WITH_LEN("procs_priv") }, - { C_STRING_WITH_LEN("proxies_priv") }, - { C_STRING_WITH_LEN("roles_mapping") } + public: + /* Number of fields for this Grant Table. */ + uint num_fields() const { return tl.table->s->fields; } + /* Check if the table exists after an attempt to open it was made. + Some tables, such as the host table in MySQL 5.6.7+ are missing. */ + bool table_exists() const { return tl.table; }; + /* Initializes the READ_RECORD structure provided as a parameter + to read through the whole table, with all columns available. Cleaning up + is the caller's job. */ + bool init_read_record(READ_RECORD* info, THD* thd) const + { + DBUG_ASSERT(tl.table); + bool result= ::init_read_record(info, thd, tl.table, NULL, NULL, 1, + true, false); + if (!result) + tl.table->use_all_columns(); + return result; + } + + /* Return the number of privilege columns for this table. */ + uint num_privileges() const { return num_privilege_cols; } + /* Return a privilege column by index. */ + Field* priv_field(uint privilege_idx) const + { + DBUG_ASSERT(privilege_idx < num_privileges()); + return tl.table->field[start_privilege_column + privilege_idx]; + } + + /* Fetch the privileges from the table as a set of bits. The first column + is represented by the first bit in the result, the second column by the + second bit, etc. */ + ulong get_access() const + { + return get_access(start_privilege_column, + start_privilege_column + num_privileges() - 1); + } + + /* Return the underlying TABLE handle. */ + TABLE* table() const + { + return tl.table; + } + + /** Check if the table was opened, issue an error otherwise. */ + int no_such_table() const + { + if (table_exists()) + return 0; + + my_error(ER_NO_SUCH_TABLE, MYF(0), tl.db, tl.alias); + return 1; + } + + + protected: + friend class Grant_tables; + + Grant_table_base() : start_privilege_column(0), num_privilege_cols(0) + { + bzero(&tl, sizeof(tl)); + }; + + /* Initialization sequence common for all grant tables. This should be called + after all table-specific initialization is performed. */ + void init(enum thr_lock_type lock_type, bool is_optional) + { + tl.open_type= OT_BASE_ONLY; + if (lock_type >= TL_WRITE_ALLOW_WRITE) + tl.updating= 1; + if (is_optional) + tl.open_strategy= TABLE_LIST::OPEN_IF_EXISTS; + } + + /* + Get all access bits from table between start_field and end_field indices. + + IMPLEMENTATION + The record should be already read in table->record[0]. All privileges + are specified as an ENUM(Y,N). + + SYNOPSIS + get_access() + start_field_idx The field index at which the first privilege + specification begins. + end_field_idx The field index at which the last privilege + specification is located. + + RETURN VALUE + privilege mask + */ + ulong get_access(uint start_field_idx, uint end_field_idx) const + { + ulong access_bits= 0, bit= 1; + for (uint i = start_field_idx; i <= end_field_idx; i++, bit<<=1) + { + if (get_YN_as_bool(tl.table->field[i])) + access_bits|= bit; + } + return access_bits; + } + + /* Compute how many privilege columns this table has. This method + can only be called after the table has been opened. + + IMPLEMENTATION + A privilege column is of type enum('Y', 'N'). Privilege columns are + expected to be one after another. + */ + void compute_num_privilege_cols() + { + if (!table_exists()) // Table does not exist or not opened. + return; + + num_privilege_cols= 0; + for (uint i= 0; i < num_fields(); i++) + { + Field *field= tl.table->field[i]; + if (num_privilege_cols > 0 && field->real_type() != MYSQL_TYPE_ENUM) + return; + if (field->real_type() == MYSQL_TYPE_ENUM && + static_cast(field)->typelib->count == 2) + { + num_privilege_cols++; + if (num_privilege_cols == 1) + start_privilege_column= i; + } + } + } + + /* The index at which privilege columns start. */ + uint start_privilege_column; + /* The number of privilege columns in the table. */ + uint num_privilege_cols; + + TABLE_LIST tl; }; -/** check if the table was opened, issue an error otherwise */ -static int no_such_table(TABLE_LIST *tl) +class User_table: public Grant_table_base { - if (tl->table) - return 0; + public: + Field* host() const + { return tl.table->field[0]; } + Field* user() const + { return tl.table->field[1]; } + Field* password() const + { return tl.table->field[2]; } + /* Columns after privilege columns. */ + Field* ssl_type() const + { return tl.table->field[start_privilege_column + num_privileges()]; } + Field* ssl_cipher() const + { return tl.table->field[start_privilege_column + num_privileges() + 1]; } + Field* x509_issuer() const + { return tl.table->field[start_privilege_column + num_privileges() + 2]; } + Field* x509_subject() const + { return tl.table->field[start_privilege_column + num_privileges() + 3]; } + Field* max_questions() const + { return tl.table->field[start_privilege_column + num_privileges() + 4]; } + Field* max_updates() const + { return tl.table->field[start_privilege_column + num_privileges() + 5]; } + Field* max_connections() const + { return tl.table->field[start_privilege_column + num_privileges() + 6]; } + Field* max_user_connections() const + { return tl.table->field[start_privilege_column + num_privileges() + 7]; } + Field* plugin() const + { return tl.table->field[start_privilege_column + num_privileges() + 8]; } + Field* authentication_string() const + { return tl.table->field[start_privilege_column + num_privileges() + 9]; } + Field* password_expired() const + { return tl.table->field[start_privilege_column + num_privileges() + 10]; } + Field* is_role() const + { return tl.table->field[start_privilege_column + num_privileges() + 11]; } + Field* default_role() const + { return tl.table->field[start_privilege_column + num_privileges() + 12]; } + Field* max_statement_time() const + { return tl.table->field[start_privilege_column + num_privileges() + 13]; } - my_error(ER_NO_SUCH_TABLE, MYF(0), tl->db, tl->alias); - return 1; + /* + Check if a user entry in the user table is marked as being a role entry + + IMPLEMENTATION + Access the coresponding column and check the coresponding ENUM of the form + ENUM('N', 'Y') + + SYNOPSIS + check_is_role() + form an open table to read the entry from. + The record should be already read in table->record[0] + + RETURN VALUE + TRUE if the user is marked as a role + FALSE otherwise + */ + bool check_is_role() const + { + /* Table version does not support roles */ + if (num_fields() < 44) + return false; + + return get_YN_as_bool(is_role()); + } + + + private: + friend class Grant_tables; + + /* Only Grant_tables can instantiate this class. */ + User_table() {}; + + void init(enum thr_lock_type lock_type) + { + /* We are relying on init_one_table zeroing out the TABLE_LIST structure. */ + tl.init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("user"), + NULL, lock_type); + Grant_table_base::init(lock_type, false); + } +}; + +class Db_table: public Grant_table_base +{ + public: + Field* host() const { return tl.table->field[0]; } + Field* db() const { return tl.table->field[1]; } + Field* user() const { return tl.table->field[2]; } + + private: + friend class Grant_tables; + + Db_table() {}; + + void init(enum thr_lock_type lock_type) + { + /* We are relying on init_one_table zeroing out the TABLE_LIST structure. */ + tl.init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("db"), + NULL, lock_type); + Grant_table_base::init(lock_type, false); + } +}; + +class Tables_priv_table: public Grant_table_base +{ + public: + Field* host() const { return tl.table->field[0]; } + Field* db() const { return tl.table->field[1]; } + Field* user() const { return tl.table->field[2]; } + Field* table_name() const { return tl.table->field[3]; } + Field* grantor() const { return tl.table->field[4]; } + Field* timestamp() const { return tl.table->field[5]; } + Field* table_priv() const { return tl.table->field[6]; } + Field* column_priv() const { return tl.table->field[7]; } + + private: + friend class Grant_tables; + + Tables_priv_table() {}; + + void init(enum thr_lock_type lock_type, Grant_table_base *next_table= NULL) + { + /* We are relying on init_one_table zeroing out the TABLE_LIST structure. */ + tl.init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("tables_priv"), + NULL, lock_type); + Grant_table_base::init(lock_type, false); + } +}; + +class Columns_priv_table: public Grant_table_base +{ + public: + Field* host() const { return tl.table->field[0]; } + Field* db() const { return tl.table->field[1]; } + Field* user() const { return tl.table->field[2]; } + Field* table_name() const { return tl.table->field[3]; } + Field* column_name() const { return tl.table->field[4]; } + Field* timestamp() const { return tl.table->field[5]; } + Field* column_priv() const { return tl.table->field[6]; } + + private: + friend class Grant_tables; + + Columns_priv_table() {}; + + void init(enum thr_lock_type lock_type) + { + /* We are relying on init_one_table zeroing out the TABLE_LIST structure. */ + tl.init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("columns_priv"), + NULL, lock_type); + Grant_table_base::init(lock_type, false); + } +}; + +class Host_table: public Grant_table_base +{ + public: + Field* host() const { return tl.table->field[0]; } + Field* db() const { return tl.table->field[1]; } + + private: + friend class Grant_tables; + + Host_table() {} + + void init(enum thr_lock_type lock_type) + { + /* We are relying on init_one_table zeroing out the TABLE_LIST structure. */ + tl.init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("host"), + NULL, lock_type); + Grant_table_base::init(lock_type, true); + } +}; + +class Procs_priv_table: public Grant_table_base +{ + public: + Field* host() const { return tl.table->field[0]; } + Field* db() const { return tl.table->field[1]; } + Field* user() const { return tl.table->field[2]; } + Field* routine_name() const { return tl.table->field[3]; } + Field* routine_type() const { return tl.table->field[4]; } + Field* grantor() const { return tl.table->field[5]; } + Field* proc_priv() const { return tl.table->field[6]; } + Field* timestamp() const { return tl.table->field[7]; } + + private: + friend class Grant_tables; + + Procs_priv_table() {} + + void init(enum thr_lock_type lock_type) + { + /* We are relying on init_one_table zeroing out the TABLE_LIST structure. */ + tl.init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("procs_priv"), + NULL, lock_type); + Grant_table_base::init(lock_type, true); + } +}; + +class Proxies_priv_table: public Grant_table_base +{ + public: + Field* host() const { return tl.table->field[0]; } + Field* user() const { return tl.table->field[1]; } + Field* proxied_host() const { return tl.table->field[2]; } + Field* proxied_user() const { return tl.table->field[3]; } + Field* with_grant() const { return tl.table->field[4]; } + Field* grantor() const { return tl.table->field[5]; } + Field* timestamp() const { return tl.table->field[6]; } + + private: + friend class Grant_tables; + + Proxies_priv_table() {} + + void init(enum thr_lock_type lock_type) + { + /* We are relying on init_one_table zeroing out the TABLE_LIST structure. */ + tl.init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("proxies_priv"), + NULL, lock_type); + Grant_table_base::init(lock_type, true); + } +}; + +class Roles_mapping_table: public Grant_table_base +{ + public: + Field* host() const { return tl.table->field[0]; } + Field* user() const { return tl.table->field[1]; } + Field* role() const { return tl.table->field[2]; } + Field* admin_option() const { return tl.table->field[3]; } + + private: + friend class Grant_tables; + + Roles_mapping_table() {} + + void init(enum thr_lock_type lock_type) + { + /* We are relying on init_one_table zeroing out the TABLE_LIST structure. */ + tl.init_one_table(C_STRING_WITH_LEN("mysql"), + C_STRING_WITH_LEN("roles_mapping"), + NULL, lock_type); + Grant_table_base::init(lock_type, true); + } +}; + +/** + Class that represents a collection of grant tables. +*/ +class Grant_tables +{ + public: + /* When constructing the Grant_tables object, we initialize only + the tables which are going to be opened. + @param which_tables Bitmap of which tables to open. + @param lock_type Lock type to use when opening tables. + */ + Grant_tables(int which_tables, enum thr_lock_type lock_type) + { + DBUG_ENTER("Grant_tables::Grant_tables"); + DBUG_PRINT("info", ("which_tables: %x, lock_type: %u", + which_tables, lock_type)); + DBUG_ASSERT(which_tables); /* At least one table must be opened. */ + Grant_table_base* prev= NULL; + /* We start from the last table, Table_roles_mapping, such that + the first one in the linked list is Table_user. */ + if (which_tables & Table_roles_mapping) + { + m_roles_mapping_table.init(lock_type); + prev= &m_roles_mapping_table; + } + if (which_tables & Table_proxies_priv) + { + m_proxies_priv_table.init(lock_type); + link_tables(&m_proxies_priv_table, prev); + prev= &m_proxies_priv_table; + } + if (which_tables & Table_procs_priv) + { + m_procs_priv_table.init(lock_type); + link_tables(&m_procs_priv_table, prev); + prev= &m_procs_priv_table; + } + if (which_tables & Table_host) + { + m_host_table.init(lock_type); + link_tables(&m_host_table, prev); + prev= &m_host_table; + } + if (which_tables & Table_columns_priv) + { + m_columns_priv_table.init(lock_type); + link_tables(&m_columns_priv_table, prev); + prev= &m_columns_priv_table; + } + if (which_tables & Table_tables_priv) + { + m_tables_priv_table.init(lock_type); + link_tables(&m_tables_priv_table, prev); + prev= &m_tables_priv_table; + } + if (which_tables & Table_db) + { + m_db_table.init(lock_type); + link_tables(&m_db_table, prev); + prev= &m_db_table; + } + if (which_tables & Table_user) + { + m_user_table.init(lock_type); + link_tables(&m_user_table, prev); + prev= &m_user_table; + } + + first_table_in_list= prev; + DBUG_VOID_RETURN; + } + + /* Before any operation is possible on grant tables, they must be opened. + This opens the tables according to the lock type specified during + construction. + + @retval 1 replication filters matched. Abort the operation, + but return OK (!) + @retval 0 tables were opened successfully + @retval -1 error, tables could not be opened + */ + int open_and_lock(THD *thd) + { + DBUG_ENTER("Grant_tables::open_and_lock"); + DBUG_ASSERT(first_table_in_list); +#ifdef HAVE_REPLICATION + if (first_table_in_list->tl.lock_type >= TL_WRITE_ALLOW_WRITE && + thd->slave_thread && !thd->spcont) + { + /* + GRANT and REVOKE are applied the slave in/exclusion rules as they are + some kind of updates to the mysql.% tables. + */ + Rpl_filter *rpl_filter= thd->system_thread_info.rpl_sql_info->rpl_filter; + if (rpl_filter->is_on() && + !rpl_filter->tables_ok(0, &first_table_in_list->tl)) + DBUG_RETURN(1); + } +#endif + if (open_and_lock_tables(thd, &first_table_in_list->tl, FALSE, + MYSQL_LOCK_IGNORE_TIMEOUT)) + DBUG_RETURN(-1); + + /* + We can read privilege tables even when !initialized. + This can be acl_load() - server startup or FLUSH PRIVILEGES + */ + if (first_table_in_list->tl.lock_type >= TL_WRITE_ALLOW_WRITE && + !initialized) + { + my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--skip-grant-tables"); + DBUG_RETURN(-1); + } + + /* The privilge columns vary based on MariaDB version. Figure out + how many we have after we've opened the table. */ + m_user_table.compute_num_privilege_cols(); + m_db_table.compute_num_privilege_cols(); + m_tables_priv_table.compute_num_privilege_cols(); + m_columns_priv_table.compute_num_privilege_cols(); + m_host_table.compute_num_privilege_cols(); + m_procs_priv_table.compute_num_privilege_cols(); + m_proxies_priv_table.compute_num_privilege_cols(); + m_roles_mapping_table.compute_num_privilege_cols(); + DBUG_RETURN(0); + } + + inline const User_table& user_table() const + { + return m_user_table; + } + + inline const Db_table& db_table() const + { + return m_db_table; + } + + + inline const Tables_priv_table& tables_priv_table() const + { + return m_tables_priv_table; + } + + inline const Columns_priv_table& columns_priv_table() const + { + return m_columns_priv_table; + } + + inline const Host_table& host_table() const + { + return m_host_table; + } + + inline const Procs_priv_table& procs_priv_table() const + { + return m_procs_priv_table; + } + + inline const Proxies_priv_table& proxies_priv_table() const + { + return m_proxies_priv_table; + } + + inline const Roles_mapping_table& roles_mapping_table() const + { + return m_roles_mapping_table; + } + + private: + User_table m_user_table; + Db_table m_db_table; + Tables_priv_table m_tables_priv_table; + Columns_priv_table m_columns_priv_table; + Host_table m_host_table; + Procs_priv_table m_procs_priv_table; + Proxies_priv_table m_proxies_priv_table; + Roles_mapping_table m_roles_mapping_table; + + /* The grant tables are set-up in a linked list. We keep the head of it. */ + Grant_table_base *first_table_in_list; + /** + Chain two grant tables' TABLE_LIST members. + */ + static void link_tables(Grant_table_base *from, Grant_table_base *to) + { + DBUG_ASSERT(from); + if (to) + from->tl.next_local= from->tl.next_global= &to->tl; + else + from->tl.next_local= from->tl.next_global= NULL; + } +}; + + +void ACL_PROXY_USER::init(const Proxies_priv_table& proxies_priv_table, + MEM_ROOT *mem) +{ + init(get_field(mem, proxies_priv_table.host()), + get_field(mem, proxies_priv_table.user()), + get_field(mem, proxies_priv_table.proxied_host()), + get_field(mem, proxies_priv_table.proxied_user()), + proxies_priv_table.with_grant()->val_int() != 0); } + + /* Enumeration of various ACL's and Hashes used in handle_grant_struct() */ @@ -1194,9 +1773,8 @@ static bool set_user_plugin (ACL_USER *user, int password_len) TRUE Error */ -static bool acl_load(THD *thd, TABLE_LIST *tables) +static bool acl_load(THD *thd, const Grant_tables& tables) { - TABLE *table; READ_RECORD read_record_info; bool check_no_resolve= specialflag & SPECIAL_NO_RESOLVE; char tmp_name[SAFE_NAME_LEN+1]; @@ -1208,18 +1786,17 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) grant_version++; /* Privileges updated */ + const Host_table& host_table= tables.host_table(); init_sql_alloc(&acl_memroot, ACL_ALLOC_BLOCK_SIZE, 0, MYF(0)); - if ((table= tables[HOST_TABLE].table)) // "host" table may not exist (e.g. in MySQL 5.6.7+) + if (host_table.table_exists()) // "host" table may not exist (e.g. in MySQL 5.6.7+) { - if (init_read_record(&read_record_info, thd, table, NULL, NULL, - 1, 1, FALSE)) - DBUG_RETURN(TRUE); - table->use_all_columns(); + if (host_table.init_read_record(&read_record_info, thd)) + DBUG_RETURN(true); while (!(read_record_info.read_record(&read_record_info))) { ACL_HOST host; - update_hostname(&host.host,get_field(&acl_memroot, table->field[0])); - host.db= get_field(&acl_memroot, table->field[1]); + update_hostname(&host.host, get_field(&acl_memroot, host_table.host())); + host.db= get_field(&acl_memroot, host_table.db()); if (lower_case_table_names && host.db) { /* @@ -1240,9 +1817,9 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) "possible to remove this privilege using REVOKE.", host.host.hostname, host.db); } - host.access= get_access(table,2); + host.access= host_table.get_access(); host.access= fix_rights_for_db(host.access); - host.sort= get_sort(2,host.host.hostname,host.db); + host.sort= get_sort(2, host.host.hostname, host.db); if (check_no_resolve && hostname_requires_resolving(host.host.hostname)) { sql_print_warning("'host' entry '%s|%s' " @@ -1252,7 +1829,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) continue; } #ifndef TO_BE_REMOVED - if (table->s->fields == 8) + if (host_table.num_fields() == 8) { // Without grant if (host.access & CREATE_ACL) host.access|=REFERENCES_ACL | INDEX_ACL | ALTER_ACL | CREATE_TMP_ACL; @@ -1260,21 +1837,20 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) #endif (void) push_dynamic(&acl_hosts,(uchar*) &host); } - my_qsort((uchar*) dynamic_element(&acl_hosts,0,ACL_HOST*),acl_hosts.elements, - sizeof(ACL_HOST),(qsort_cmp) acl_compare); + my_qsort((uchar*) dynamic_element(&acl_hosts, 0, ACL_HOST*), + acl_hosts.elements, sizeof(ACL_HOST),(qsort_cmp) acl_compare); end_read_record(&read_record_info); } freeze_size(&acl_hosts); - if (init_read_record(&read_record_info, thd, table=tables[USER_TABLE].table, - NULL, NULL, 1, 1, FALSE)) - DBUG_RETURN(TRUE); - table->use_all_columns(); + const User_table& user_table= tables.user_table(); + if (user_table.init_read_record(&read_record_info, thd)) + DBUG_RETURN(true); - username_char_length= MY_MIN(table->field[1]->char_length(), + username_char_length= MY_MIN(user_table.user()->char_length(), USERNAME_CHAR_LENGTH); - password_length= table->field[2]->field_length / - table->field[2]->charset()->mbmaxlen; + password_length= user_table.password()->field_length / + user_table.password()->charset()->mbmaxlen; if (password_length < SCRAMBLED_PASSWORD_CHAR_LENGTH_323) { sql_print_error("Fatal error: mysql.user table is damaged or in " @@ -1283,7 +1859,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) } DBUG_PRINT("info",("user table fields: %d, password length: %d", - table->s->fields, password_length)); + user_table.num_fields(), password_length)); mysql_mutex_lock(&LOCK_global_system_variables); if (password_length < SCRAMBLED_PASSWORD_CHAR_LENGTH) @@ -1322,8 +1898,8 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) ACL_USER user; bool is_role= FALSE; bzero(&user, sizeof(user)); - update_hostname(&user.host, get_field(&acl_memroot, table->field[0])); - char *username= get_field(&acl_memroot, table->field[1]); + update_hostname(&user.host, get_field(&acl_memroot, user_table.host())); + char *username= get_field(&acl_memroot, user_table.user()); user.user.str= username; user.user.length= safe_strlen(username); @@ -1331,7 +1907,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) If the user entry is a role, skip password and hostname checks A user can not log in with a role so some checks are not necessary */ - is_role= check_is_role(table); + is_role= user_table.check_is_role(); if (is_role && is_invalid_role_name(username)) { @@ -1349,7 +1925,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) continue; } - char *password= get_field(&acl_memroot, table->field[2]); + char *password= get_field(&acl_memroot, user_table.password()); uint password_len= safe_strlen(password); user.auth_string.str= safe_str(password); user.auth_string.length= password_len; @@ -1357,30 +1933,29 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) if (!is_role && set_user_plugin(&user, password_len)) continue; - + { - uint next_field; - user.access= get_access(table,3,&next_field) & GLOBAL_ACLS; + user.access= user_table.get_access() & GLOBAL_ACLS; /* if it is pre 5.0.1 privilege table then map CREATE privilege on CREATE VIEW & SHOW VIEW privileges */ - if (table->s->fields <= 31 && (user.access & CREATE_ACL)) + if (user_table.num_fields() <= 31 && (user.access & CREATE_ACL)) user.access|= (CREATE_VIEW_ACL | SHOW_VIEW_ACL); /* if it is pre 5.0.2 privilege table then map CREATE/ALTER privilege on CREATE PROCEDURE & ALTER PROCEDURE privileges */ - if (table->s->fields <= 33 && (user.access & CREATE_ACL)) + if (user_table.num_fields() <= 33 && (user.access & CREATE_ACL)) user.access|= CREATE_PROC_ACL; - if (table->s->fields <= 33 && (user.access & ALTER_ACL)) + if (user_table.num_fields() <= 33 && (user.access & ALTER_ACL)) user.access|= ALTER_PROC_ACL; /* pre 5.0.3 did not have CREATE_USER_ACL */ - if (table->s->fields <= 36 && (user.access & GRANT_ACL)) + if (user_table.num_fields() <= 36 && (user.access & GRANT_ACL)) user.access|= CREATE_USER_ACL; @@ -1388,13 +1963,13 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) if it is pre 5.1.6 privilege table then map CREATE privilege on CREATE|ALTER|DROP|EXECUTE EVENT */ - if (table->s->fields <= 37 && (user.access & SUPER_ACL)) + if (user_table.num_fields() <= 37 && (user.access & SUPER_ACL)) user.access|= EVENT_ACL; /* if it is pre 5.1.6 privilege then map TRIGGER privilege on CREATE. */ - if (table->s->fields <= 38 && (user.access & SUPER_ACL)) + if (user_table.num_fields() <= 38 && (user.access & SUPER_ACL)) user.access|= TRIGGER_ACL; user.sort= get_sort(2, user.host.hostname, user.user.str); @@ -1403,9 +1978,9 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) user.user_resource.max_statement_time= 0.0; /* Starting from 4.0.2 we have more fields */ - if (table->s->fields >= 31) + if (user_table.num_fields() >= 31) { - char *ssl_type=get_field(thd->mem_root, table->field[next_field++]); + char *ssl_type=get_field(thd->mem_root, user_table.ssl_type()); if (!ssl_type) user.ssl_type=SSL_TYPE_NONE; else if (!strcmp(ssl_type, "ANY")) @@ -1415,37 +1990,38 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) else /* !strcmp(ssl_type, "SPECIFIED") */ user.ssl_type=SSL_TYPE_SPECIFIED; - user.ssl_cipher= get_field(&acl_memroot, table->field[next_field++]); - user.x509_issuer= get_field(&acl_memroot, table->field[next_field++]); - user.x509_subject= get_field(&acl_memroot, table->field[next_field++]); + user.ssl_cipher= get_field(&acl_memroot, user_table.ssl_cipher()); + user.x509_issuer= get_field(&acl_memroot, user_table.x509_issuer()); + user.x509_subject= get_field(&acl_memroot, user_table.x509_subject()); - char *ptr = get_field(thd->mem_root, table->field[next_field++]); + char *ptr = get_field(thd->mem_root, user_table.max_questions()); user.user_resource.questions=ptr ? atoi(ptr) : 0; - ptr = get_field(thd->mem_root, table->field[next_field++]); + ptr = get_field(thd->mem_root, user_table.max_updates()); user.user_resource.updates=ptr ? atoi(ptr) : 0; - ptr = get_field(thd->mem_root, table->field[next_field++]); + ptr = get_field(thd->mem_root, user_table.max_connections()); user.user_resource.conn_per_hour= ptr ? atoi(ptr) : 0; if (user.user_resource.questions || user.user_resource.updates || user.user_resource.conn_per_hour) mqh_used=1; - if (table->s->fields >= 36) + if (user_table.num_fields() >= 36) { /* Starting from 5.0.3 we have max_user_connections field */ - ptr= get_field(thd->mem_root, table->field[next_field++]); + ptr= get_field(thd->mem_root, user_table.max_user_connections()); user.user_resource.user_conn= ptr ? atoi(ptr) : 0; } - if (!is_role && table->s->fields >= 41) + if (!is_role && user_table.num_fields() >= 41) { /* We may have plugin & auth_String fields */ - char *tmpstr= get_field(&acl_memroot, table->field[next_field++]); + char *tmpstr= get_field(&acl_memroot, user_table.plugin()); if (tmpstr) { user.plugin.str= tmpstr; user.plugin.length= strlen(user.plugin.str); user.auth_string.str= - safe_str(get_field(&acl_memroot, table->field[next_field++])); + safe_str(get_field(&acl_memroot, + user_table.authentication_string())); user.auth_string.length= strlen(user.auth_string.str); if (user.auth_string.length && password_len) @@ -1461,11 +2037,11 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) } } - if (table->s->fields > MAX_STATEMENT_TIME_COLUMN_IDX) + if (user_table.num_fields() > MAX_STATEMENT_TIME_COLUMN_IDX) { /* Starting from 10.1.1 we can have max_statement_time */ ptr= get_field(thd->mem_root, - table->field[MAX_STATEMENT_TIME_COLUMN_IDX]); + user_table.max_statement_time()); user.user_resource.max_statement_time= ptr ? atof(ptr) : 0.0; } } @@ -1473,7 +2049,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) { user.ssl_type=SSL_TYPE_NONE; #ifndef TO_BE_REMOVED - if (table->s->fields <= 13) + if (user_table.num_fields() <= 13) { // Without grant if (user.access & CREATE_ACL) user.access|=REFERENCES_ACL | INDEX_ACL | ALTER_ACL; @@ -1491,10 +2067,10 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) 8, 8, MYF(0)); /* check default role, if any */ - if (!is_role && table->s->fields > DEFAULT_ROLE_COLUMN_IDX) + if (!is_role && user_table.num_fields() > DEFAULT_ROLE_COLUMN_IDX) { user.default_rolename.str= - get_field(&acl_memroot, table->field[DEFAULT_ROLE_COLUMN_IDX]); + get_field(&acl_memroot, user_table.default_role()); user.default_rolename.length= safe_strlen(user.default_rolename.str); } @@ -1524,19 +2100,18 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) end_read_record(&read_record_info); freeze_size(&acl_users); - if (init_read_record(&read_record_info, thd, table=tables[DB_TABLE].table, - NULL, NULL, 1, 1, FALSE)) + const Db_table& db_table= tables.db_table(); + if (db_table.init_read_record(&read_record_info, thd)) DBUG_RETURN(TRUE); - table->use_all_columns(); while (!(read_record_info.read_record(&read_record_info))) { ACL_DB db; - db.user=get_field(&acl_memroot, table->field[MYSQL_DB_FIELD_USER]); - const char *hostname= get_field(&acl_memroot, table->field[MYSQL_DB_FIELD_HOST]); + db.user=get_field(&acl_memroot, db_table.user()); + const char *hostname= get_field(&acl_memroot, db_table.host()); if (!hostname && find_acl_role(db.user)) hostname= ""; update_hostname(&db.host, hostname); - db.db=get_field(&acl_memroot, table->field[MYSQL_DB_FIELD_DB]); + db.db=get_field(&acl_memroot, db_table.db()); if (!db.db) { sql_print_warning("Found an entry in the 'db' table with empty database name; Skipped"); @@ -1545,11 +2120,11 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) if (check_no_resolve && hostname_requires_resolving(db.host.hostname)) { sql_print_warning("'db' entry '%s %s@%s' " - "ignored in --skip-name-resolve mode.", + "ignored in --skip-name-resolve mode.", db.db, safe_str(db.user), safe_str(db.host.hostname)); continue; } - db.access=get_access(table,3); + db.access= db_table.get_access(); db.access=fix_rights_for_db(db.access); db.initial_access= db.access; if (lower_case_table_names) @@ -1576,7 +2151,7 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) } db.sort=get_sort(3,db.host.hostname,db.db,db.user); #ifndef TO_BE_REMOVED - if (table->s->fields <= 9) + if (db_table.num_fields() <= 9) { // Without grant if (db.access & CREATE_ACL) db.access|=REFERENCES_ACL | INDEX_ACL | ALTER_ACL; @@ -1589,16 +2164,15 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) end_read_record(&read_record_info); freeze_size(&acl_dbs); - if ((table= tables[PROXIES_PRIV_TABLE].table)) + const Proxies_priv_table& proxies_priv_table= tables.proxies_priv_table(); + if (proxies_priv_table.table_exists()) { - if (init_read_record(&read_record_info, thd, table, - NULL, NULL, 1, 1, FALSE)) + if (proxies_priv_table.init_read_record(&read_record_info, thd)) DBUG_RETURN(TRUE); - table->use_all_columns(); while (!(read_record_info.read_record(&read_record_info))) { ACL_PROXY_USER proxy; - proxy.init(table, &acl_memroot); + proxy.init(proxies_priv_table, &acl_memroot); if (proxy.check_validity(check_no_resolve)) continue; if (push_dynamic(&acl_proxy_users, (uchar*) &proxy)) @@ -1616,21 +2190,20 @@ static bool acl_load(THD *thd, TABLE_LIST *tables) } freeze_size(&acl_proxy_users); - if ((table= tables[ROLES_MAPPING_TABLE].table)) + const Roles_mapping_table& roles_mapping_table= tables.roles_mapping_table(); + if (roles_mapping_table.table_exists()) { - if (init_read_record(&read_record_info, thd, table, NULL, NULL, 1, 1, - FALSE)) + if (roles_mapping_table.init_read_record(&read_record_info, thd)) DBUG_RETURN(TRUE); - table->use_all_columns(); MEM_ROOT temp_root; init_alloc_root(&temp_root, ACL_ALLOC_BLOCK_SIZE, 0, MYF(0)); while (!(read_record_info.read_record(&read_record_info))) { - char *hostname= safe_str(get_field(&temp_root, table->field[0])); - char *username= safe_str(get_field(&temp_root, table->field[1])); - char *rolename= safe_str(get_field(&temp_root, table->field[2])); - bool with_grant_option= get_YN_as_bool(table->field[3]); + char *hostname= safe_str(get_field(&temp_root, roles_mapping_table.host())); + char *username= safe_str(get_field(&temp_root, roles_mapping_table.user())); + char *rolename= safe_str(get_field(&temp_root, roles_mapping_table.role())); + bool with_grant_option= get_YN_as_bool(roles_mapping_table.admin_option()); if (add_role_user_mapping(username, hostname, rolename)) { sql_print_error("Invalid roles_mapping table entry user:'%s@%s', rolename:'%s'", @@ -1706,19 +2279,19 @@ void acl_free(bool end) bool acl_reload(THD *thd) { - TABLE_LIST tables[TABLES_MAX]; DYNAMIC_ARRAY old_acl_hosts, old_acl_users, old_acl_dbs, old_acl_proxy_users; HASH old_acl_roles, old_acl_roles_mappings; MEM_ROOT old_mem; int result; DBUG_ENTER("acl_reload"); + Grant_tables tables(Table_host | Table_user | Table_db | Table_proxies_priv | + Table_roles_mapping, TL_READ); /* To avoid deadlocks we should obtain table locks before obtaining acl_cache->lock mutex. */ - if ((result= open_grant_tables(thd, tables, TL_READ, Table_host | - Table_user | Table_db | Table_proxies_priv | Table_roles_mapping))) + if ((result= tables.open_and_lock(thd))) { DBUG_ASSERT(result <= 0); /* @@ -1821,34 +2394,6 @@ static ulong get_access(TABLE *form, uint fieldnr, uint *next_field) return access_bits; } -/* - Check if a user entry in the user table is marked as being a role entry - - IMPLEMENTATION - Access the coresponding column and check the coresponding ENUM of the form - ENUM('N', 'Y') - - SYNOPSIS - check_is_role() - form an open table to read the entry from. - The record should be already read in table->record[0] - - RETURN VALUE - TRUE if the user is marked as a role - FALSE otherwise -*/ - -static bool check_is_role(TABLE *form) -{ - char buff[2]; - String res(buff, sizeof(buff), &my_charset_latin1); - /* Table version does not support roles */ - if (form->s->fields <= ROLE_ASSIGN_COLUMN_IDX) - return FALSE; - - return get_YN_as_bool(form->field[ROLE_ASSIGN_COLUMN_IDX]); -} - /* Return a number which, if sorted 'desc', puts strings in this order: @@ -2761,7 +3306,7 @@ bool check_change_password(THD *thd, LEX_USER *user) */ bool change_password(THD *thd, LEX_USER *user) { - TABLE_LIST tables[TABLES_MAX]; + Grant_tables tables(Table_user, TL_WRITE); /* Buffer should be extended when password length is extended. */ char buff[512]; ulong query_length= 0; @@ -2796,7 +3341,7 @@ bool change_password(THD *thd, LEX_USER *user) WSREP_TO_ISOLATION_BEGIN(WSREP_MYSQL_DB, (char*)"user", NULL); } - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user))) + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); result= 1; @@ -2825,7 +3370,7 @@ bool change_password(THD *thd, LEX_USER *user) ER_SET_PASSWORD_AUTH_PLUGIN, ER_THD(thd, ER_SET_PASSWORD_AUTH_PLUGIN)); - if (update_user_table(thd, tables[USER_TABLE].table, + if (update_user_table(thd, tables.user_table(), safe_str(acl_user->host.hostname), safe_str(acl_user->user.str), user->pwhash.str, user->pwhash.length)) @@ -2870,8 +3415,7 @@ int acl_check_set_default_role(THD *thd, const char *host, const char *user) int acl_set_default_role(THD *thd, const char *host, const char *user, const char *rolename) { - TABLE_LIST tables[TABLES_MAX]; - TABLE *table; + Grant_tables tables(Table_user, TL_WRITE); char user_key[MAX_KEY_LENGTH]; int result= 1; int error; @@ -2921,83 +3465,92 @@ int acl_set_default_role(THD *thd, const char *host, const char *user, WSREP_TO_ISOLATION_BEGIN(WSREP_MYSQL_DB, (char*)"user", NULL); } - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user))) - DBUG_RETURN(result != 1); - - table= tables[USER_TABLE].table; - result= 1; - - mysql_mutex_lock(&acl_cache->lock); - ACL_USER *acl_user; - if (!(acl_user= find_user_exact(host, user))) + /* + Extra block due to WSREP_TO_ISOLATION_BEGIN using goto. + TODO(cvicentiu) Should move this block out in a new function. + */ { + if ((result= tables.open_and_lock(thd))) + DBUG_RETURN(result != 1); + + const User_table& user_table= tables.user_table(); + TABLE *table= user_table.table(); + + result= 1; + + mysql_mutex_lock(&acl_cache->lock); + ACL_USER *acl_user; + if (!(acl_user= find_user_exact(host, user))) + { + mysql_mutex_unlock(&acl_cache->lock); + my_message(ER_PASSWORD_NO_MATCH, ER_THD(thd, ER_PASSWORD_NO_MATCH), + MYF(0)); + goto end; + } + + if (!clear_role) + { + /* set new default_rolename */ + acl_user->default_rolename.str= safe_strdup_root(&acl_memroot, rolename); + acl_user->default_rolename.length= strlen(rolename); + } + else + { + /* clear the default_rolename */ + acl_user->default_rolename.str = NULL; + acl_user->default_rolename.length = 0; + } + + /* update the mysql.user table with the new default role */ + tables.user_table().table()->use_all_columns(); + if (tables.user_table().num_fields() <= DEFAULT_ROLE_COLUMN_IDX) + { + my_error(ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE, MYF(0), + table->alias.c_ptr(), DEFAULT_ROLE_COLUMN_IDX + 1, table->s->fields, + static_cast(table->s->mysql_version), MYSQL_VERSION_ID); + mysql_mutex_unlock(&acl_cache->lock); + goto end; + } + user_table.host()->store(host,(uint) strlen(host), system_charset_info); + user_table.user()->store(user,(uint) strlen(user), system_charset_info); + key_copy((uchar *) user_key, table->record[0], table->key_info, + table->key_info->key_length); + + if (table->file->ha_index_read_idx_map(table->record[0], 0, + (uchar *) user_key, HA_WHOLE_KEY, + HA_READ_KEY_EXACT)) + { + mysql_mutex_unlock(&acl_cache->lock); + my_message(ER_PASSWORD_NO_MATCH, ER_THD(thd, ER_PASSWORD_NO_MATCH), + MYF(0)); + goto end; + } + store_record(table, record[1]); + user_table.default_role()->store(acl_user->default_rolename.str, + acl_user->default_rolename.length, + system_charset_info); + if ((error=table->file->ha_update_row(table->record[1],table->record[0])) && + error != HA_ERR_RECORD_IS_THE_SAME) + { + mysql_mutex_unlock(&acl_cache->lock); + table->file->print_error(error,MYF(0)); /* purecov: deadcode */ + goto end; + } + + acl_cache->clear(1); mysql_mutex_unlock(&acl_cache->lock); - my_message(ER_PASSWORD_NO_MATCH, ER_THD(thd, ER_PASSWORD_NO_MATCH), - MYF(0)); - goto end; + result= 0; + if (mysql_bin_log.is_open()) + { + DBUG_ASSERT(query_length); + thd->clear_error(); + result= thd->binlog_query(THD::STMT_QUERY_TYPE, buff, query_length, + FALSE, FALSE, FALSE, 0); + } + end: + close_mysql_tables(thd); } - if (!clear_role) { - /* set new default_rolename */ - acl_user->default_rolename.str= safe_strdup_root(&acl_memroot, rolename); - acl_user->default_rolename.length= strlen(rolename); - } - else - { - /* clear the default_rolename */ - acl_user->default_rolename.str = NULL; - acl_user->default_rolename.length = 0; - } - - /* update the mysql.user table with the new default role */ - table->use_all_columns(); - if (table->s->fields <= DEFAULT_ROLE_COLUMN_IDX) - { - my_error(ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE, MYF(0), - table->alias.c_ptr(), DEFAULT_ROLE_COLUMN_IDX + 1, table->s->fields, - static_cast(table->s->mysql_version), MYSQL_VERSION_ID); - mysql_mutex_unlock(&acl_cache->lock); - goto end; - } - table->field[0]->store(host,(uint) strlen(host), system_charset_info); - table->field[1]->store(user,(uint) strlen(user), system_charset_info); - key_copy((uchar *) user_key, table->record[0], table->key_info, - table->key_info->key_length); - - if (table->file->ha_index_read_idx_map(table->record[0], 0, - (uchar *) user_key, HA_WHOLE_KEY, - HA_READ_KEY_EXACT)) - { - mysql_mutex_unlock(&acl_cache->lock); - my_message(ER_PASSWORD_NO_MATCH, ER_THD(thd, ER_PASSWORD_NO_MATCH), - MYF(0)); - goto end; - } - store_record(table, record[1]); - table->field[DEFAULT_ROLE_COLUMN_IDX]->store(acl_user->default_rolename.str, - acl_user->default_rolename.length, - system_charset_info); - if ((error=table->file->ha_update_row(table->record[1],table->record[0])) && - error != HA_ERR_RECORD_IS_THE_SAME) - { - mysql_mutex_unlock(&acl_cache->lock); - table->file->print_error(error,MYF(0)); /* purecov: deadcode */ - goto end; - } - - acl_cache->clear(1); - mysql_mutex_unlock(&acl_cache->lock); - result= 0; - if (mysql_bin_log.is_open()) - { - DBUG_ASSERT(query_length); - thd->clear_error(); - result= thd->binlog_query(THD::STMT_QUERY_TYPE, buff, query_length, - FALSE, FALSE, FALSE, 0); - } -end: - close_mysql_tables(thd); - #ifdef WITH_WSREP error: // this label is used in WSREP_TO_ISOLATION_END if (WSREP(thd) && !thd->wsrep_applier) @@ -3281,18 +3834,19 @@ bool hostname_requires_resolving(const char *hostname) @see change_password */ -static bool update_user_table(THD *thd, TABLE *table, +static bool update_user_table(THD *thd, const User_table& user_table, const char *host, const char *user, - const char *new_password, uint new_password_len) + const char *new_password, uint new_password_len) { char user_key[MAX_KEY_LENGTH]; int error; DBUG_ENTER("update_user_table"); DBUG_PRINT("enter",("user: %s host: %s",user,host)); + TABLE *table= user_table.table(); table->use_all_columns(); - table->field[0]->store(host,(uint) strlen(host), system_charset_info); - table->field[1]->store(user,(uint) strlen(user), system_charset_info); + user_table.host()->store(host,(uint) strlen(host), system_charset_info); + user_table.user()->store(user,(uint) strlen(user), system_charset_info); key_copy((uchar *) user_key, table->record[0], table->key_info, table->key_info->key_length); @@ -3301,15 +3855,15 @@ static bool update_user_table(THD *thd, TABLE *table, HA_READ_KEY_EXACT)) { my_message(ER_PASSWORD_NO_MATCH, ER_THD(thd, ER_PASSWORD_NO_MATCH), - MYF(0)); /* purecov: deadcode */ - DBUG_RETURN(1); /* purecov: deadcode */ + MYF(0)); /* purecov: deadcode */ + DBUG_RETURN(1); /* purecov: deadcode */ } store_record(table,record[1]); - table->field[2]->store(new_password, new_password_len, system_charset_info); + user_table.password()->store(new_password, new_password_len, system_charset_info); if ((error=table->file->ha_update_row(table->record[1],table->record[0])) && error != HA_ERR_RECORD_IS_THE_SAME) { - table->file->print_error(error,MYF(0)); /* purecov: deadcode */ + table->file->print_error(error,MYF(0)); /* purecov: deadcode */ DBUG_RETURN(1); } DBUG_RETURN(0); @@ -3355,8 +3909,9 @@ static bool test_if_create_new_users(THD *thd) Handle GRANT commands ****************************************************************************/ -static int replace_user_table(THD *thd, TABLE *table, LEX_USER &combo, - ulong rights, bool revoke_grant, +static int replace_user_table(THD *thd, const User_table &user_table, + LEX_USER &combo, + ulong rights, bool revoke_grant, bool can_create_user, bool no_auto_create) { int error = -1; @@ -3365,6 +3920,7 @@ static int replace_user_table(THD *thd, TABLE *table, LEX_USER &combo, uchar user_key[MAX_KEY_LENGTH]; bool handle_as_role= combo.is_role(); LEX *lex= thd->lex; + TABLE *table= user_table.table(); DBUG_ENTER("replace_user_table"); mysql_mutex_assert_owner(&acl_cache->lock); @@ -3383,18 +3939,18 @@ static int replace_user_table(THD *thd, TABLE *table, LEX_USER &combo, combo.pwhash= empty_lex_str; /* if the user table is not up to date, we can't handle role updates */ - if (table->s->fields <= ROLE_ASSIGN_COLUMN_IDX && handle_as_role) + if (user_table.num_fields() <= ROLE_ASSIGN_COLUMN_IDX && handle_as_role) { my_error(ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE, MYF(0), - table->alias.c_ptr(), ROLE_ASSIGN_COLUMN_IDX + 1, table->s->fields, + "user", ROLE_ASSIGN_COLUMN_IDX + 1, user_table.num_fields(), static_cast(table->s->mysql_version), MYSQL_VERSION_ID); DBUG_RETURN(-1); } table->use_all_columns(); - table->field[0]->store(combo.host.str,combo.host.length, + user_table.host()->store(combo.host.str,combo.host.length, system_charset_info); - table->field[1]->store(combo.user.str,combo.user.length, + user_table.user()->store(combo.user.str,combo.user.length, system_charset_info); key_copy(user_key, table->record[0], table->key_info, table->key_info->key_length); @@ -3443,9 +3999,9 @@ static int replace_user_table(THD *thd, TABLE *table, LEX_USER &combo, old_row_exists = 0; restore_record(table,s->default_values); - table->field[0]->store(combo.host.str,combo.host.length, + user_table.host()->store(combo.host.str,combo.host.length, system_charset_info); - table->field[1]->store(combo.user.str,combo.user.length, + user_table.user()->store(combo.user.str,combo.user.length, system_charset_info); } else @@ -3460,102 +4016,101 @@ static int replace_user_table(THD *thd, TABLE *table, LEX_USER &combo, /* Update table columns with new privileges */ - Field **tmp_field; ulong priv; - uint next_field; - for (tmp_field= table->field+3, priv = SELECT_ACL; - *tmp_field && (*tmp_field)->real_type() == MYSQL_TYPE_ENUM && - ((Field_enum*) (*tmp_field))->typelib->count == 2 ; - tmp_field++, priv <<= 1) + priv = SELECT_ACL; + for (uint i= 0; i < user_table.num_privileges(); i++, priv <<= 1) { - if (priv & rights) // set requested privileges - (*tmp_field)->store(&what, 1, &my_charset_latin1); + if (priv & rights) + user_table.priv_field(i)->store(&what, 1, &my_charset_latin1); } - rights= get_access(table, 3, &next_field); - DBUG_PRINT("info",("table fields: %d",table->s->fields)); + + rights= user_table.get_access(); + + DBUG_PRINT("info",("table fields: %d",user_table.num_fields())); if (combo.pwhash.str[0]) - table->field[2]->store(combo.pwhash.str, combo.pwhash.length, system_charset_info); - if (table->s->fields >= 31) /* From 4.0.0 we have more fields */ + user_table.password()->store(combo.pwhash.str, combo.pwhash.length, + system_charset_info); + if (user_table.num_fields() >= 31) /* From 4.0.0 we have more fields */ { /* We write down SSL related ACL stuff */ switch (lex->ssl_type) { case SSL_TYPE_ANY: - table->field[next_field]->store(STRING_WITH_LEN("ANY"), - &my_charset_latin1); - table->field[next_field+1]->store("", 0, &my_charset_latin1); - table->field[next_field+2]->store("", 0, &my_charset_latin1); - table->field[next_field+3]->store("", 0, &my_charset_latin1); + user_table.ssl_type()->store(STRING_WITH_LEN("ANY"), + &my_charset_latin1); + user_table.ssl_cipher()->store("", 0, &my_charset_latin1); + user_table.x509_issuer()->store("", 0, &my_charset_latin1); + user_table.x509_subject()->store("", 0, &my_charset_latin1); break; case SSL_TYPE_X509: - table->field[next_field]->store(STRING_WITH_LEN("X509"), - &my_charset_latin1); - table->field[next_field+1]->store("", 0, &my_charset_latin1); - table->field[next_field+2]->store("", 0, &my_charset_latin1); - table->field[next_field+3]->store("", 0, &my_charset_latin1); + user_table.ssl_type()->store(STRING_WITH_LEN("X509"), + &my_charset_latin1); + user_table.ssl_cipher()->store("", 0, &my_charset_latin1); + user_table.x509_issuer()->store("", 0, &my_charset_latin1); + user_table.x509_subject()->store("", 0, &my_charset_latin1); break; case SSL_TYPE_SPECIFIED: - table->field[next_field]->store(STRING_WITH_LEN("SPECIFIED"), - &my_charset_latin1); - table->field[next_field+1]->store("", 0, &my_charset_latin1); - table->field[next_field+2]->store("", 0, &my_charset_latin1); - table->field[next_field+3]->store("", 0, &my_charset_latin1); + user_table.ssl_type()->store(STRING_WITH_LEN("SPECIFIED"), + &my_charset_latin1); + user_table.ssl_cipher()->store("", 0, &my_charset_latin1); + user_table.x509_issuer()->store("", 0, &my_charset_latin1); + user_table.x509_subject()->store("", 0, &my_charset_latin1); if (lex->ssl_cipher) - table->field[next_field+1]->store(lex->ssl_cipher, - strlen(lex->ssl_cipher), system_charset_info); + user_table.ssl_cipher()->store(lex->ssl_cipher, + strlen(lex->ssl_cipher), + system_charset_info); if (lex->x509_issuer) - table->field[next_field+2]->store(lex->x509_issuer, - strlen(lex->x509_issuer), system_charset_info); + user_table.x509_issuer()->store(lex->x509_issuer, + strlen(lex->x509_issuer), + system_charset_info); if (lex->x509_subject) - table->field[next_field+3]->store(lex->x509_subject, - strlen(lex->x509_subject), system_charset_info); + user_table.x509_subject()->store(lex->x509_subject, + strlen(lex->x509_subject), + system_charset_info); break; case SSL_TYPE_NOT_SPECIFIED: break; case SSL_TYPE_NONE: - table->field[next_field]->store("", 0, &my_charset_latin1); - table->field[next_field+1]->store("", 0, &my_charset_latin1); - table->field[next_field+2]->store("", 0, &my_charset_latin1); - table->field[next_field+3]->store("", 0, &my_charset_latin1); + user_table.ssl_type()->store("", 0, &my_charset_latin1); + user_table.ssl_cipher()->store("", 0, &my_charset_latin1); + user_table.x509_issuer()->store("", 0, &my_charset_latin1); + user_table.x509_subject()->store("", 0, &my_charset_latin1); break; } - next_field+=4; USER_RESOURCES mqh= lex->mqh; if (mqh.specified_limits & USER_RESOURCES::QUERIES_PER_HOUR) - table->field[next_field]->store((longlong) mqh.questions, TRUE); + user_table.max_questions()->store((longlong) mqh.questions, TRUE); if (mqh.specified_limits & USER_RESOURCES::UPDATES_PER_HOUR) - table->field[next_field+1]->store((longlong) mqh.updates, TRUE); + user_table.max_updates()->store((longlong) mqh.updates, TRUE); if (mqh.specified_limits & USER_RESOURCES::CONNECTIONS_PER_HOUR) - table->field[next_field+2]->store((longlong) mqh.conn_per_hour, TRUE); - if (table->s->fields >= 36 && + user_table.max_connections()->store((longlong) mqh.conn_per_hour, TRUE); + if (user_table.num_fields() >= 36 && (mqh.specified_limits & USER_RESOURCES::USER_CONNECTIONS)) - table->field[next_field+3]->store((longlong) mqh.user_conn, FALSE); - next_field+= 4; - if (table->s->fields >= 41) + user_table.max_user_connections()->store((longlong) mqh.user_conn, FALSE); + if (user_table.num_fields() >= 41) { - table->field[next_field]->set_notnull(); - table->field[next_field + 1]->set_notnull(); + user_table.plugin()->set_notnull(); + user_table.authentication_string()->set_notnull(); if (combo.plugin.str[0]) { DBUG_ASSERT(combo.pwhash.str[0] == 0); - table->field[2]->reset(); - table->field[next_field]->store(combo.plugin.str, combo.plugin.length, - system_charset_info); - table->field[next_field + 1]->store(combo.auth.str, combo.auth.length, - system_charset_info); + user_table.password()->reset(); + user_table.plugin()->store(combo.plugin.str, combo.plugin.length, + system_charset_info); + user_table.authentication_string()->store(combo.auth.str, combo.auth.length, + system_charset_info); } if (combo.pwhash.str[0]) { DBUG_ASSERT(combo.plugin.str[0] == 0); - table->field[next_field]->reset(); - table->field[next_field + 1]->reset(); + user_table.plugin()->reset(); + user_table.authentication_string()->reset(); } - if (table->s->fields > MAX_STATEMENT_TIME_COLUMN_IDX) + if (user_table.num_fields() > MAX_STATEMENT_TIME_COLUMN_IDX) { if (mqh.specified_limits & USER_RESOURCES::MAX_STATEMENT_TIME) - table->field[MAX_STATEMENT_TIME_COLUMN_IDX]-> - store(mqh.max_statement_time); + user_table.max_statement_time()->store(mqh.max_statement_time); } } mqh_used= (mqh_used || mqh.questions || mqh.updates || mqh.conn_per_hour || @@ -3564,11 +4119,11 @@ static int replace_user_table(THD *thd, TABLE *table, LEX_USER &combo, /* table format checked earlier */ if (handle_as_role) { - if (old_row_exists && !check_is_role(table)) + if (old_row_exists && !user_table.check_is_role()) { goto end; } - table->field[ROLE_ASSIGN_COLUMN_IDX]->store("Y", 1, system_charset_info); + user_table.is_role()->store("Y", 1, system_charset_info); } } @@ -3578,7 +4133,7 @@ static int replace_user_table(THD *thd, TABLE *table, LEX_USER &combo, We should NEVER delete from the user table, as a uses can still use mysqld even if he doesn't have any privileges in the user table! */ - if (cmp_record(table,record[1])) + if (cmp_record(table, record[1])) { if ((error= table->file->ha_update_row(table->record[1],table->record[0])) && @@ -5756,7 +6311,6 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list, int result; List_iterator str_list (user_list); LEX_USER *Str, *tmp_Str; - TABLE_LIST tables[TABLES_MAX]; bool create_new_users=0; char *db_name, *table_name; DBUG_ENTER("mysql_table_grant"); @@ -5845,8 +6399,9 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list, */ thd->lex->sql_command= backup.sql_command; - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user | - Table_tables_priv | maybe_columns_priv))) + Grant_tables tables(Table_user | Table_tables_priv | maybe_columns_priv, + TL_WRITE); + if ((result= tables.open_and_lock(thd))) { thd->lex->restore_backup_query_tables_list(&backup); DBUG_RETURN(result != 1); @@ -5871,7 +6426,7 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list, } /* Create user if needed */ error= copy_and_check_auth(Str, tmp_Str, thd) || - replace_user_table(thd, tables[USER_TABLE].table, *Str, + replace_user_table(thd, tables.user_table(), *Str, 0, revoke_grant, create_new_users, MY_TEST(thd->variables.sql_mode & MODE_NO_AUTO_CREATE_USER)); @@ -5942,16 +6497,20 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list, /* update table and columns */ - if (replace_table_table(thd, grant_table, tables[TABLES_PRIV_TABLE].table, + /* TODO(cvicentiu) refactor replace_table_table to use Tables_priv_table + instead of TABLE directly. */ + if (replace_table_table(thd, grant_table, tables.tables_priv_table().table(), *Str, db_name, table_name, rights, column_priv, revoke_grant)) { /* Should only happen if table is crashed */ result= TRUE; /* purecov: deadcode */ } - else if (tables[COLUMNS_PRIV_TABLE].table) + else if (tables.columns_priv_table().table_exists()) { - if (replace_column_table(grant_table, tables[COLUMNS_PRIV_TABLE].table, + /* TODO(cvicentiu) refactor replace_column_table to use Columns_priv_table + instead of TABLE directly. */ + if (replace_column_table(grant_table, tables.columns_priv_table().table(), *Str, columns, db_name, table_name, rights, revoke_grant)) { @@ -6002,7 +6561,6 @@ bool mysql_routine_grant(THD *thd, TABLE_LIST *table_list, bool is_proc, { List_iterator str_list (user_list); LEX_USER *Str, *tmp_Str; - TABLE_LIST tables[TABLES_MAX]; bool create_new_users= 0, result; char *db_name, *table_name; DBUG_ENTER("mysql_routine_grant"); @@ -6021,8 +6579,8 @@ bool mysql_routine_grant(THD *thd, TABLE_LIST *table_list, bool is_proc, DBUG_RETURN(TRUE); } - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user | - Table_procs_priv))) + Grant_tables tables(Table_user | Table_procs_priv, TL_WRITE); + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); DBUG_ASSERT(!thd->is_current_stmt_binlog_format_row()); @@ -6046,7 +6604,7 @@ bool mysql_routine_grant(THD *thd, TABLE_LIST *table_list, bool is_proc, } /* Create user if needed */ if (copy_and_check_auth(Str, tmp_Str, thd) || - replace_user_table(thd, tables[USER_TABLE].table, *Str, + replace_user_table(thd, tables.user_table(), *Str, 0, revoke_grant, create_new_users, MY_TEST(thd->variables.sql_mode & MODE_NO_AUTO_CREATE_USER))) @@ -6080,8 +6638,10 @@ bool mysql_routine_grant(THD *thd, TABLE_LIST *table_list, bool is_proc, } } - if (no_such_table(tables + PROCS_PRIV_TABLE) || - replace_routine_table(thd, grant_name, tables[PROCS_PRIV_TABLE].table, + /* TODO(cvicentiu) refactor replace_routine_table to use Tables_procs_priv + instead of TABLE directly. */ + if (tables.procs_priv_table().no_such_table() || + replace_routine_table(thd, grant_name, tables.procs_priv_table().table(), *Str, db_name, table_name, is_proc, rights, revoke_grant) != 0) { @@ -6221,9 +6781,8 @@ bool mysql_grant_role(THD *thd, List &list, bool revoke) no_auto_create_user= MY_TEST(thd->variables.sql_mode & MODE_NO_AUTO_CREATE_USER); - TABLE_LIST tables[TABLES_MAX]; - if ((result= open_grant_tables(thd, tables, TL_WRITE, - Table_user | Table_roles_mapping))) + Grant_tables tables(Table_user | Table_roles_mapping, TL_WRITE); + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); mysql_rwlock_wrlock(&LOCK_grant); @@ -6322,7 +6881,7 @@ bool mysql_grant_role(THD *thd, List &list, bool revoke) user_combo.user = username; if (copy_and_check_auth(&user_combo, &user_combo, thd) || - replace_user_table(thd, tables[USER_TABLE].table, user_combo, 0, + replace_user_table(thd, tables.user_table(), user_combo, 0, false, create_new_user, no_auto_create_user)) { @@ -6388,7 +6947,9 @@ bool mysql_grant_role(THD *thd, List &list, bool revoke) } /* write into the roles_mapping table */ - if (replace_roles_mapping_table(tables[ROLES_MAPPING_TABLE].table, + /* TODO(cvicentiu) refactor replace_roles_mapping_table to use + Roles_mapping_table instead of TABLE directly. */ + if (replace_roles_mapping_table(tables.roles_mapping_table().table(), &username, &hostname, &rolename, thd->lex->with_admin_option, hash_entry, revoke)) @@ -6439,7 +7000,6 @@ bool mysql_grant(THD *thd, const char *db, List &list, LEX_USER *Str, *tmp_Str, *proxied_user= NULL; char tmp_db[SAFE_NAME_LEN+1]; bool create_new_users=0, result; - TABLE_LIST tables[TABLES_MAX]; DBUG_ENTER("mysql_grant"); if (lower_case_table_names && db) @@ -6460,8 +7020,9 @@ bool mysql_grant(THD *thd, const char *db, List &list, proxied_user= str_list++; } - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user | - (is_proxy ? Table_proxies_priv : Table_db)))) + Grant_tables tables(Table_user | (is_proxy ? Table_proxies_priv : Table_db), + TL_WRITE); + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); DBUG_ASSERT(!thd->is_current_stmt_binlog_format_row()); @@ -6490,7 +7051,7 @@ bool mysql_grant(THD *thd, const char *db, List &list, } if (copy_and_check_auth(Str, tmp_Str, thd) || - replace_user_table(thd, tables[USER_TABLE].table, *Str, + replace_user_table(thd, tables.user_table(), *Str, (!db ? rights : 0), revoke_grant, create_new_users, MY_TEST(thd->variables.sql_mode & MODE_NO_AUTO_CREATE_USER))) @@ -6500,7 +7061,7 @@ bool mysql_grant(THD *thd, const char *db, List &list, ulong db_rights= rights & DB_ACLS; if (db_rights == rights) { - if (replace_db_table(tables[DB_TABLE].table, db, *Str, db_rights, + if (replace_db_table(tables.db_table().table(), db, *Str, db_rights, revoke_grant)) result= true; } @@ -6512,8 +7073,10 @@ bool mysql_grant(THD *thd, const char *db, List &list, } else if (is_proxy) { - if (no_such_table(tables + PROXIES_PRIV_TABLE) || - replace_proxies_priv_table (thd, tables[PROXIES_PRIV_TABLE].table, + /* TODO(cvicentiu) refactor replace_proxies_priv_table to use + Proxies_priv_table instead of TABLE directly. */ + if (tables.proxies_priv_table().no_such_table() || + replace_proxies_priv_table (thd, tables.proxies_priv_table().table(), Str, proxied_user, rights & GRANT_ACL ? TRUE : FALSE, revoke_grant)) @@ -6593,7 +7156,10 @@ bool grant_init() @retval TRUE Error */ -static bool grant_load(THD *thd, TABLE_LIST *tables) +static bool grant_load(THD *thd, + const Tables_priv_table& tables_priv, + const Columns_priv_table& columns_priv, + const Procs_priv_table& procs_priv) { bool return_val= 1; TABLE *t_table, *c_table, *p_table; @@ -6613,9 +7179,9 @@ static bool grant_load(THD *thd, TABLE_LIST *tables) 0,0,0, (my_hash_get_key) get_grant_table, 0,0); init_sql_alloc(&grant_memroot, ACL_ALLOC_BLOCK_SIZE, 0, MYF(0)); - t_table= tables[TABLES_PRIV_TABLE].table; - c_table= tables[COLUMNS_PRIV_TABLE].table; - p_table= tables[PROCS_PRIV_TABLE].table; // this can be NULL + t_table= tables_priv.table(); + c_table= columns_priv.table(); + p_table= procs_priv.table(); // this can be NULL if (t_table->file->ha_index_init(0, 1)) goto end_index_init; @@ -6630,6 +7196,7 @@ static bool grant_load(THD *thd, TABLE_LIST *tables) do { GRANT_TABLE *mem_check; + /* TODO(cvicentiu) convert this to use tables_priv and columns_priv. */ if (!(mem_check= new (&grant_memroot) GRANT_TABLE(t_table, c_table))) { /* This could only happen if we are out memory */ @@ -6692,12 +7259,12 @@ static bool grant_load(THD *thd, TABLE_LIST *tables) continue; } } - if (p_table->field[4]->val_int() == TYPE_ENUM_PROCEDURE) + if (procs_priv.routine_type()->val_int() == TYPE_ENUM_PROCEDURE) { hash= &proc_priv_hash; } else - if (p_table->field[4]->val_int() == TYPE_ENUM_FUNCTION) + if (procs_priv.routine_type()->val_int() == TYPE_ENUM_FUNCTION) { hash= &func_priv_hash; } @@ -6766,7 +7333,6 @@ static my_bool role_propagate_grants_action(void *ptr, bool grant_reload(THD *thd) { - TABLE_LIST tables[TABLES_MAX]; HASH old_column_priv_hash, old_proc_priv_hash, old_func_priv_hash; MEM_ROOT old_mem; int result; @@ -6777,8 +7343,9 @@ bool grant_reload(THD *thd) obtaining LOCK_grant rwlock. */ - if ((result= open_grant_tables(thd, tables, TL_READ, Table_tables_priv | - Table_columns_priv | Table_procs_priv))) + Grant_tables tables(Table_tables_priv | Table_columns_priv| Table_procs_priv, + TL_READ); + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); mysql_rwlock_wrlock(&LOCK_grant); @@ -6793,7 +7360,10 @@ bool grant_reload(THD *thd) */ old_mem= grant_memroot; - if ((result= grant_load(thd, tables))) + if ((result= grant_load(thd, + tables.tables_priv_table(), + tables.columns_priv_table(), + tables.procs_priv_table()))) { // Error. Revert to old hash DBUG_PRINT("error",("Reverting to old privileges")); grant_free(); /* purecov: deadcode */ @@ -8541,70 +9111,6 @@ void get_mqh(const char *user, const char *host, USER_CONN *uc) mysql_mutex_unlock(&acl_cache->lock); } -/* - Initialize a TABLE_LIST array and open grant tables - - All tables will be opened with the same lock type, either read or write. - - @retval 1 replication filters matched. Abort the operation, but return OK (!) - @retval 0 tables were opened successfully - @retval -1 error, tables could not be opened -*/ - -static int open_grant_tables(THD *thd, TABLE_LIST *tables, - enum thr_lock_type lock_type, int tables_to_open) -{ - DBUG_ENTER("open_grant_tables"); - - /* - We can read privilege tables even when !initialized. - This can be acl_load() - server startup or FLUSH PRIVILEGES - */ - if (lock_type >= TL_WRITE_ALLOW_WRITE && !initialized) - { - my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--skip-grant-tables"); - DBUG_RETURN(-1); - } - - int prev= -1; - bzero(tables, sizeof(TABLE_LIST) * TABLES_MAX); - for (int cur=TABLES_MAX-1, mask= 1 << cur; mask; cur--, mask >>= 1) - { - if ((tables_to_open & mask) == 0) - continue; - tables[cur].init_one_table(C_STRING_WITH_LEN("mysql"), - acl_table_names[cur].str, - acl_table_names[cur].length, - acl_table_names[cur].str, lock_type); - tables[cur].open_type= OT_BASE_ONLY; - if (lock_type >= TL_WRITE_ALLOW_WRITE) - tables[cur].updating= 1; - if (cur >= FIRST_OPTIONAL_TABLE) - tables[cur].open_strategy= TABLE_LIST::OPEN_IF_EXISTS; - if (prev != -1) - tables[cur].next_local= tables[cur].next_global= & tables[prev]; - prev= cur; - } - -#ifdef HAVE_REPLICATION - if (lock_type >= TL_WRITE_ALLOW_WRITE && thd->slave_thread && !thd->spcont) - { - /* - GRANT and REVOKE are applied the slave in/exclusion rules as they are - some kind of updates to the mysql.% tables. - */ - Rpl_filter *rpl_filter= thd->system_thread_info.rpl_sql_info->rpl_filter; - if (rpl_filter->is_on() && !rpl_filter->tables_ok(0, tables)) - DBUG_RETURN(1); - } -#endif - - if (open_and_lock_tables(thd, tables + prev, FALSE, - MYSQL_LOCK_IGNORE_TIMEOUT)) - DBUG_RETURN(-1); - - DBUG_RETURN(0); -} /* Modify a privilege table. @@ -8745,8 +9251,8 @@ static int handle_roles_mappings_table(TABLE *table, bool drop, SYNOPSIS handle_grant_table() - tables The array with the four open tables. - table_no The number of the table to handle (0..4). + grant_table An open grant table handle. + which_table Which grant table to handle. drop If user_from is to be dropped. user_from The the user to be searched/dropped/renamed. user_to The new name for the user if to be renamed, @@ -8764,18 +9270,21 @@ static int handle_roles_mappings_table(TABLE *table, bool drop, > 0 At least one record matched. 0 OK, but no record matched. < 0 Error. + + TODO(cvicentiu) refactor handle_grant_table to use + Grant_table_base instead of TABLE directly. */ -static int handle_grant_table(THD *thd, TABLE_LIST *tables, - enum enum_acl_tables table_no, bool drop, +static int handle_grant_table(THD *thd, const Grant_table_base& grant_table, + enum enum_acl_tables which_table, bool drop, LEX_USER *user_from, LEX_USER *user_to) { int result= 0; int error; - TABLE *table= tables[table_no].table; + TABLE *table= grant_table.table(); Field *host_field= table->field[0]; - Field *user_field= table->field[table_no == USER_TABLE || - table_no == PROXIES_PRIV_TABLE ? 1 : 2]; + Field *user_field= table->field[which_table == USER_TABLE || + which_table == PROXIES_PRIV_TABLE ? 1 : 2]; const char *host_str= user_from->host.str; const char *user_str= user_from->user.str; const char *host; @@ -8784,14 +9293,14 @@ static int handle_grant_table(THD *thd, TABLE_LIST *tables, uint key_prefix_length; DBUG_ENTER("handle_grant_table"); - if (table_no == ROLES_MAPPING_TABLE) + if (which_table == ROLES_MAPPING_TABLE) { result= handle_roles_mappings_table(table, drop, user_from, user_to); DBUG_RETURN(result); } table->use_all_columns(); - if (table_no == USER_TABLE) // mysql.user table + if (which_table == USER_TABLE) // mysql.user table { /* The 'user' table has an unique index on (host, user). @@ -8816,7 +9325,8 @@ static int handle_grant_table(THD *thd, TABLE_LIST *tables, HA_READ_KEY_EXACT); if (!error && !*host_str) { // verify that we got a role or a user, as needed - if (check_is_role(table) != user_from->is_role()) + if (static_cast(grant_table).check_is_role() != + user_from->is_role()) error= HA_ERR_KEY_NOT_FOUND; } if (error) @@ -8867,7 +9377,7 @@ static int handle_grant_table(THD *thd, TABLE_LIST *tables, user= safe_str(get_field(thd->mem_root, user_field)); #ifdef EXTRA_DEBUG - if (table_no != PROXIES_PRIV_TABLE) + if (which_table != PROXIES_PRIV_TABLE) { DBUG_PRINT("loop",("scan fields: '%s'@'%s' '%s' '%s' '%s'", user, host, @@ -9286,7 +9796,7 @@ static int handle_grant_struct(enum enum_acl_lists struct_no, bool drop, < 0 Error. */ -static int handle_grant_data(THD *thd, TABLE_LIST *tables, bool drop, +static int handle_grant_data(THD *thd, Grant_tables& tables, bool drop, LEX_USER *user_from, LEX_USER *user_to) { int result= 0; @@ -9309,7 +9819,8 @@ static int handle_grant_data(THD *thd, TABLE_LIST *tables, bool drop, } /* Handle db table. */ - if ((found= handle_grant_table(thd, tables, DB_TABLE, drop, user_from, + if ((found= handle_grant_table(thd, tables.db_table(), + DB_TABLE, drop, user_from, user_to)) < 0) { /* Handle of table failed, don't touch the in-memory array. */ @@ -9330,7 +9841,8 @@ static int handle_grant_data(THD *thd, TABLE_LIST *tables, bool drop, } /* Handle stored routines table. */ - if ((found= handle_grant_table(thd, tables, PROCS_PRIV_TABLE, drop, + if ((found= handle_grant_table(thd, tables.procs_priv_table(), + PROCS_PRIV_TABLE, drop, user_from, user_to)) < 0) { /* Handle of table failed, don't touch in-memory array. */ @@ -9359,7 +9871,8 @@ static int handle_grant_data(THD *thd, TABLE_LIST *tables, bool drop, } /* Handle tables table. */ - if ((found= handle_grant_table(thd, tables, TABLES_PRIV_TABLE, drop, + if ((found= handle_grant_table(thd, tables.tables_priv_table(), + TABLES_PRIV_TABLE, drop, user_from, user_to)) < 0) { /* Handle of table failed, don't touch columns and in-memory array. */ @@ -9376,7 +9889,8 @@ static int handle_grant_data(THD *thd, TABLE_LIST *tables, bool drop, } /* Handle columns table. */ - if ((found= handle_grant_table(thd, tables, COLUMNS_PRIV_TABLE, drop, + if ((found= handle_grant_table(thd, tables.columns_priv_table(), + COLUMNS_PRIV_TABLE, drop, user_from, user_to)) < 0) { /* Handle of table failed, don't touch the in-memory array. */ @@ -9394,9 +9908,10 @@ static int handle_grant_data(THD *thd, TABLE_LIST *tables, bool drop, } /* Handle proxies_priv table. */ - if (tables[PROXIES_PRIV_TABLE].table) + if (tables.proxies_priv_table().table_exists()) { - if ((found= handle_grant_table(thd, tables, PROXIES_PRIV_TABLE, drop, + if ((found= handle_grant_table(thd, tables.proxies_priv_table(), + PROXIES_PRIV_TABLE, drop, user_from, user_to)) < 0) { /* Handle of table failed, don't touch the in-memory array. */ @@ -9414,9 +9929,10 @@ static int handle_grant_data(THD *thd, TABLE_LIST *tables, bool drop, } /* Handle roles_mapping table. */ - if (tables[ROLES_MAPPING_TABLE].table) + if (tables.roles_mapping_table().table_exists()) { - if ((found= handle_grant_table(thd, tables, ROLES_MAPPING_TABLE, drop, + if ((found= handle_grant_table(thd, tables.roles_mapping_table(), + ROLES_MAPPING_TABLE, drop, user_from, user_to)) < 0) { /* Handle of table failed, don't touch the in-memory array. */ @@ -9434,8 +9950,8 @@ static int handle_grant_data(THD *thd, TABLE_LIST *tables, bool drop, } /* Handle user table. */ - if ((found= handle_grant_table(thd, tables, USER_TABLE, drop, user_from, - user_to)) < 0) + if ((found= handle_grant_table(thd, tables.user_table(), USER_TABLE, + drop, user_from, user_to)) < 0) { /* Handle of table failed, don't touch the in-memory array. */ result= -1; @@ -9474,7 +9990,6 @@ bool mysql_create_user(THD *thd, List &list, bool handle_as_role) String wrong_users; LEX_USER *user_name; List_iterator user_list(list); - TABLE_LIST tables[TABLES_MAX]; bool binlog= false; DBUG_ENTER("mysql_create_user"); DBUG_PRINT("entry", ("Handle as %s", handle_as_role ? "role" : "user")); @@ -9483,10 +9998,11 @@ bool mysql_create_user(THD *thd, List &list, bool handle_as_role) DBUG_RETURN(TRUE); /* CREATE USER may be skipped on replication client. */ - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user | Table_db | - Table_tables_priv | Table_columns_priv | - Table_procs_priv | Table_proxies_priv | - Table_roles_mapping))) + Grant_tables tables(Table_user | Table_db | + Table_tables_priv | Table_columns_priv | + Table_procs_priv | Table_proxies_priv | + Table_roles_mapping, TL_WRITE); + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); mysql_rwlock_wrlock(&LOCK_grant); @@ -9568,7 +10084,7 @@ bool mysql_create_user(THD *thd, List &list, bool handle_as_role) } binlog= true; - if (replace_user_table(thd, tables[USER_TABLE].table, *user_name, 0, 0, 1, 0)) + if (replace_user_table(thd, tables.user_table(), *user_name, 0, 0, 1, 0)) { append_user(thd, &wrong_users, user_name); result= TRUE; @@ -9589,7 +10105,9 @@ bool mysql_create_user(THD *thd, List &list, bool handle_as_role) if (grantee) add_role_user_mapping(grantee, role); - if (replace_roles_mapping_table(tables[ROLES_MAPPING_TABLE].table, + /* TODO(cvicentiu) refactor replace_roles_mapping_table to use + Roles_mapping_table instead of TABLE directly. */ + if (replace_roles_mapping_table(tables.roles_mapping_table().table(), &thd->lex->definer->user, &thd->lex->definer->host, &user_name->user, true, @@ -9640,17 +10158,17 @@ bool mysql_drop_user(THD *thd, List &list, bool handle_as_role) String wrong_users; LEX_USER *user_name, *tmp_user_name; List_iterator user_list(list); - TABLE_LIST tables[TABLES_MAX]; bool binlog= false; sql_mode_t old_sql_mode= thd->variables.sql_mode; DBUG_ENTER("mysql_drop_user"); DBUG_PRINT("entry", ("Handle as %s", handle_as_role ? "role" : "user")); /* DROP USER may be skipped on replication client. */ - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user | Table_db | - Table_tables_priv | Table_columns_priv | - Table_procs_priv | Table_proxies_priv | - Table_roles_mapping))) + Grant_tables tables(Table_user | Table_db | + Table_tables_priv | Table_columns_priv | + Table_procs_priv | Table_proxies_priv | + Table_roles_mapping, TL_WRITE); + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); thd->variables.sql_mode&= ~MODE_PAD_CHAR_TO_FULL_LENGTH; @@ -9752,15 +10270,15 @@ bool mysql_rename_user(THD *thd, List &list) LEX_USER *user_from, *tmp_user_from; LEX_USER *user_to, *tmp_user_to; List_iterator user_list(list); - TABLE_LIST tables[TABLES_MAX]; bool some_users_renamed= FALSE; DBUG_ENTER("mysql_rename_user"); /* RENAME USER may be skipped on replication client. */ - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user | Table_db | - Table_tables_priv | Table_columns_priv | - Table_procs_priv | Table_proxies_priv | - Table_roles_mapping))) + Grant_tables tables(Table_user | Table_db | + Table_tables_priv | Table_columns_priv | + Table_procs_priv | Table_proxies_priv | + Table_roles_mapping, TL_WRITE); + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); DBUG_ASSERT(!thd->is_current_stmt_binlog_format_row()); @@ -9838,13 +10356,14 @@ int mysql_alter_user(THD* thd, List &users_list) { DBUG_ENTER("mysql_alter_user"); int result= 0; - TABLE_LIST tables[TABLES_MAX]; String wrong_users; - // The only table we're altering is the user table. - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user))) - DBUG_RETURN(result); - // Lock ACL data structures until we finish altering all users. + /* The only table we're altering is the user table. */ + Grant_tables tables(Table_user, TL_WRITE); + if ((result= tables.open_and_lock(thd))) + DBUG_RETURN(result != 1); + + /* Lock ACL data structures until we finish altering all users. */ mysql_rwlock_wrlock(&LOCK_grant); mysql_mutex_lock(&acl_cache->lock); @@ -9855,7 +10374,7 @@ int mysql_alter_user(THD* thd, List &users_list) LEX_USER* lex_user= get_current_user(thd, tmp_lex_user, false); if (!lex_user || fix_lex_user(thd, lex_user) || - replace_user_table(thd, tables[USER_TABLE].table, *lex_user,0, + replace_user_table(thd, tables.user_table(), *lex_user, 0, false, false, true)) { thd->clear_error(); @@ -9865,13 +10384,13 @@ int mysql_alter_user(THD* thd, List &users_list) } } - // Unlock ACL data structures. + /* Unlock ACL data structures. */ mysql_mutex_unlock(&acl_cache->lock); mysql_rwlock_unlock(&LOCK_grant); if (result) { - // 'if exists' flag leads to warnings instead of errors. + /* 'if exists' flag leads to warnings instead of errors. */ if (thd->lex->create_info.if_exists()) { push_warning_printf(thd, Sql_condition::WARN_LEVEL_NOTE, @@ -9909,13 +10428,13 @@ bool mysql_revoke_all(THD *thd, List &list) uint counter, revoked, is_proc; int result; ACL_DB *acl_db; - TABLE_LIST tables[TABLES_MAX]; DBUG_ENTER("mysql_revoke_all"); - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user | Table_db | - Table_tables_priv | Table_columns_priv | - Table_procs_priv | Table_proxies_priv | - Table_roles_mapping))) + Grant_tables tables(Table_user | Table_db | + Table_tables_priv | Table_columns_priv | + Table_procs_priv | Table_proxies_priv | + Table_roles_mapping, TL_WRITE); + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); DBUG_ASSERT(!thd->is_current_stmt_binlog_format_row()); @@ -9941,7 +10460,7 @@ bool mysql_revoke_all(THD *thd, List &list) continue; } - if (replace_user_table(thd, tables[USER_TABLE].table, *lex_user, + if (replace_user_table(thd, tables.user_table(), *lex_user, ~(ulong)0, 1, 0, 0)) { result= -1; @@ -9968,8 +10487,10 @@ bool mysql_revoke_all(THD *thd, List &list) if (!strcmp(lex_user->user.str, user) && !strcmp(lex_user->host.str, host)) { - if (!replace_db_table(tables[DB_TABLE].table, acl_db->db, *lex_user, - ~(ulong)0, 1)) + /* TODO(cvicentiu) refactor replace_db_table to use + Db_table instead of TABLE directly. */ + if (!replace_db_table(tables.db_table().table(), acl_db->db, *lex_user, + ~(ulong)0, 1)) { /* Don't increment counter as replace_db_table deleted the @@ -9998,9 +10519,11 @@ bool mysql_revoke_all(THD *thd, List &list) if (!strcmp(lex_user->user.str,user) && !strcmp(lex_user->host.str, host)) { + /* TODO(cvicentiu) refactor replace_db_table to use + Db_table instead of TABLE directly. */ if (replace_table_table(thd, grant_table, - tables[TABLES_PRIV_TABLE].table, - *lex_user, grant_table->db, + tables.tables_priv_table().table(), + *lex_user, grant_table->db, grant_table->tname, ~(ulong)0, 0, 1)) { result= -1; @@ -10013,8 +10536,10 @@ bool mysql_revoke_all(THD *thd, List &list) continue; } List columns; + /* TODO(cvicentiu) refactor replace_db_table to use + Db_table instead of TABLE directly. */ if (!replace_column_table(grant_table, - tables[COLUMNS_PRIV_TABLE].table, + tables.columns_priv_table().table(), *lex_user, columns, grant_table->db, grant_table->tname, ~(ulong)0, 1)) { @@ -10038,20 +10563,21 @@ bool mysql_revoke_all(THD *thd, List &list) user= safe_str(grant_proc->user); host= safe_str(grant_proc->host.hostname); - if (!strcmp(lex_user->user.str,user) && + if (!strcmp(lex_user->user.str,user) && !strcmp(lex_user->host.str, host)) - { - if (replace_routine_table(thd, grant_proc, - tables[PROCS_PRIV_TABLE].table, *lex_user, + { + if (replace_routine_table(thd, grant_proc, + tables.procs_priv_table().table(), + *lex_user, grant_proc->db, grant_proc->tname, is_proc, ~(ulong)0, 1) == 0) - { - revoked= 1; - continue; - } - result= -1; // Something went wrong - } - counter++; + { + revoked= 1; + continue; + } + result= -1; // Something went wrong + } + counter++; } } while (revoked); @@ -10077,7 +10603,9 @@ bool mysql_revoke_all(THD *thd, List &list) ROLE_GRANT_PAIR *pair = find_role_grant_pair(&lex_user->user, &lex_user->host, &role_grant->user); - if (replace_roles_mapping_table(tables[ROLES_MAPPING_TABLE].table, + /* TODO(cvicentiu) refactor replace_roles_mapping_table to use + Roles_mapping_table instead of TABLE directly. */ + if (replace_roles_mapping_table(tables.roles_mapping_table().table(), &lex_user->user, &lex_user->host, &role_grant->user, false, pair, true)) { @@ -10207,15 +10735,15 @@ bool sp_revoke_privileges(THD *thd, const char *sp_db, const char *sp_name, { uint counter, revoked; int result; - TABLE_LIST tables[TABLES_MAX]; HASH *hash= is_proc ? &proc_priv_hash : &func_priv_hash; Silence_routine_definer_errors error_handler; DBUG_ENTER("sp_revoke_privileges"); - if ((result= open_grant_tables(thd, tables, TL_WRITE, Table_user | Table_db | - Table_tables_priv | Table_columns_priv | - Table_procs_priv | Table_proxies_priv | - Table_roles_mapping))) + Grant_tables tables(Table_user | Table_db | + Table_tables_priv | Table_columns_priv | + Table_procs_priv | Table_proxies_priv | + Table_roles_mapping, TL_WRITE); + if ((result= tables.open_and_lock(thd))) DBUG_RETURN(result != 1); DBUG_ASSERT(!thd->is_current_stmt_binlog_format_row()); @@ -10240,9 +10768,9 @@ bool sp_revoke_privileges(THD *thd, const char *sp_db, const char *sp_name, lex_user.user.length= strlen(grant_proc->user); lex_user.host.str= safe_str(grant_proc->host.hostname); lex_user.host.length= strlen(lex_user.host.str); - if (replace_routine_table(thd, grant_proc, - tables[PROCS_PRIV_TABLE].table, lex_user, - grant_proc->db, grant_proc->tname, + if (replace_routine_table(thd, grant_proc, + tables.procs_priv_table().table(), lex_user, + grant_proc->db, grant_proc->tname, is_proc, ~(ulong)0, 1) == 0) { revoked= 1; diff --git a/sql/structs.h b/sql/structs.h index 144e12ca06c..ea47d6255de 100644 --- a/sql/structs.h +++ b/sql/structs.h @@ -205,7 +205,7 @@ typedef int *(*update_var)(THD *, struct st_mysql_show_var *); typedef struct st_lex_user { LEX_STRING user, host, plugin, auth; LEX_STRING pwtext, pwhash; - bool is_role() { return user.str[0] && !host.str[0]; } + bool is_role() const { return user.str[0] && !host.str[0]; } void set_lex_string(LEX_STRING *l, char *buf) { if (is_role()) From d731ce21a7bc25a49958789d24b3f0eec5845aea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Mon, 13 Feb 2017 14:40:51 +0200 Subject: [PATCH 228/258] MDEV-11170: MariaDB 10.2 cannot start on MySQL 5.7 datadir PART 2 of the fix adds the logic of not using password column, unless it exists. If password column is missing we attempt to use plugin && authentication_string columns. --- .../r/no_password_column-mdev-11170.result | 168 +++++++++++++ .../t/no_password_column-mdev-11170.test | 95 ++++++++ sql/sql_acl.cc | 220 ++++++++++++------ 3 files changed, 413 insertions(+), 70 deletions(-) create mode 100644 mysql-test/r/no_password_column-mdev-11170.result create mode 100644 mysql-test/t/no_password_column-mdev-11170.test diff --git a/mysql-test/r/no_password_column-mdev-11170.result b/mysql-test/r/no_password_column-mdev-11170.result new file mode 100644 index 00000000000..81eecc95558 --- /dev/null +++ b/mysql-test/r/no_password_column-mdev-11170.result @@ -0,0 +1,168 @@ +# +# MDEV-11170: MariaDB 10.2 cannot start on MySQL 5.7 datadir: +# Fatal error: mysql.user table is damaged or in +# unsupported 3.20 format +# +create table backup_user like mysql.user; +insert into backup_user select * from mysql.user; +# +# Original mysql.user table +# +describe mysql.user; +Field Type Null Key Default Extra +Host char(60) NO PRI +User char(80) NO PRI +Password char(41) NO +Select_priv enum('N','Y') NO N +Insert_priv enum('N','Y') NO N +Update_priv enum('N','Y') NO N +Delete_priv enum('N','Y') NO N +Create_priv enum('N','Y') NO N +Drop_priv enum('N','Y') NO N +Reload_priv enum('N','Y') NO N +Shutdown_priv enum('N','Y') NO N +Process_priv enum('N','Y') NO N +File_priv enum('N','Y') NO N +Grant_priv enum('N','Y') NO N +References_priv enum('N','Y') NO N +Index_priv enum('N','Y') NO N +Alter_priv enum('N','Y') NO N +Show_db_priv enum('N','Y') NO N +Super_priv enum('N','Y') NO N +Create_tmp_table_priv enum('N','Y') NO N +Lock_tables_priv enum('N','Y') NO N +Execute_priv enum('N','Y') NO N +Repl_slave_priv enum('N','Y') NO N +Repl_client_priv enum('N','Y') NO N +Create_view_priv enum('N','Y') NO N +Show_view_priv enum('N','Y') NO N +Create_routine_priv enum('N','Y') NO N +Alter_routine_priv enum('N','Y') NO N +Create_user_priv enum('N','Y') NO N +Event_priv enum('N','Y') NO N +Trigger_priv enum('N','Y') NO N +Create_tablespace_priv enum('N','Y') NO N +ssl_type enum('','ANY','X509','SPECIFIED') NO +ssl_cipher blob NO NULL +x509_issuer blob NO NULL +x509_subject blob NO NULL +max_questions int(11) unsigned NO 0 +max_updates int(11) unsigned NO 0 +max_connections int(11) unsigned NO 0 +max_user_connections int(11) NO 0 +plugin char(64) NO +authentication_string text NO NULL +password_expired enum('N','Y') NO N +is_role enum('N','Y') NO N +default_role char(80) NO +max_statement_time decimal(12,6) NO 0.000000 +# +# Drop the password column. +# +alter table mysql.user drop column password; +flush privileges; +# +# Create users without the password column present. +# +create user foo; +create user goo identified by "foo"; +select OLD_PASSWORD("ioo"); +OLD_PASSWORD("ioo") +7a8f886d28473e85 +create user ioo identified with "mysql_old_password" as "7a8f886d28473e85"; +# +# Check if users have grants loaded correctly. +# +show grants for foo; +Grants for foo@% +GRANT USAGE ON *.* TO 'foo'@'%' +show grants for goo; +Grants for goo@% +GRANT USAGE ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' +show grants for ioo; +Grants for ioo@% +GRANT USAGE ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' +select user, host, select_priv, plugin, authentication_string from mysql.user +where user like "%oo" +order by user; +user host select_priv plugin authentication_string +foo % N +goo % N mysql_native_password *F3A2A51A9B0F2BE2468926B4132313728C250DBF +ioo % N mysql_old_password 7a8f886d28473e85 +# +# Test setting password. +# +SET PASSWORD FOR foo=PASSWORD("bar"); +show grants for foo; +Grants for foo@% +GRANT USAGE ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' +show grants for goo; +Grants for goo@% +GRANT USAGE ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' +show grants for ioo; +Grants for ioo@% +GRANT USAGE ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' +select user, host, select_priv, plugin, authentication_string from mysql.user +where user like "%oo" +order by user; +user host select_priv plugin authentication_string +foo % N mysql_native_password *E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB +goo % N mysql_native_password *F3A2A51A9B0F2BE2468926B4132313728C250DBF +ioo % N mysql_old_password 7a8f886d28473e85 +# +# Test flush privileges without password column. +# +flush privileges; +show grants for foo; +Grants for foo@% +GRANT USAGE ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' +show grants for goo; +Grants for goo@% +GRANT USAGE ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' +show grants for ioo; +Grants for ioo@% +GRANT USAGE ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' +# +# Test granting of privileges. +# +grant select on *.* to foo; +grant select on *.* to goo; +grant select on *.* to ioo; +show grants for foo; +Grants for foo@% +GRANT SELECT ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' +show grants for goo; +Grants for goo@% +GRANT SELECT ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' +show grants for ioo; +Grants for ioo@% +GRANT SELECT ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' +# +# Check to see if grants are stable on flush. +# +flush privileges; +show grants for foo; +Grants for foo@% +GRANT SELECT ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' +show grants for goo; +Grants for goo@% +GRANT SELECT ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' +show grants for ioo; +Grants for ioo@% +GRANT SELECT ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' +# +# Check internal table representation. +# +select user, host, select_priv, plugin, authentication_string from mysql.user +where user like "%oo" +order by user; +user host select_priv plugin authentication_string +foo % Y mysql_native_password *E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB +goo % Y mysql_native_password *F3A2A51A9B0F2BE2468926B4132313728C250DBF +ioo % Y mysql_old_password 7a8f886d28473e85 +# +# Reset to final original state. +# +drop table mysql.user; +rename table backup_user to mysql.user; +flush privileges; diff --git a/mysql-test/t/no_password_column-mdev-11170.test b/mysql-test/t/no_password_column-mdev-11170.test new file mode 100644 index 00000000000..2cc4ba82ee8 --- /dev/null +++ b/mysql-test/t/no_password_column-mdev-11170.test @@ -0,0 +1,95 @@ +--source include/not_embedded.inc +--echo # +--echo # MDEV-11170: MariaDB 10.2 cannot start on MySQL 5.7 datadir: +--echo # Fatal error: mysql.user table is damaged or in +--echo # unsupported 3.20 format +--echo # + + +create table backup_user like mysql.user; +insert into backup_user select * from mysql.user; + +--echo # +--echo # Original mysql.user table +--echo # +describe mysql.user; + +--echo # +--echo # Drop the password column. +--echo # +alter table mysql.user drop column password; +flush privileges; + +--echo # +--echo # Create users without the password column present. +--echo # +create user foo; +create user goo identified by "foo"; +select OLD_PASSWORD("ioo"); +create user ioo identified with "mysql_old_password" as "7a8f886d28473e85"; + +--echo # +--echo # Check if users have grants loaded correctly. +--echo # +show grants for foo; +show grants for goo; +show grants for ioo; + +select user, host, select_priv, plugin, authentication_string from mysql.user +where user like "%oo" +order by user; + +--echo # +--echo # Test setting password. +--echo # +SET PASSWORD FOR foo=PASSWORD("bar"); + +show grants for foo; +show grants for goo; +show grants for ioo; + +select user, host, select_priv, plugin, authentication_string from mysql.user +where user like "%oo" +order by user; + +--echo # +--echo # Test flush privileges without password column. +--echo # +flush privileges; +show grants for foo; +show grants for goo; +show grants for ioo; + +--echo # +--echo # Test granting of privileges. +--echo # +grant select on *.* to foo; +grant select on *.* to goo; +grant select on *.* to ioo; +show grants for foo; +show grants for goo; +show grants for ioo; + +--echo # +--echo # Check to see if grants are stable on flush. +--echo # +flush privileges; +show grants for foo; +show grants for goo; +show grants for ioo; + +--echo # +--echo # Check internal table representation. +--echo # +select user, host, select_priv, plugin, authentication_string from mysql.user +where user like "%oo" +order by user; + + +--echo # +--echo # Reset to final original state. +--echo # +drop table mysql.user; +rename table backup_user to mysql.user; + +flush privileges; diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index dd0c302ae04..ab0ed527bc3 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -932,41 +932,44 @@ class Grant_table_base class User_table: public Grant_table_base { public: + /* Field getters return NULL if the column is not present in the table. + This is consistent only if the table is in a supported version. We do + not guard against corrupt tables. (yet) */ Field* host() const - { return tl.table->field[0]; } + { return get_field(0); } Field* user() const - { return tl.table->field[1]; } + { return get_field(1); } Field* password() const - { return tl.table->field[2]; } + { return have_password() ? NULL : tl.table->field[2]; } /* Columns after privilege columns. */ Field* ssl_type() const - { return tl.table->field[start_privilege_column + num_privileges()]; } + { return get_field(start_privilege_column + num_privileges()); } Field* ssl_cipher() const - { return tl.table->field[start_privilege_column + num_privileges() + 1]; } + { return get_field(start_privilege_column + num_privileges() + 1); } Field* x509_issuer() const - { return tl.table->field[start_privilege_column + num_privileges() + 2]; } + { return get_field(start_privilege_column + num_privileges() + 2); } Field* x509_subject() const - { return tl.table->field[start_privilege_column + num_privileges() + 3]; } + { return get_field(start_privilege_column + num_privileges() + 3); } Field* max_questions() const - { return tl.table->field[start_privilege_column + num_privileges() + 4]; } + { return get_field(start_privilege_column + num_privileges() + 4); } Field* max_updates() const - { return tl.table->field[start_privilege_column + num_privileges() + 5]; } + { return get_field(start_privilege_column + num_privileges() + 5); } Field* max_connections() const - { return tl.table->field[start_privilege_column + num_privileges() + 6]; } + { return get_field(start_privilege_column + num_privileges() + 6); } Field* max_user_connections() const - { return tl.table->field[start_privilege_column + num_privileges() + 7]; } + { return get_field(start_privilege_column + num_privileges() + 7); } Field* plugin() const - { return tl.table->field[start_privilege_column + num_privileges() + 8]; } + { return get_field(start_privilege_column + num_privileges() + 8); } Field* authentication_string() const - { return tl.table->field[start_privilege_column + num_privileges() + 9]; } + { return get_field(start_privilege_column + num_privileges() + 9); } Field* password_expired() const - { return tl.table->field[start_privilege_column + num_privileges() + 10]; } + { return get_field(start_privilege_column + num_privileges() + 10); } Field* is_role() const - { return tl.table->field[start_privilege_column + num_privileges() + 11]; } + { return get_field(start_privilege_column + num_privileges() + 11); } Field* default_role() const - { return tl.table->field[start_privilege_column + num_privileges() + 12]; } + { return get_field(start_privilege_column + num_privileges() + 12); } Field* max_statement_time() const - { return tl.table->field[start_privilege_column + num_privileges() + 13]; } + { return get_field(start_privilege_column + num_privileges() + 13); } /* Check if a user entry in the user table is marked as being a role entry @@ -987,7 +990,7 @@ class User_table: public Grant_table_base bool check_is_role() const { /* Table version does not support roles */ - if (num_fields() < 44) + if (!is_role()) return false; return get_YN_as_bool(is_role()); @@ -1008,6 +1011,30 @@ class User_table: public Grant_table_base NULL, lock_type); Grant_table_base::init(lock_type, false); } + + /* The user table is a bit different compared to the other Grant tables. + Usually, we only add columns to the grant tables when adding functionality. + This makes it easy to test which version of the table we are using, by + just looking at the number of fields present in the table. + + In MySQL 5.7.6 the Password column was removed. We need to guard for that. + The field-fetching methods for the User table return NULL if the field + doesn't exist. This simplifies checking of table "version", as we don't + have to make use of num_fields() any more. + */ + inline Field* get_field(uint field_num) const + { + if (field_num >= num_fields()) + return NULL; + + return tl.table->field[field_num]; + } + + /* Normally password column is the third column in the table. If privileges + start on the third column instead, we are missing the password column. + This means we are using a MySQL 5.7.6+ data directory. */ + bool have_password() const { return start_privilege_column == 2; } + }; class Db_table: public Grant_table_base @@ -1849,47 +1876,50 @@ static bool acl_load(THD *thd, const Grant_tables& tables) username_char_length= MY_MIN(user_table.user()->char_length(), USERNAME_CHAR_LENGTH); - password_length= user_table.password()->field_length / - user_table.password()->charset()->mbmaxlen; - if (password_length < SCRAMBLED_PASSWORD_CHAR_LENGTH_323) + if (user_table.password()) // Password column might be missing. (MySQL 5.7.6+) { - sql_print_error("Fatal error: mysql.user table is damaged or in " - "unsupported 3.20 format."); - DBUG_RETURN(TRUE); - } - - DBUG_PRINT("info",("user table fields: %d, password length: %d", - user_table.num_fields(), password_length)); - - mysql_mutex_lock(&LOCK_global_system_variables); - if (password_length < SCRAMBLED_PASSWORD_CHAR_LENGTH) - { - if (opt_secure_auth) + password_length= user_table.password()->field_length / + user_table.password()->charset()->mbmaxlen; + if (password_length < SCRAMBLED_PASSWORD_CHAR_LENGTH_323) { - mysql_mutex_unlock(&LOCK_global_system_variables); - sql_print_error("Fatal error: mysql.user table is in old format, " - "but server started with --secure-auth option."); + sql_print_error("Fatal error: mysql.user table is damaged or in " + "unsupported 3.20 format."); DBUG_RETURN(TRUE); } - mysql_user_table_is_in_short_password_format= true; - if (global_system_variables.old_passwords) - mysql_mutex_unlock(&LOCK_global_system_variables); + + DBUG_PRINT("info",("user table fields: %d, password length: %d", + user_table.num_fields(), password_length)); + + mysql_mutex_lock(&LOCK_global_system_variables); + if (password_length < SCRAMBLED_PASSWORD_CHAR_LENGTH) + { + if (opt_secure_auth) + { + mysql_mutex_unlock(&LOCK_global_system_variables); + sql_print_error("Fatal error: mysql.user table is in old format, " + "but server started with --secure-auth option."); + DBUG_RETURN(TRUE); + } + mysql_user_table_is_in_short_password_format= true; + if (global_system_variables.old_passwords) + mysql_mutex_unlock(&LOCK_global_system_variables); + else + { + extern sys_var *Sys_old_passwords_ptr; + Sys_old_passwords_ptr->value_origin= sys_var::AUTO; + global_system_variables.old_passwords= 1; + mysql_mutex_unlock(&LOCK_global_system_variables); + sql_print_warning("mysql.user table is not updated to new password format; " + "Disabling new password usage until " + "mysql_fix_privilege_tables is run"); + } + thd->variables.old_passwords= 1; + } else { - extern sys_var *Sys_old_passwords_ptr; - Sys_old_passwords_ptr->value_origin= sys_var::AUTO; - global_system_variables.old_passwords= 1; + mysql_user_table_is_in_short_password_format= false; mysql_mutex_unlock(&LOCK_global_system_variables); - sql_print_warning("mysql.user table is not updated to new password format; " - "Disabling new password usage until " - "mysql_fix_privilege_tables is run"); } - thd->variables.old_passwords= 1; - } - else - { - mysql_user_table_is_in_short_password_format= false; - mysql_mutex_unlock(&LOCK_global_system_variables); } allow_all_hosts=0; @@ -1925,7 +1955,9 @@ static bool acl_load(THD *thd, const Grant_tables& tables) continue; } - char *password= get_field(&acl_memroot, user_table.password()); + char *password= const_cast(""); + if (user_table.password()) + password= get_field(&acl_memroot, user_table.password()); uint password_len= safe_strlen(password); user.auth_string.str= safe_str(password); user.auth_string.length= password_len; @@ -1978,7 +2010,7 @@ static bool acl_load(THD *thd, const Grant_tables& tables) user.user_resource.max_statement_time= 0.0; /* Starting from 4.0.2 we have more fields */ - if (user_table.num_fields() >= 31) + if (user_table.ssl_type()) { char *ssl_type=get_field(thd->mem_root, user_table.ssl_type()); if (!ssl_type) @@ -2004,14 +2036,14 @@ static bool acl_load(THD *thd, const Grant_tables& tables) user.user_resource.conn_per_hour) mqh_used=1; - if (user_table.num_fields() >= 36) + if (user_table.max_user_connections()) { /* Starting from 5.0.3 we have max_user_connections field */ ptr= get_field(thd->mem_root, user_table.max_user_connections()); user.user_resource.user_conn= ptr ? atoi(ptr) : 0; } - if (!is_role && user_table.num_fields() >= 41) + if (!is_role && user_table.plugin()) { /* We may have plugin & auth_String fields */ char *tmpstr= get_field(&acl_memroot, user_table.plugin()); @@ -2037,7 +2069,7 @@ static bool acl_load(THD *thd, const Grant_tables& tables) } } - if (user_table.num_fields() > MAX_STATEMENT_TIME_COLUMN_IDX) + if (user_table.max_statement_time()) { /* Starting from 10.1.1 we can have max_statement_time */ ptr= get_field(thd->mem_root, @@ -2067,7 +2099,7 @@ static bool acl_load(THD *thd, const Grant_tables& tables) 8, 8, MYF(0)); /* check default role, if any */ - if (!is_role && user_table.num_fields() > DEFAULT_ROLE_COLUMN_IDX) + if (!is_role && user_table.default_role()) { user.default_rolename.str= get_field(&acl_memroot, user_table.default_role()); @@ -3503,10 +3535,11 @@ int acl_set_default_role(THD *thd, const char *host, const char *user, /* update the mysql.user table with the new default role */ tables.user_table().table()->use_all_columns(); - if (tables.user_table().num_fields() <= DEFAULT_ROLE_COLUMN_IDX) + if (!tables.user_table().default_role()) { my_error(ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE, MYF(0), - table->alias.c_ptr(), DEFAULT_ROLE_COLUMN_IDX + 1, table->s->fields, + table->alias.c_ptr(), DEFAULT_ROLE_COLUMN_IDX + 1, + tables.user_table().num_fields(), static_cast(table->s->mysql_version), MYSQL_VERSION_ID); mysql_mutex_unlock(&acl_cache->lock); goto end; @@ -3821,6 +3854,27 @@ bool hostname_requires_resolving(const char *hostname) } +void set_authentication_plugin_from_password(const User_table& user_table, + const char* password, + uint password_length) +{ + if (password_length == SCRAMBLED_PASSWORD_CHAR_LENGTH) + { + user_table.plugin()->store(native_password_plugin_name.str, + native_password_plugin_name.length, + system_charset_info); + } + else + { + DBUG_ASSERT(password_length == SCRAMBLED_PASSWORD_CHAR_LENGTH_323); + user_table.plugin()->store(old_password_plugin_name.str, + old_password_plugin_name.length, + system_charset_info); + } + user_table.authentication_string()->store(password, + password_length, + system_charset_info); +} /** Update record for user in mysql.user privilege table with new password. @@ -3859,7 +3913,15 @@ static bool update_user_table(THD *thd, const User_table& user_table, DBUG_RETURN(1); /* purecov: deadcode */ } store_record(table,record[1]); - user_table.password()->store(new_password, new_password_len, system_charset_info); + /* If the password column is missing, we use the + authentication_string column. */ + if (user_table.password()) + user_table.password()->store(new_password, new_password_len, system_charset_info); + else + set_authentication_plugin_from_password(user_table, new_password, + new_password_len); + + if ((error=table->file->ha_update_row(table->record[1],table->record[0])) && error != HA_ERR_RECORD_IS_THE_SAME) { @@ -3939,7 +4001,7 @@ static int replace_user_table(THD *thd, const User_table &user_table, combo.pwhash= empty_lex_str; /* if the user table is not up to date, we can't handle role updates */ - if (user_table.num_fields() <= ROLE_ASSIGN_COLUMN_IDX && handle_as_role) + if (!user_table.is_role() && handle_as_role) { my_error(ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE, MYF(0), "user", ROLE_ASSIGN_COLUMN_IDX + 1, user_table.num_fields(), @@ -4026,11 +4088,16 @@ static int replace_user_table(THD *thd, const User_table &user_table, rights= user_table.get_access(); - DBUG_PRINT("info",("table fields: %d",user_table.num_fields())); - if (combo.pwhash.str[0]) + DBUG_PRINT("info",("table fields: %d", user_table.num_fields())); + /* If we don't have a password column, we'll use the authentication_string + column later. */ + if (combo.pwhash.str[0] && user_table.password()) user_table.password()->store(combo.pwhash.str, combo.pwhash.length, system_charset_info); - if (user_table.num_fields() >= 31) /* From 4.0.0 we have more fields */ + /* We either have the password column, the plugin column, or both. Otherwise + we have a corrupt user table. */ + DBUG_ASSERT(user_table.password() || user_table.plugin()); + if (user_table.ssl_type()) /* From 4.0.0 we have more fields */ { /* We write down SSL related ACL stuff */ switch (lex->ssl_type) { @@ -4084,17 +4151,18 @@ static int replace_user_table(THD *thd, const User_table &user_table, user_table.max_updates()->store((longlong) mqh.updates, TRUE); if (mqh.specified_limits & USER_RESOURCES::CONNECTIONS_PER_HOUR) user_table.max_connections()->store((longlong) mqh.conn_per_hour, TRUE); - if (user_table.num_fields() >= 36 && + if (user_table.max_user_connections() && (mqh.specified_limits & USER_RESOURCES::USER_CONNECTIONS)) user_table.max_user_connections()->store((longlong) mqh.user_conn, FALSE); - if (user_table.num_fields() >= 41) + if (user_table.plugin()) { user_table.plugin()->set_notnull(); user_table.authentication_string()->set_notnull(); if (combo.plugin.str[0]) { DBUG_ASSERT(combo.pwhash.str[0] == 0); - user_table.password()->reset(); + if (user_table.password()) + user_table.password()->reset(); user_table.plugin()->store(combo.plugin.str, combo.plugin.length, system_charset_info); user_table.authentication_string()->store(combo.auth.str, combo.auth.length, @@ -4103,11 +4171,23 @@ static int replace_user_table(THD *thd, const User_table &user_table, if (combo.pwhash.str[0]) { DBUG_ASSERT(combo.plugin.str[0] == 0); - user_table.plugin()->reset(); - user_table.authentication_string()->reset(); + /* We have Password column. */ + if (user_table.password()) + { + user_table.plugin()->reset(); + user_table.authentication_string()->reset(); + } + else + { + /* We do not have Password column. Use PLUGIN && Authentication_string + columns instead. */ + set_authentication_plugin_from_password(user_table, + combo.pwhash.str, + combo.pwhash.length); + } } - if (user_table.num_fields() > MAX_STATEMENT_TIME_COLUMN_IDX) + if (user_table.max_statement_time()) { if (mqh.specified_limits & USER_RESOURCES::MAX_STATEMENT_TIME) user_table.max_statement_time()->store(mqh.max_statement_time); From 1b4b4f688711c2ee99bc70e6cffa37b64820b0f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 13 Feb 2017 14:06:01 +0200 Subject: [PATCH 229/258] MDEV-12057 Embedded server shutdown hangs in InnoDB Ever since MDEV-5800 enabled indexed virtual columns for InnoDB, the InnoDB shutdown relied on close_connections() that would set thd->killed for the InnoDB purge threads. Alas, the embedded server shutdown is not invoking close_connections(), and thus InnoDB purge threads fail to initiate shutdown, causing a hang. innodb_inited: Remove. Use srv_was_started instead. innobase_fast_shutdown: Remove. Use srv_fast_shutdown instead. srv_running: Renamed from thd_destructor_myvar, and made global. The value NULL means that shutdown was requested or the purge threads should not be running because of innodb_read_only_mode=1. innobase_init(): Set srv_was_started after ensuring that srv_running was initialized. (In innodb_read_only mode, the purge threads are not started and we do not care if srv_running==NULL.) innobase_start_or_create_for_mysql(): Do not set srv_was_started. Let it be set by the only caller innobase_init(). srv_purge_should_exit(): Check also srv_was_started and srv_running when evaluating thd->killed. --- storage/innobase/handler/ha_innodb.cc | 50 +++++++++++---------------- storage/innobase/include/srv0srv.h | 7 +++- storage/innobase/srv/srv0srv.cc | 15 ++++---- storage/innobase/srv/srv0start.cc | 3 +- 4 files changed, 35 insertions(+), 40 deletions(-) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 9463eb5f514..6dbf1b6a8f5 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -188,7 +188,6 @@ static ulong commit_threads = 0; static mysql_cond_t commit_cond; static mysql_mutex_t commit_cond_m; static mysql_mutex_t pending_checkpoint_mutex; -static bool innodb_inited = 0; #define INSIDE_HA_INNOBASE_CC @@ -245,7 +244,6 @@ static char* innobase_server_stopword_table = NULL; /* Below we have boolean-valued start-up parameters, and their default values */ -static ulong innobase_fast_shutdown = 1; static my_bool innobase_file_format_check = TRUE; static my_bool innobase_use_atomic_writes = TRUE; static my_bool innobase_use_fallocate; @@ -305,13 +303,15 @@ is_partition( #endif /* _WIN32 */ } +/** Signal to shut down InnoDB (NULL if shutdown was signaled, or if +running in innodb_read_only mode, srv_read_only_mode) */ +volatile st_my_thread_var *srv_running; /** Service thread that waits for the server shutdown and stops purge threads. Purge workers have THDs that are needed to calculate virtual columns. This THDs must be destroyed rather early in the server shutdown sequence. This service thread creates a THD and idly waits for it to get a signal to die. Then it notifies all purge workers to shutdown. */ -static volatile st_my_thread_var *thd_destructor_myvar= NULL; static pthread_t thd_destructor_thread; pthread_handler_t @@ -332,14 +332,13 @@ thd_destructor_proxy(void *) myvar->current_cond = &thd_destructor_cond; mysql_mutex_lock(&thd_destructor_mutex); - thd_destructor_myvar = myvar; + srv_running = myvar; /* wait until the server wakes the THD to abort and die */ - while (!thd_destructor_myvar->abort) + while (!srv_running->abort) mysql_cond_wait(&thd_destructor_cond, &thd_destructor_mutex); mysql_mutex_unlock(&thd_destructor_mutex); - thd_destructor_myvar = NULL; + srv_running = NULL; - srv_fast_shutdown = (ulint) innobase_fast_shutdown; if (srv_fast_shutdown == 0) { while (trx_sys_any_active_transactions()) { os_thread_sleep(1000); @@ -1998,14 +1997,8 @@ innobase_release_temporary_latches( { DBUG_ASSERT(hton == innodb_hton_ptr); - if (!innodb_inited) { - - return(0); - } - - trx_t* trx = thd_to_trx(thd); - - if (trx != NULL) { + if (!srv_was_started) { + } else if (trx_t* trx = thd_to_trx(thd)) { trx_search_latch_release_if_reserved(trx); } @@ -4407,10 +4400,11 @@ innobase_change_buffering_inited_ok: mysql_thread_create(thd_destructor_thread_key, &thd_destructor_thread, NULL, thd_destructor_proxy, NULL); - while (!thd_destructor_myvar) + while (!srv_running) os_thread_sleep(20); } + srv_was_started = TRUE; /* Adjust the innodb_undo_logs config object */ innobase_undo_logs_init_default_max(); @@ -4429,7 +4423,6 @@ innobase_change_buffering_inited_ok: mysql_mutex_init(pending_checkpoint_mutex_key, &pending_checkpoint_mutex, MY_MUTEX_INIT_FAST); - innodb_inited= 1; #ifdef MYSQL_DYNAMIC_PLUGIN if (innobase_hton != p) { innobase_hton = reinterpret_cast(p); @@ -4498,8 +4491,7 @@ innobase_end( DBUG_ENTER("innobase_end"); DBUG_ASSERT(hton == innodb_hton_ptr); - if (innodb_inited) { - + if (srv_was_started) { THD *thd= current_thd; if (thd) { // may be UNINSTALL PLUGIN statement trx_t* trx = thd_to_trx(thd); @@ -4508,23 +4500,21 @@ innobase_end( } } - srv_fast_shutdown = (ulint) innobase_fast_shutdown; - - innodb_inited = 0; hash_table_free(innobase_open_tables); innobase_open_tables = NULL; - if (!abort_loop && thd_destructor_myvar) { + if (!abort_loop && srv_running) { // may be UNINSTALL PLUGIN statement - thd_destructor_myvar->abort = 1; - mysql_cond_broadcast(thd_destructor_myvar->current_cond); + srv_running->abort = 1; + mysql_cond_broadcast(srv_running->current_cond); + } + + if (!srv_read_only_mode) { + pthread_join(thd_destructor_thread, NULL); } innodb_shutdown(); innobase_space_shutdown(); - if (!srv_read_only_mode) { - pthread_join(thd_destructor_thread, NULL); - } mysql_mutex_destroy(&innobase_share_mutex); mysql_mutex_destroy(&commit_cond_m); @@ -16637,7 +16627,7 @@ void innodb_export_status() /*==================*/ { - if (innodb_inited) { + if (srv_was_started) { srv_export_innodb_status(); } } @@ -20743,7 +20733,7 @@ static MYSQL_SYSVAR_ULONG(sync_array_size, srv_sync_array_size, 1, /* Minimum value */ 1024, 0); /* Maximum value */ -static MYSQL_SYSVAR_ULONG(fast_shutdown, innobase_fast_shutdown, +static MYSQL_SYSVAR_UINT(fast_shutdown, srv_fast_shutdown, PLUGIN_VAR_OPCMDARG, "Speeds up the shutdown process of the InnoDB storage engine. Possible" " values are 0, 1 (faster) or 2 (fastest - crash-like).", diff --git a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h index 90c3284f95a..4b06e47e39e 100644 --- a/storage/innobase/include/srv0srv.h +++ b/storage/innobase/include/srv0srv.h @@ -451,13 +451,18 @@ extern ulong srv_flushing_avg_loops; extern ulong srv_force_recovery; -extern ulint srv_fast_shutdown; /*!< If this is 1, do not do a +extern uint srv_fast_shutdown; /*!< If this is 1, do not do a purge and index buffer merge. If this 2, do not even flush the buffer pool to data files at the shutdown: we effectively 'crash' InnoDB (but lose no committed transactions). */ + +/** Signal to shut down InnoDB (NULL if shutdown was signaled, or if +running in innodb_read_only mode, srv_read_only_mode) */ +extern volatile st_my_thread_var *srv_running; + extern ibool srv_innodb_status; extern unsigned long long srv_stats_transient_sample_pages; diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index eff78a0b350..9f61d43463b 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -371,7 +371,7 @@ my_bool srv_cmp_per_index_enabled = FALSE; merge to completion before shutdown. If it is set to 2, do not even flush the buffer pool to data files at the shutdown: we effectively 'crash' InnoDB (but lose no committed transactions). */ -ulint srv_fast_shutdown = 0; +uint srv_fast_shutdown; /* Generate a innodb_status. file */ ibool srv_innodb_status = FALSE; @@ -2608,15 +2608,14 @@ srv_purge_should_exit( MYSQL_THD thd, ulint n_purged) /*!< in: pages purged in last batch */ { - if (thd_kill_level(thd)) { - return(srv_fast_shutdown != 0 || n_purged == 0); - } - switch (srv_shutdown_state) { case SRV_SHUTDOWN_NONE: - /* Normal operation. */ - break; - + if ((!srv_was_started || srv_running) + && !thd_kill_level(thd)) { + /* Normal operation. */ + break; + } + /* close_connections() was called; fall through */ case SRV_SHUTDOWN_CLEANUP: case SRV_SHUTDOWN_EXIT_THREADS: /* Exit unless slow shutdown requested or all done. */ diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 69d094cdc86..89acdec72da 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -2668,7 +2668,6 @@ files_checked: srv_buf_resize_thread_active = true; os_thread_create(buf_resize_thread, NULL, NULL); - srv_was_started = TRUE; return(DB_SUCCESS); } @@ -2719,6 +2718,8 @@ srv_shutdown_bg_undo_sources(void) void innodb_shutdown() { + ut_ad(!srv_running); + if (srv_fast_shutdown) { srv_shutdown_bg_undo_sources(); } From 2bf07556e8ba35ea166b1f603706851faa01d9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Tue, 14 Feb 2017 10:53:17 +0200 Subject: [PATCH 230/258] Post-push fix for MDEV-12057. Fix a test result for the narrower type of innodb_fast_shutdown. --- mysql-test/suite/sys_vars/r/sysvars_innodb.result | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result index 37688e8d895..74d5abaf1d4 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result @@ -866,7 +866,7 @@ GLOBAL_VALUE 1 GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Speeds up the shutdown process of the InnoDB storage engine. Possible values are 0, 1 (faster) or 2 (fastest - crash-like). NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 2 From f76d5fefb818760f41488c1793fca27d97c9c2a0 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Tue, 14 Feb 2017 17:51:03 +0400 Subject: [PATCH 231/258] MDEV-11439 No data type JSON, but CAST(something AS JSON) pretends to work. json_detailed() fixed --- mysql-test/r/func_json.result | 22 +++++++++++ mysql-test/t/func_json.test | 4 ++ sql/item_create.cc | 25 ++++++++++--- sql/item_jsonfunc.cc | 69 ++++++++++++++++++++++++++++++++--- sql/item_jsonfunc.h | 5 ++- 5 files changed, 112 insertions(+), 13 deletions(-) diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index e8d11fce56f..4c1c82ed331 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -567,3 +567,25 @@ json_merge('{"a":{"u":12, "x":"b"}}', '{"a":{"x":"c"}}') select json_merge('{"a":{"u":12, "x":"b", "r":1}}', '{"a":{"x":"c", "r":2}}') ; json_merge('{"a":{"u":12, "x":"b", "r":1}}', '{"a":{"x":"c", "r":2}}') {"a": {"u": 12, "x": ["b", "c"], "r": [1, 2]}} +select json_compact('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}'); +json_compact('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}') +{"a":1,"b":[1,2,3],"c":{"aa":"v1","bb":"v2"}} +select json_loose('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}'); +json_loose('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}') +{"a": 1, "b": [1, 2, 3], "c": {"aa": "v1", "bb": "v2"}} +select json_detailed('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}'); +json_detailed('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}') +{ + "a": 1, + "b": + [ + 1, + 2, + 3 + ], + "c": + { + "aa": "v1", + "bb": "v2" + } +} diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test index aedc65159c5..be56eb46d09 100644 --- a/mysql-test/t/func_json.test +++ b/mysql-test/t/func_json.test @@ -234,3 +234,7 @@ select json_merge('{"a":"b"}', '{"a":"c"}') ; select json_merge('{"a":{"x":"b"}}', '{"a":"c"}') ; select json_merge('{"a":{"u":12, "x":"b"}}', '{"a":{"x":"c"}}') ; select json_merge('{"a":{"u":12, "x":"b", "r":1}}', '{"a":{"x":"c", "r":2}}') ; + +select json_compact('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}'); +select json_loose('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}'); +select json_detailed('{"a":1, "b":[1,2,3], "c":{"aa":"v1", "bb": "v2"}}'); diff --git a/sql/item_create.cc b/sql/item_create.cc index d2be36e105f..dee1db1ee2e 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -1788,10 +1788,10 @@ protected: }; -class Create_func_json_detailed : public Create_func_arg2 +class Create_func_json_detailed: public Create_native_func { public: - virtual Item *create_2_arg(THD *thd, Item *arg1, Item *arg2); + virtual Item *create_native(THD *thd, LEX_STRING name, List *item_list); static Create_func_json_detailed s_singleton; @@ -1801,7 +1801,6 @@ protected: }; - class Create_func_json_type : public Create_func_arg1 { public: @@ -5046,9 +5045,25 @@ Create_func_json_exists::create_2_arg(THD *thd, Item *arg1, Item *arg2) Create_func_json_detailed Create_func_json_detailed::s_singleton; Item* -Create_func_json_detailed::create_2_arg(THD *thd, Item *arg1, Item *arg2) +Create_func_json_detailed::create_native(THD *thd, LEX_STRING name, + List *item_list) { - return new (thd->mem_root) Item_func_json_format(thd, arg1, arg2); + Item *func= NULL; + int arg_count= 0; + + if (item_list != NULL) + arg_count= item_list->elements; + + if (arg_count < 1 || arg_count > 2 /* json_doc, [path]...*/) + { + my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str); + } + else + { + func= new (thd->mem_root) Item_func_json_format(thd, *item_list); + } + + return func; } diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc index ae885dc7702..d955ddb53df 100644 --- a/sql/item_jsonfunc.cc +++ b/sql/item_jsonfunc.cc @@ -113,8 +113,24 @@ static int st_append_escaped(String *s, const String *a) } +static const int TAB_SIZE_LIMIT= 8; +static const char tab_arr[TAB_SIZE_LIMIT+1]= " "; + +static int append_tab(String *js, int depth, int tab_size) +{ + if (js->append("\n", 1)) + return 1; + for (int i=0; iappend(tab_arr, tab_size)) + return 1; + } + return 0; +} + + static int json_nice(json_engine_t *je, String *nice_js, - Item_func_json_format::formats mode) + Item_func_json_format::formats mode, int tab_size=4) { int depth= 0; const char *comma, *colon; @@ -122,19 +138,24 @@ static int json_nice(json_engine_t *je, String *nice_js, int first_value= 1; DBUG_ASSERT(je->s.cs == nice_js->charset()); + DBUG_ASSERT(mode != Item_func_json_format::DETAILED || + (tab_size >= 0 && tab_size <= TAB_SIZE_LIMIT)); + comma= ", "; + colon= "\": "; if (mode == Item_func_json_format::LOOSE) { - comma= ", "; comma_len= 2; - colon= "\": "; + colon_len= 3; + } + else if (mode == Item_func_json_format::DETAILED) + { + comma_len= 1; colon_len= 3; } else { - comma= ","; comma_len= 1; - colon= "\":"; colon_len= 2; } @@ -158,6 +179,10 @@ static int json_nice(json_engine_t *je, String *nice_js, if (!first_value) nice_js->append(comma, comma_len); + if (mode == Item_func_json_format::DETAILED && + append_tab(nice_js, depth, tab_size)) + goto error; + nice_js->append("\"", 1); append_simple(nice_js, key_start, key_end - key_start); nice_js->append(colon, colon_len); @@ -170,6 +195,11 @@ static int json_nice(json_engine_t *je, String *nice_js, if (!first_value) nice_js->append(comma, comma_len); + if (mode == Item_func_json_format::DETAILED && + depth > 0 && + append_tab(nice_js, depth, tab_size)) + goto error; + handle_value: if (json_read_value(je)) goto error; @@ -183,6 +213,10 @@ handle_value: } else { + if (mode == Item_func_json_format::DETAILED && + depth > 0 && + append_tab(nice_js, depth, tab_size)) + goto error; nice_js->append((je->value_type == JSON_VALUE_OBJECT) ? "{" : "[", 1); first_value= 1; depth++; @@ -193,6 +227,9 @@ handle_value: case JST_OBJ_END: case JST_ARRAY_END: depth--; + if (mode == Item_func_json_format::DETAILED && + append_tab(nice_js, depth, tab_size)) + goto error; nice_js->append((je->state == JST_OBJ_END) ? "}": "]", 1); first_value= 0; break; @@ -2941,15 +2978,35 @@ String *Item_func_json_format::val_str(String *str) { String *js= args[0]->val_str(&tmp_js); json_engine_t je; + int tab_size; + if ((null_value= args[0]->null_value)) return 0; + if (fmt == DETAILED) + { + tab_size= 4; + if (arg_count > 1) + { + tab_size= args[1]->val_int(); + if (args[1]->null_value) + { + null_value= 1; + return 0; + } + } + if (tab_size < 0) + tab_size= 0; + else if (tab_size > TAB_SIZE_LIMIT) + tab_size= TAB_SIZE_LIMIT; + } + json_scan_start(&je, js->charset(), (const uchar *) js->ptr(), (const uchar *) js->ptr()+js->length()); str->length(0); str->set_charset(js->charset()); - if (json_nice(&je, str, fmt)) + if (json_nice(&je, str, fmt, tab_size)) { null_value= 1; report_json_error(js, &je, 0); diff --git a/sql/item_jsonfunc.h b/sql/item_jsonfunc.h index 941123041d2..0eedfa18be1 100644 --- a/sql/item_jsonfunc.h +++ b/sql/item_jsonfunc.h @@ -443,8 +443,9 @@ protected: public: Item_func_json_format(THD *thd, Item *js, formats format): Item_str_func(thd, js), fmt(format) {} - Item_func_json_format(THD *thd, Item *js, Item *tabsize): - Item_str_func(thd, js, tabsize), fmt(DETAILED) {} + Item_func_json_format(THD *thd, List &list): + Item_str_func(thd, list), fmt(DETAILED) {} + const char *func_name() const; void fix_length_and_dec(); String *val_str(String *str); From 8877f1c32566b32bf9c598052e8f866a361190fb Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 14 Feb 2017 18:07:42 +0100 Subject: [PATCH 232/258] MDEV-12056 mysql_config outputs non-existing mysqlclient Change output of mysql_config --libs to have -lmariadb instead of -lmysqlclient Static linking is not yet supported, because static library has different base name ( libmariadbclient.a static vs libmariadb.so shared) --- cmake/for_clients.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/for_clients.cmake b/cmake/for_clients.cmake index dd79ea1039d..f6a076f9632 100644 --- a/cmake/for_clients.cmake +++ b/cmake/for_clients.cmake @@ -45,10 +45,10 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) ENDIF() ENDMACRO() -EXTRACT_LINK_LIBRARIES(mysqlclient LIBS) +EXTRACT_LINK_LIBRARIES(mariadb LIBS) EXTRACT_LINK_LIBRARIES(mysqlserver EMB_LIBS) -SET(LIBS "-lmysqlclient ${ZLIB_DEPS} ${LIBS} ${openssl_libs}") +SET(LIBS "-lmariadb ${ZLIB_DEPS} ${LIBS} ${openssl_libs}") SET(EMB_LIBS "-lmysqld ${ZLIB_DEPS} ${EMB_LIBS} ${openssl_libs}") MACRO(REPLACE_FOR_CLIENTS VAR) From e0fa2ce40f03add01bb3d934480e74e3ee64dd6c Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 14 Feb 2017 18:04:35 +0100 Subject: [PATCH 233/258] bugfix: uninitialized variable fixes crashes on win32-debug --- sql/item_jsonfunc.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc index d955ddb53df..59d49b81d4a 100644 --- a/sql/item_jsonfunc.cc +++ b/sql/item_jsonfunc.cc @@ -2978,14 +2978,13 @@ String *Item_func_json_format::val_str(String *str) { String *js= args[0]->val_str(&tmp_js); json_engine_t je; - int tab_size; + int tab_size= 4; if ((null_value= args[0]->null_value)) return 0; if (fmt == DETAILED) { - tab_size= 4; if (arg_count > 1) { tab_size= args[1]->val_int(); From 6f6d0531dca711f13842cfca761afd073c595f57 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 14 Feb 2017 11:11:47 +0100 Subject: [PATCH 234/258] MDEV-11439 No data type JSON, but CAST(something AS JSON) pretends to work Use JSON_COMPACT(X) instead of CAST(X AS JSON). Bonus - X is validated to be a valid JSON. Fix a typo in the error message. --- mysql-test/r/func_json.result | 12 +- mysql-test/suite/json/r/json_no_table.result | 766 ++++++++++--------- mysql-test/suite/json/t/json_no_table.test | 390 +++++----- mysql-test/t/func_json.test | 6 +- sql/item.h | 2 + sql/item_create.cc | 3 - sql/item_func.h | 2 +- sql/item_jsonfunc.cc | 70 +- sql/item_jsonfunc.h | 15 +- sql/share/errmsg-utf8.txt | 2 +- sql/sql_yacc.yy | 1 - 11 files changed, 636 insertions(+), 633 deletions(-) diff --git a/mysql-test/r/func_json.result b/mysql-test/r/func_json.result index 4c1c82ed331..91640974b22 100644 --- a/mysql-test/r/func_json.result +++ b/mysql-test/r/func_json.result @@ -402,14 +402,14 @@ json_object("a", json_object("b", "abcd")) select json_object("a", '{"b": "abcd"}'); json_object("a", '{"b": "abcd"}') {"a": "{\"b\": \"abcd\"}"} -select json_object("a", cast('{"b": "abcd"}' as json)); -json_object("a", cast('{"b": "abcd"}' as json)) +select json_object("a", json_compact('{"b": "abcd"}')); +json_object("a", json_compact('{"b": "abcd"}')) {"a": {"b": "abcd"}} -select cast(NULL AS JSON); -cast(NULL AS JSON) +select json_compact(NULL); +json_compact(NULL) NULL -select json_depth(cast(NULL as JSON)); -json_depth(cast(NULL as JSON)) +select json_depth(json_compact(NULL)); +json_depth(json_compact(NULL)) NULL select json_depth('[[], {}]'); json_depth('[[], {}]') diff --git a/mysql-test/suite/json/r/json_no_table.result b/mysql-test/suite/json/r/json_no_table.result index 7265c4a9f30..cf4cd5b8af8 100644 --- a/mysql-test/suite/json/r/json_no_table.result +++ b/mysql-test/suite/json/r/json_no_table.result @@ -1,34 +1,36 @@ -SELECT CAST(0.0e0 AS JSON) = -0.0e0; -CAST(0.0e0 AS JSON) = -0.0e0 +SELECT JSON_COMPACT(0.0e0) = -0.0e0; +JSON_COMPACT(0.0e0) = -0.0e0 1 -SELECT CAST(CAST(0 AS DECIMAL) AS JSON) = CAST(-0.0e0 AS DECIMAL); -CAST(CAST(0 AS DECIMAL) AS JSON) = CAST(-0.0e0 AS DECIMAL) +SELECT JSON_COMPACT(CAST(0 AS DECIMAL)) = CAST(-0.0e0 AS DECIMAL); +JSON_COMPACT(CAST(0 AS DECIMAL)) = CAST(-0.0e0 AS DECIMAL) 1 -SELECT CAST(0.0e0 AS JSON) = CAST(-0.0e0 AS DECIMAL); -CAST(0.0e0 AS JSON) = CAST(-0.0e0 AS DECIMAL) +SELECT JSON_COMPACT(0.0e0) = CAST(-0.0e0 AS DECIMAL); +JSON_COMPACT(0.0e0) = CAST(-0.0e0 AS DECIMAL) 1 -SELECT CAST(CAST(0 AS DECIMAL) AS JSON) = -0.0e0; -CAST(CAST(0 AS DECIMAL) AS JSON) = -0.0e0 +SELECT JSON_COMPACT(CAST(0 AS DECIMAL)) = -0.0e0; +JSON_COMPACT(CAST(0 AS DECIMAL)) = -0.0e0 1 -SELECT CAST(CAST(0 AS SIGNED) AS JSON) = -0.0e0; -CAST(CAST(0 AS SIGNED) AS JSON) = -0.0e0 +SELECT JSON_COMPACT(CAST(0 AS SIGNED)) = -0.0e0; +JSON_COMPACT(CAST(0 AS SIGNED)) = -0.0e0 1 -SELECT CAST(CAST(0 AS SIGNED) AS JSON) = CAST(-0.0e0 AS DECIMAL); -CAST(CAST(0 AS SIGNED) AS JSON) = CAST(-0.0e0 AS DECIMAL) +SELECT JSON_COMPACT(CAST(0 AS SIGNED)) = CAST(-0.0e0 AS DECIMAL); +JSON_COMPACT(CAST(0 AS SIGNED)) = CAST(-0.0e0 AS DECIMAL) 1 -SELECT CAST(CAST(0 AS UNSIGNED) AS JSON) = -0.0e0; -CAST(CAST(0 AS UNSIGNED) AS JSON) = -0.0e0 +SELECT JSON_COMPACT(CAST(0 AS UNSIGNED)) = -0.0e0; +JSON_COMPACT(CAST(0 AS UNSIGNED)) = -0.0e0 1 -SELECT CAST(CAST(0 AS UNSIGNED) AS JSON) = CAST(-0.0e0 AS DECIMAL); -CAST(CAST(0 AS UNSIGNED) AS JSON) = CAST(-0.0e0 AS DECIMAL) +SELECT JSON_COMPACT(CAST(0 AS UNSIGNED)) = CAST(-0.0e0 AS DECIMAL); +JSON_COMPACT(CAST(0 AS UNSIGNED)) = CAST(-0.0e0 AS DECIMAL) 1 -select cast('"abc"' as json); -cast('"abc"' as json) +select json_compact('"abc"'); +json_compact('"abc"') "abc" error ER_INVALID_JSON_TEXT_IN_PARAM -select cast('abc' as json); -cast('abc' as json) -abc +select json_compact('abc'); +json_compact('abc') +NULL +Warnings: +Warning 4038 Syntax error in JSON text in argument 1 to function 'json_compact' at position 1 # String literal - valid JSON select JSON_VALID('123'); @@ -75,13 +77,13 @@ JSON_VALID('123') set names 'utf8'; # Json expression -select JSON_VALID(cast('[123]' as JSON )); -JSON_VALID(cast('[123]' as JSON )) +select JSON_VALID(json_compact('[123]')); +JSON_VALID(json_compact('[123]')) 1 # Json expression NULL -select JSON_VALID(cast(NULL as JSON )); -JSON_VALID(cast(NULL as JSON )) +select JSON_VALID(json_compact(NULL)); +JSON_VALID(json_compact(NULL)) NULL # Bare NULL @@ -111,8 +113,8 @@ select JSON_VALID( CAST(CAST('2015-01-15' AS DATE) as CHAR CHARACTER SET 'utf8') JSON_VALID( CAST(CAST('2015-01-15' AS DATE) as CHAR CHARACTER SET 'utf8') ) 0 # OK, though: -select JSON_VALID( CAST(CURDATE() as JSON) ); -JSON_VALID( CAST(CURDATE() as JSON) ) +select JSON_VALID( json_compact(CURDATE()) ); +JSON_VALID( json_compact(CURDATE()) ) 0 # Function result - NULL @@ -485,20 +487,20 @@ NULL select json_depth(null); json_depth(null) NULL -select json_depth(cast(null as json)); -json_depth(cast(null as json)) +select json_depth(json_compact(null)); +json_depth(json_compact(null)) NULL -select json_depth(cast('[]' as json)), -json_depth(cast('{}' as json)), -json_depth(cast('null' as json)), +select json_depth(json_compact('[]')), +json_depth(json_compact('{}')), +json_depth(json_compact('null')), json_depth(json_quote('foo')); -json_depth(cast('[]' as json)) json_depth(cast('{}' as json)) json_depth(cast('null' as json)) json_depth(json_quote('foo')) +json_depth(json_compact('[]')) json_depth(json_compact('{}')) json_depth(json_compact('null')) json_depth(json_quote('foo')) 1 1 1 1 -select json_depth(cast('[[2], 3, [[[4]]]]' as json)); -json_depth(cast('[[2], 3, [[[4]]]]' as json)) +select json_depth(json_compact('[[2], 3, [[[4]]]]')); +json_depth(json_compact('[[2], 3, [[[4]]]]')) 5 -select json_depth(cast('{"a": {"a1": [3]}, "b": {"b1": {"c": {"d": [5]}}}}' as json)); -json_depth(cast('{"a": {"a1": [3]}, "b": {"b1": {"c": {"d": [5]}}}}' as json)) +select json_depth(json_compact('{"a": {"a1": [3]}, "b": {"b1": {"c": {"d": [5]}}}}')); +json_depth(json_compact('{"a": {"a1": [3]}, "b": {"b1": {"c": {"d": [5]}}}}')) 6 SELECT JSON_DEPTH ( @@ -521,8 +523,8 @@ JSON_DEPTH SELECT JSON_DEPTH( '"abc"' ); JSON_DEPTH( '"abc"' ) 1 -SELECT JSON_DEPTH( CAST( '"abc"' AS JSON ) ); -JSON_DEPTH( CAST( '"abc"' AS JSON ) ) +SELECT JSON_DEPTH( json_compact( '"abc"') ); +JSON_DEPTH( json_compact( '"abc"') ) 1 error ER_INVALID_TYPE_FOR_JSON SELECT JSON_DEPTH( 1 ); @@ -534,8 +536,8 @@ JSON_DEPTH( 'abc' ) NULL Warnings: Warning 4038 Syntax error in JSON text in argument 1 to function 'json_depth' at position 1 -SELECT JSON_DEPTH( CAST( 1 AS JSON ) ); -JSON_DEPTH( CAST( 1 AS JSON ) ) +SELECT JSON_DEPTH( json_compact( 1) ); +JSON_DEPTH( json_compact( 1) ) 1 SELECT JSON_DEPTH ( @@ -1002,168 +1004,184 @@ select json_type(CAST(CAST('2015-01-15' AS DATE) as CHAR CHARACTER SET 'utf8')); json_type(CAST(CAST('2015-01-15' AS DATE) as CHAR CHARACTER SET 'utf8')) INTEGER # ---------------------------------------------------------------------- -# Test of CAST(literal AS JSON) +# Test of json_compact(literal) # ---------------------------------------------------------------------- -select json_type(cast(cast('2014-11-25 18:00' as datetime) as json)); -json_type(cast(cast('2014-11-25 18:00' as datetime) as json)) +select json_type(json_compact(cast('2014-11-25 18:00' as datetime))); +json_type(json_compact(cast('2014-11-25 18:00' as datetime))) INTEGER -select json_type(cast(cast('2014-11-25' as date) as json)); -json_type(cast(cast('2014-11-25' as date) as json)) +select json_type(json_compact(cast('2014-11-25' as date))); +json_type(json_compact(cast('2014-11-25' as date))) INTEGER -select json_type(cast(cast('18:00:59' as time) as json)); -json_type(cast(cast('18:00:59' as time) as json)) +select json_type(json_compact(cast('18:00:59' as time))); +json_type(json_compact(cast('18:00:59' as time))) INTEGER -select json_type(cast(127 as json)); -json_type(cast(127 as json)) +select json_type(json_compact(127)); +json_type(json_compact(127)) INTEGER -select json_type(cast(255 as json)); -json_type(cast(255 as json)) +select json_type(json_compact(255)); +json_type(json_compact(255)) INTEGER -select json_type(cast(32767 as json)); -json_type(cast(32767 as json)) +select json_type(json_compact(32767)); +json_type(json_compact(32767)) INTEGER -select json_type(cast(65535 as json)); -json_type(cast(65535 as json)) +select json_type(json_compact(65535)); +json_type(json_compact(65535)) INTEGER -select json_type(cast(8388607 as json)); -json_type(cast(8388607 as json)) +select json_type(json_compact(8388607)); +json_type(json_compact(8388607)) INTEGER -select json_type(cast(16777215 as json)); -json_type(cast(16777215 as json)) +select json_type(json_compact(16777215)); +json_type(json_compact(16777215)) INTEGER -select json_type(cast(2147483647 as json)); -json_type(cast(2147483647 as json)) +select json_type(json_compact(2147483647)); +json_type(json_compact(2147483647)) INTEGER -select json_type(cast(4294967295 as json)); -json_type(cast(4294967295 as json)) +select json_type(json_compact(4294967295)); +json_type(json_compact(4294967295)) INTEGER -select json_type(cast(9223372036854775807 as json)); -json_type(cast(9223372036854775807 as json)) +select json_type(json_compact(9223372036854775807)); +json_type(json_compact(9223372036854775807)) INTEGER -select json_type(cast(18446744073709551615 as json)); -json_type(cast(18446744073709551615 as json)) +select json_type(json_compact(18446744073709551615)); +json_type(json_compact(18446744073709551615)) INTEGER -select json_type(cast(true as json)); -json_type(cast(true as json)) +select json_type(json_compact(true)); +json_type(json_compact(true)) INTEGER -select json_type(cast(b'10101' as json)); -json_type(cast(b'10101' as json)) +select json_type(json_compact(b'10101')); +json_type(json_compact(b'10101')) NULL Warnings: -Warning 4036 Character disallowd in JSON in argument 1 to function 'json_type' at position 1 -select json_type(cast(cast(3.14 as decimal(5,2)) as json)); -json_type(cast(cast(3.14 as decimal(5,2)) as json)) +Warning 4036 Character disallowed in JSON in argument 1 to function 'json_type' at position 1 +select json_type(json_compact(cast(3.14 as decimal(5,2)))); +json_type(json_compact(cast(3.14 as decimal(5,2)))) DOUBLE -select json_type(cast(3.14 as json)); -json_type(cast(3.14 as json)) +select json_type(json_compact(3.14)); +json_type(json_compact(3.14)) DOUBLE -select json_type(cast(3.14E30 as json)); -json_type(cast(3.14E30 as json)) +select json_type(json_compact(3.14E30)); +json_type(json_compact(3.14E30)) NULL Warnings: Warning 4038 Syntax error in JSON text in argument 1 to function 'json_type' at position 7 -select json_type(cast(cast('10101abcde' as binary) as json)); -json_type(cast(cast('10101abcde' as binary) as json)) +select json_type(json_compact(cast('10101abcde' as binary))); +json_type(json_compact(cast('10101abcde' as binary))) INTEGER -select json_type(cast(ST_GeomFromText('POINT(1 1)') as json)); -json_type(cast(ST_GeomFromText('POINT(1 1)') as json)) +select json_type(json_compact(ST_GeomFromText('POINT(1 1)'))); +json_type(json_compact(ST_GeomFromText('POINT(1 1)'))) NULL Warnings: -Warning 4036 Character disallowd in JSON in argument 1 to function 'json_type' at position 1 -select json_type(cast(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)') as json)); -json_type(cast(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)') as json)) +Warning 4036 Character disallowed in JSON in argument 1 to function 'json_type' at position 1 +select json_type(json_compact(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)'))); +json_type(json_compact(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)'))) NULL Warnings: -Warning 4036 Character disallowd in JSON in argument 1 to function 'json_type' at position 1 -select json_type(cast(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), - (5 5,7 5,7 7,5 7, 5 5))') as json)); -json_type(cast(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), - (5 5,7 5,7 7,5 7, 5 5))') as json)) +Warning 4036 Character disallowed in JSON in argument 1 to function 'json_type' at position 1 +select json_type(json_compact(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), + (5 5,7 5,7 7,5 7, 5 5))'))); +json_type(json_compact(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), + (5 5,7 5,7 7,5 7, 5 5))'))) NULL Warnings: -Warning 4036 Character disallowd in JSON in argument 1 to function 'json_type' at position 1 -select json_type(cast(null as json)); -json_type(cast(null as json)) +Warning 4036 Character disallowed in JSON in argument 1 to function 'json_type' at position 1 +select json_type(json_compact(null)); +json_type(json_compact(null)) NULL -select json_type(cast(null as json)) is null; -json_type(cast(null as json)) is null +select json_type(json_compact(null)) is null; +json_type(json_compact(null)) is null 1 select json_type(null) is null; json_type(null) is null 1 -select cast(cast('2014-11-25 18:00' as datetime) as json); -cast(cast('2014-11-25 18:00' as datetime) as json) -2014-11-25 18:00:00 -select cast(cast('2014-11-25' as date) as json); -cast(cast('2014-11-25' as date) as json) -2014-11-25 -select cast(cast('18:00:59' as time) as json); -cast(cast('18:00:59' as time) as json) -18:00:59 -select cast(127 as json); -cast(127 as json) -127 -select cast(255 as json); -cast(255 as json) -255 -select cast(32767 as json); -cast(32767 as json) -32767 -select cast(65535 as json); -cast(65535 as json) -65535 -select cast(8388607 as json); -cast(8388607 as json) -8388607 -select cast(16777215 as json); -cast(16777215 as json) -16777215 -select cast(2147483647 as json); -cast(2147483647 as json) -2147483647 -select cast(4294967295 as json); -cast(4294967295 as json) -4294967295 -select cast(9223372036854775807 as json); -cast(9223372036854775807 as json) -9223372036854775807 -select cast(18446744073709551615 as json); -cast(18446744073709551615 as json) -18446744073709551615 -select cast(true as json); -cast(true as json) -1 -select cast(b'10101' as json); -cast(b'10101' as json) - -select cast(cast(3.14 as decimal(5,2)) as json); -cast(cast(3.14 as decimal(5,2)) as json) -3.14 -select cast(3.14 as json); -cast(3.14 as json) -3.14 -select cast(3.14e0 as json); -cast(3.14e0 as json) -3.14 -select cast(cast('10101abcde' as binary) as json); -cast(cast('10101abcde' as binary) as json) -10101abcde -select cast(ST_GeomFromText('POINT(1 1)') as json); -cast(ST_GeomFromText('POINT(1 1)') as json) -ð?ð? -select cast(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)') as json); -cast(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)') as json) -ð?ð?@@ -select cast(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), - (5 5,7 5,7 7,5 7, 5 5))') as json); -cast(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), - (5 5,7 5,7 7,5 7, 5 5))') as json) -$@$@$@$@@@@@@@@@@@ -select cast(null as json); -cast(null as json) +select json_compact(cast('2014-11-25 18:00' as datetime)); +json_compact(cast('2014-11-25 18:00' as datetime)) NULL -select cast(null as json) is null; -cast(null as json) is null +Warnings: +Warning 4038 Syntax error in JSON text in argument 1 to function 'json_compact' at position 5 +select json_compact(cast('2014-11-25' as date)); +json_compact(cast('2014-11-25' as date)) +NULL +Warnings: +Warning 4038 Syntax error in JSON text in argument 1 to function 'json_compact' at position 5 +select json_compact(cast('18:00:59' as time)); +json_compact(cast('18:00:59' as time)) +NULL +Warnings: +Warning 4038 Syntax error in JSON text in argument 1 to function 'json_compact' at position 3 +select json_compact(127); +json_compact(127) +127 +select json_compact(255); +json_compact(255) +255 +select json_compact(32767); +json_compact(32767) +32767 +select json_compact(65535); +json_compact(65535) +65535 +select json_compact(8388607); +json_compact(8388607) +8388607 +select json_compact(16777215); +json_compact(16777215) +16777215 +select json_compact(2147483647); +json_compact(2147483647) +2147483647 +select json_compact(4294967295); +json_compact(4294967295) +4294967295 +select json_compact(9223372036854775807); +json_compact(9223372036854775807) +9223372036854775807 +select json_compact(18446744073709551615); +json_compact(18446744073709551615) +18446744073709551615 +select json_compact(true); +json_compact(true) +1 +select json_compact(b'10101'); +json_compact(b'10101') +NULL +Warnings: +Warning 4036 Character disallowed in JSON in argument 1 to function 'json_compact' at position 1 +select json_compact(cast(3.14 as decimal(5,2))); +json_compact(cast(3.14 as decimal(5,2))) +3.14 +select json_compact(3.14); +json_compact(3.14) +3.14 +select json_compact(3.14e0); +json_compact(3.14e0) +3.14 +select json_compact(cast('10101abcde' as binary)); +json_compact(cast('10101abcde' as binary)) +NULL +Warnings: +Warning 4038 Syntax error in JSON text in argument 1 to function 'json_compact' at position 6 +select json_compact(ST_GeomFromText('POINT(1 1)')); +json_compact(ST_GeomFromText('POINT(1 1)')) +NULL +Warnings: +Warning 4036 Character disallowed in JSON in argument 1 to function 'json_compact' at position 1 +select json_compact(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)')); +json_compact(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)')) +NULL +Warnings: +Warning 4036 Character disallowed in JSON in argument 1 to function 'json_compact' at position 1 +select json_compact(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), + (5 5,7 5,7 7,5 7, 5 5))')); +json_compact(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), + (5 5,7 5,7 7,5 7, 5 5))')) +NULL +Warnings: +Warning 4036 Character disallowed in JSON in argument 1 to function 'json_compact' at position 1 +select json_compact(null); +json_compact(null) +NULL +select json_compact(null) is null; +json_compact(null) is null 1 # ---------------------------------------------------------------------- # Test of JSON_KEYS function. @@ -1265,8 +1283,8 @@ ERROR 42000: Incorrect parameter count in the call to native function 'JSON_KEYS select cast(json_keys('{"a": 1}') as char); cast(json_keys('{"a": 1}') as char) ["a"] -select cast(cast(1 as json) as char); -cast(cast(1 as json) as char) +select cast(json_compact(1) as char); +cast(json_compact(1) as char) 1 select cast(json_keys(NULL) as char); cast(json_keys(NULL) as char) @@ -1595,11 +1613,11 @@ jdoc # ---------------------------------------------------------------------- # Test of JSON_ARRAY_APPEND function. # ---------------------------------------------------------------------- -select json_array_append(NULL, '$.b', cast(1 as json)); -json_array_append(NULL, '$.b', cast(1 as json)) +select json_array_append(NULL, '$.b', json_compact(1)); +json_array_append(NULL, '$.b', json_compact(1)) NULL -select json_array_append('[1,2,3]', NULL, cast(1 as json)); -json_array_append('[1,2,3]', NULL, cast(1 as json)) +select json_array_append('[1,2,3]', NULL, json_compact(1)); +json_array_append('[1,2,3]', NULL, json_compact(1)) NULL select json_array_append('[1,2,3]', '$', NULL); json_array_append('[1,2,3]', '$', NULL) @@ -1610,35 +1628,35 @@ select json_array_append(NULL, NULL); ERROR 42000: Incorrect parameter count in the call to native function 'json_array_append' select json_array_append(NULL, NULL, NULL, NULL); ERROR 42000: Incorrect parameter count in the call to native function 'json_array_append' -SELECT JSON_ARRAY_APPEND(cast('1' as json), '$', 3); -JSON_ARRAY_APPEND(cast('1' as json), '$', 3) +SELECT JSON_ARRAY_APPEND(json_compact('1'), '$', 3); +JSON_ARRAY_APPEND(json_compact('1'), '$', 3) [1, 3] -SELECT JSON_ARRAY_APPEND(cast('{"a": 3}' as json), '$', 3); -JSON_ARRAY_APPEND(cast('{"a": 3}' as json), '$', 3) +SELECT JSON_ARRAY_APPEND(json_compact('{"a": 3}'), '$', 3); +JSON_ARRAY_APPEND(json_compact('{"a": 3}'), '$', 3) [{"a": 3}, 3] error ER_INVALID_JSON_PATH_WILDCARD -select json_array_append(cast('{"a": {"b": [3]}}' as json), '$**[0]', 6); -json_array_append(cast('{"a": {"b": [3]}}' as json), '$**[0]', 6) +select json_array_append(json_compact('{"a": {"b": [3]}}'), '$**[0]', 6); +json_array_append(json_compact('{"a": {"b": [3]}}'), '$**[0]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_array_append' # Auto-wrapping, since because the paths identify scalars. # should return {"a": "foo", "b": ["bar", 4], "c": ["wibble", "grape"]} SELECT JSON_ARRAY_APPEND('{"a": "foo", "b": "bar", "c": "wibble"}', -'$.b', cast(4 as json), -'$.c', cast('"grape"' as json)); +'$.b', json_compact(4), +'$.c', json_compact('"grape"')); JSON_ARRAY_APPEND('{"a": "foo", "b": "bar", "c": "wibble"}', -'$.b', cast(4 as json), -'$.c', cast('"grape"' as json)) +'$.b', json_compact(4), +'$.c', json_compact('"grape"')) {"a": "foo", "b": ["bar", 4], "c": ["wibble", "grape"]} # should return {"a": "foo", "b": [1, 2, 3, 4], # "c": ["apple", "pear", "grape"]} SELECT JSON_ARRAY_APPEND('{"a" : "foo","b": [1, 2, 3], "c": ["apple", "pear"]}', -'$.b', cast(4 as json), -'$.c', cast('"grape"' as json)); +'$.b', json_compact(4), +'$.c', json_compact('"grape"')); JSON_ARRAY_APPEND('{"a" : "foo","b": [1, 2, 3], "c": ["apple", "pear"]}', -'$.b', cast(4 as json), -'$.c', cast('"grape"' as json)) +'$.b', json_compact(4), +'$.c', json_compact('"grape"')) {"a": "foo", "b": [1, 2, 3, 4], "c": ["apple", "pear", "grape"]} SELECT JSON_ARRAY_APPEND('{"a" : "foo","b": [1, 2, 3], "c": ["apple", "pear"]}', '$.b', 4, @@ -1700,11 +1718,11 @@ json_array_append('3', '$[0][0][0][0]', 100) # ---------------------------------------------------------------------- # Test of JSON_INSERT function. # ---------------------------------------------------------------------- -select json_insert(NULL, '$.b', cast(1 as json)); -json_insert(NULL, '$.b', cast(1 as json)) +select json_insert(NULL, '$.b', json_compact(1)); +json_insert(NULL, '$.b', json_compact(1)) NULL -select json_insert('[1,2,3]', NULL, cast(1 as json)); -json_insert('[1,2,3]', NULL, cast(1 as json)) +select json_insert('[1,2,3]', NULL, json_compact(1)); +json_insert('[1,2,3]', NULL, json_compact(1)) NULL select json_insert('[1,2,3]', '$[3]', NULL); json_insert('[1,2,3]', '$[3]', NULL) @@ -1755,79 +1773,79 @@ select json_insert('{"a": 3}', '$.a[1]', 4, '$.a[2]', '5'); json_insert('{"a": 3}', '$.a[1]', 4, '$.a[2]', '5') {"a": [3, 4, "5"]} error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": [1], "b": 2}' as json), '$.*[1]', 6); -json_insert(cast('{"a": [1], "b": 2}' as json), '$.*[1]', 6) +select json_insert(json_compact('{"a": [1], "b": 2}'), '$.*[1]', 6); +json_insert(json_compact('{"a": [1], "b": 2}'), '$.*[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": 1, "b": 2}' as json), '$.*[1]', 6); -json_insert(cast('{"a": 1, "b": 2}' as json), '$.*[1]', 6) +select json_insert(json_compact('{"a": 1, "b": 2}'), '$.*[1]', 6); +json_insert(json_compact('{"a": 1, "b": 2}'), '$.*[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": {"b": 3}}' as json), '$.a.*[1]', 6); -json_insert(cast('{"a": {"b": 3}}' as json), '$.a.*[1]', 6) +select json_insert(json_compact('{"a": {"b": 3}}'), '$.a.*[1]', 6); +json_insert(json_compact('{"a": {"b": 3}}'), '$.a.*[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": {"b": [3]}}' as json), '$.a.*[1]', 6); -json_insert(cast('{"a": {"b": [3]}}' as json), '$.a.*[1]', 6) +select json_insert(json_compact('{"a": {"b": [3]}}'), '$.a.*[1]', 6); +json_insert(json_compact('{"a": {"b": [3]}}'), '$.a.*[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": {"b": 3}}' as json), '$**[1]', 6); -json_insert(cast('{"a": {"b": 3}}' as json), '$**[1]', 6) +select json_insert(json_compact('{"a": {"b": 3}}'), '$**[1]', 6); +json_insert(json_compact('{"a": {"b": 3}}'), '$**[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": {"b": [3]}}' as json), '$**[1]', 6); -json_insert(cast('{"a": {"b": [3]}}' as json), '$**[1]', 6) +select json_insert(json_compact('{"a": {"b": [3]}}'), '$**[1]', 6); +json_insert(json_compact('{"a": {"b": [3]}}'), '$**[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[1]' as json), '$[*][1]', 6); -json_insert(cast('[1]' as json), '$[*][1]', 6) +select json_insert(json_compact('[1]'), '$[*][1]', 6); +json_insert(json_compact('[1]'), '$[*][1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[1]' as json), '$**[1]', 6); -json_insert(cast('[1]' as json), '$**[1]', 6) +select json_insert(json_compact('[1]'), '$**[1]', 6); +json_insert(json_compact('[1]'), '$**[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[1, [2], 3]' as json), '$[*][1]', 6); -json_insert(cast('[1, [2], 3]' as json), '$[*][1]', 6) +select json_insert(json_compact('[1, [2], 3]'), '$[*][1]', 6); +json_insert(json_compact('[1, [2], 3]'), '$[*][1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[1, [2], 3]' as json), '$**[1]', 6); -json_insert(cast('[1, [2], 3]' as json), '$**[1]', 6) +select json_insert(json_compact('[1, [2], 3]'), '$**[1]', 6); +json_insert(json_compact('[1, [2], 3]'), '$**[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[[1]]' as json), '$[*][1]', 6); -json_insert(cast('[[1]]' as json), '$[*][1]', 6) +select json_insert(json_compact('[[1]]'), '$[*][1]', 6); +json_insert(json_compact('[[1]]'), '$[*][1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[[1]]' as json), '$**[1]', 6); -json_insert(cast('[[1]]' as json), '$**[1]', 6) +select json_insert(json_compact('[[1]]'), '$**[1]', 6); +json_insert(json_compact('[[1]]'), '$**[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_insert' -select json_insert(cast('{"a": 3}' as json), '$[1]', 6); -json_insert(cast('{"a": 3}' as json), '$[1]', 6) +select json_insert(json_compact('{"a": 3}'), '$[1]', 6); +json_insert(json_compact('{"a": 3}'), '$[1]', 6) [{"a": 3}, 6] SELECT JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', true); JSON_INSERT('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', true) @@ -2054,9 +2072,9 @@ select json_array_insert( '[ 1, 2, 3 ]', '$[1]', true, '$[1]', false ); json_array_insert( '[ 1, 2, 3 ]', '$[1]', true, '$[1]', false ) [1, false, true, 2, 3] select json_array_insert( '[ 1, 2, 3 ]', '$[1]', -cast( '[ "a", "b", "c", "d" ]' as json ), '$[1][2]', false ); +json_compact( '[ "a", "b", "c", "d" ]'), '$[1][2]', false ); json_array_insert( '[ 1, 2, 3 ]', '$[1]', -cast( '[ "a", "b", "c", "d" ]' as json ), '$[1][2]', false ) +json_compact( '[ "a", "b", "c", "d" ]'), '$[1][2]', false ) [1, ["a", "b", false, "c", "d"], 2, 3] error ER_INVALID_JSON_TEXT_IN_PARAM SELECT JSON_ARRAY_INSERT(JSON_EXTRACT('[1', '$'), '$[0]', 1); @@ -2073,11 +2091,11 @@ Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_extract # ---------------------------------------------------------------------- # Test of JSON_SET function. # ---------------------------------------------------------------------- -select json_set(NULL, '$.b', cast(1 as json)); -json_set(NULL, '$.b', cast(1 as json)) +select json_set(NULL, '$.b', json_compact(1)); +json_set(NULL, '$.b', json_compact(1)) NULL -select json_set('[1,2,3]', NULL, cast(1 as json)); -json_set('[1,2,3]', NULL, cast(1 as json)) +select json_set('[1,2,3]', NULL, json_compact(1)); +json_set('[1,2,3]', NULL, json_compact(1)) NULL select json_set('[1,2,3]', '$[3]', NULL); json_set('[1,2,3]', '$[3]', NULL) @@ -2135,8 +2153,8 @@ select json_set('{"a": 3}', '$.a[1]', 4, '$.a[2]', '5'); json_set('{"a": 3}', '$.a[1]', 4, '$.a[2]', '5') {"a": [3, 4, "5"]} error ER_INVALID_JSON_PATH_WILDCARD -select json_set(cast('{"a": {"b": [3]}}' as json), '$**[1]', 6); -json_set(cast('{"a": {"b": [3]}}' as json), '$**[1]', 6) +select json_set(json_compact('{"a": {"b": [3]}}'), '$**[1]', 6); +json_set(json_compact('{"a": {"b": [3]}}'), '$**[1]', 6) NULL Warnings: Warning 4044 Wildcards in JSON path not allowed in argument 2 to function 'json_set' @@ -2154,25 +2172,25 @@ JSON_OBJECT( 'b', false ), '$.a.c', true) {"a": {"b": false, "c": true}} select json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', -cast('{}' as json)); +json_compact('{}')); json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', -cast('{}' as json)) +json_compact('{}')) {"a": {}, "b": [1, 2, 3]} select json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', -cast('[true, false]' as json)); +json_compact('[true, false]')); json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', -cast('[true, false]' as json)) +json_compact('[true, false]')) {"a": "foo", "b": [1, 2, 3], "c": [true, false]} select json_set('1', '$[3]', 2); json_set('1', '$[3]', 2) [1, 2] select json_set('{ "a" : "foo"}', '$.a', -cast('{"b": false}' as json), '$.a.c', true); +json_compact('{"b": false}'), '$.a.c', true); json_set('{ "a" : "foo"}', '$.a', -cast('{"b": false}' as json), '$.a.c', true) +json_compact('{"b": false}'), '$.a.c', true) {"a": {"b": false, "c": true}} SELECT JSON_SET ( @@ -2204,13 +2222,13 @@ SELECT JSON_SET ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', -JSON_ARRAY( CAST( 'true' AS JSON ), CAST( 'false' AS JSON ) ) +JSON_ARRAY( json_compact( 'true'), json_compact( 'false') ) ); JSON_SET ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', -JSON_ARRAY( CAST( 'true' AS JSON ), CAST( 'false' AS JSON ) ) +JSON_ARRAY( json_compact( 'true'), json_compact( 'false') ) ) {"a": "foo", "b": [1, 2, 3], "c": [true, false]} SELECT JSON_SET @@ -2242,11 +2260,11 @@ JSON_SET # ---------------------------------------------------------------------- # Test of JSON_REPLACE function. # ---------------------------------------------------------------------- -select json_replace(NULL, '$.b', cast(1 as json)); -json_replace(NULL, '$.b', cast(1 as json)) +select json_replace(NULL, '$.b', json_compact(1)); +json_replace(NULL, '$.b', json_compact(1)) NULL -select json_replace('[1,2,3]', NULL, cast(1 as json)); -json_replace('[1,2,3]', NULL, cast(1 as json)) +select json_replace('[1,2,3]', NULL, json_compact(1)); +json_replace('[1,2,3]', NULL, json_compact(1)) NULL select json_replace('[1,2,3]', '$[2]', NULL); json_replace('[1,2,3]', '$[2]', NULL) @@ -2320,11 +2338,11 @@ true) # ---------------------------------------------------------------------- # Test of JSON_ARRAY function. # ---------------------------------------------------------------------- -select json_array(NULL, '$.b', cast(1 as json)); -json_array(NULL, '$.b', cast(1 as json)) +select json_array(NULL, '$.b', json_compact(1)); +json_array(NULL, '$.b', json_compact(1)) [null, "$.b", 1] -select json_array('[1,2,3]', NULL, cast(1 as json)); -json_array('[1,2,3]', NULL, cast(1 as json)) +select json_array('[1,2,3]', NULL, json_compact(1)); +json_array('[1,2,3]', NULL, json_compact(1)) ["[1,2,3]", null, 1] select json_array('[1,2,3]', '$[3]', NULL); json_array('[1,2,3]', '$[3]', NULL) @@ -2338,8 +2356,8 @@ json_array(3.14) select json_array('[1,2,3]'); json_array('[1,2,3]') ["[1,2,3]"] -select json_array(cast('[1,2,3]' as json)); -json_array(cast('[1,2,3]' as json)) +select json_array(json_compact('[1,2,3]')); +json_array(json_compact('[1,2,3]')) [[1,2,3]] select json_array(1,2,3); json_array(1,2,3) @@ -2373,11 +2391,11 @@ json_object( 'a', 1 ) select json_object( 'a', 1, 'b', 'foo' ); json_object( 'a', 1, 'b', 'foo' ) {"a": 1, "b": "foo"} -select json_object( 'a', 1, 'b', 'foo', 'c', cast( '{ "d": "wibble" }' as json ) ); -json_object( 'a', 1, 'b', 'foo', 'c', cast( '{ "d": "wibble" }' as json ) ) +select json_object( 'a', 1, 'b', 'foo', 'c', json_compact( '{ "d": "wibble" }') ); +json_object( 'a', 1, 'b', 'foo', 'c', json_compact( '{ "d": "wibble" }') ) {"a": 1, "b": "foo", "c": { "d": "wibble" }} -select json_object( 'a', true, 'b', false, 'c', cast( 'null' as json) ); -json_object( 'a', true, 'b', false, 'c', cast( 'null' as json) ) +select json_object( 'a', true, 'b', false, 'c', json_compact( 'null') ); +json_object( 'a', true, 'b', false, 'c', json_compact( 'null') ) {"a": true, "b": false, "c": null} select json_valid( json_object( '"a"', 1 ) ); json_valid( json_object( '"a"', 1 ) ) @@ -2717,43 +2735,43 @@ JSON_SEARCH ) $.one potato select json_type(case (null is null) when 1 then -cast('null' as json) else -cast('[1,2,3]' as json) end); +json_compact('null') else +json_compact('[1,2,3]') end); json_type(case (null is null) when 1 then -cast('null' as json) else -cast('[1,2,3]' as json) end) +json_compact('null') else +json_compact('[1,2,3]') end) NULL select json_type(case (null is not null) when 1 then -cast('null' as json) else -cast('[1,2,3]' as json) end); +json_compact('null') else +json_compact('[1,2,3]') end); json_type(case (null is not null) when 1 then -cast('null' as json) else -cast('[1,2,3]' as json) end) +json_compact('null') else +json_compact('[1,2,3]') end) ARRAY select json_type( if(null is null, -cast('null' as json), -cast('[1,2,3]' as json)) ); +json_compact('null'), +json_compact('[1,2,3]')) ); json_type( if(null is null, -cast('null' as json), -cast('[1,2,3]' as json)) ) +json_compact('null'), +json_compact('[1,2,3]')) ) NULL select json_type( if(null is not null, -cast('null' as json), -cast('[1,2,3]' as json))); +json_compact('null'), +json_compact('[1,2,3]'))); json_type( if(null is not null, -cast('null' as json), -cast('[1,2,3]' as json))) +json_compact('null'), +json_compact('[1,2,3]'))) ARRAY -select cast(json_extract(cast(concat('[', cast('["A",2]' as json), ']') as json), +select cast(json_extract(json_compact(concat('[', json_compact('["A",2]'), ']')), '$[0][1]') as char) = 2; -cast(json_extract(cast(concat('[', cast('["A",2]' as json), ']') as json), +cast(json_extract(json_compact(concat('[', json_compact('["A",2]'), ']')), '$[0][1]') as char) = 2 1 # ---------------------------------------------------------------------- # Test of aggregate function MAX, MIN. # ---------------------------------------------------------------------- -select max(cast('[1,2,3]' as json)); -max(cast('[1,2,3]' as json)) +select max(json_compact('[1,2,3]')); +max(json_compact('[1,2,3]')) [1,2,3] # ---------------------------------------------------------------------- # Test of JSON_QUOTE, JSON_UNQUOTE @@ -2838,26 +2856,26 @@ char_length(json_unquote('""')) select json_unquote('"" '); json_unquote('"" ') -select json_unquote(cast(json_quote('abc') as json)); -json_unquote(cast(json_quote('abc') as json)) +select json_unquote(json_compact(json_quote('abc'))); +json_unquote(json_compact(json_quote('abc'))) abc -select cast('{"abc": "foo"}' as json); -cast('{"abc": "foo"}' as json) +select json_compact('{"abc": "foo"}'); +json_compact('{"abc": "foo"}') +{"abc":"foo"} +select json_unquote(json_compact('{"abc": "foo"}')); +json_unquote(json_compact('{"abc": "foo"}')) {"abc": "foo"} -select json_unquote(cast('{"abc": "foo"}' as json)); -json_unquote(cast('{"abc": "foo"}' as json)) -{"abc": "foo"} -select json_extract(cast('{"abc": "foo"}' as json), '$.abc'); -json_extract(cast('{"abc": "foo"}' as json), '$.abc') +select json_extract(json_compact('{"abc": "foo"}'), '$.abc'); +json_extract(json_compact('{"abc": "foo"}'), '$.abc') "foo" -select json_unquote(json_extract(cast('{"abc": "foo"}' as json), '$.abc')); -json_unquote(json_extract(cast('{"abc": "foo"}' as json), '$.abc')) +select json_unquote(json_extract(json_compact('{"abc": "foo"}'), '$.abc')); +json_unquote(json_extract(json_compact('{"abc": "foo"}'), '$.abc')) foo select json_unquote('["a", "b", "c"]'); json_unquote('["a", "b", "c"]') ["a", "b", "c"] -select json_unquote(cast('["a", "b", "c"]' as json)); -json_unquote(cast('["a", "b", "c"]' as json)) +select json_unquote(json_compact('["a", "b", "c"]')); +json_unquote(json_compact('["a", "b", "c"]')) ["a", "b", "c"] select charset(json_unquote('"abc"')); charset(json_unquote('"abc"')) @@ -2868,8 +2886,8 @@ json_quote(convert(X'e68891' using utf8)) select json_quote(convert(X'e68891' using utf8mb4)); json_quote(convert(X'e68891' using utf8mb4)) "我" -select cast(json_quote(convert(X'e68891' using utf8)) as json); -cast(json_quote(convert(X'e68891' using utf8)) as json) +select json_compact(json_quote(convert(X'e68891' using utf8))); +json_compact(json_quote(convert(X'e68891' using utf8))) "我" select json_unquote(convert(X'e68891' using utf8)); json_unquote(convert(X'e68891' using utf8)) @@ -2882,17 +2900,21 @@ json_quote(json_quote(json_quote('abc')))))); json_unquote(json_unquote(json_unquote( # long round trip of it json_quote(json_quote(json_quote('abc')))))) abc -select cast(cast('2015-01-15 23:24:25' as datetime) as json); -cast(cast('2015-01-15 23:24:25' as datetime) as json) +select json_compact(cast('2015-01-15 23:24:25' as datetime)); +json_compact(cast('2015-01-15 23:24:25' as datetime)) +NULL +Warnings: +Warning 4038 Syntax error in JSON text in argument 1 to function 'json_compact' at position 5 +select json_unquote(json_compact(cast('2015-01-15 23:24:25' as datetime))); +json_unquote(json_compact(cast('2015-01-15 23:24:25' as datetime))) 2015-01-15 23:24:25 -select json_unquote(cast(cast('2015-01-15 23:24:25' as datetime) as json)); -json_unquote(cast(cast('2015-01-15 23:24:25' as datetime) as json)) -2015-01-15 23:24:25 -select cast(st_geomfromtext('point(1 1)') as json); -cast(st_geomfromtext('point(1 1)') as json) -ð?ð? -select json_unquote(cast(st_geomfromtext('point(1 1)') as json)); -json_unquote(cast(st_geomfromtext('point(1 1)') as json)) +select json_compact(st_geomfromtext('point(1 1)')); +json_compact(st_geomfromtext('point(1 1)')) +NULL +Warnings: +Warning 4036 Character disallowed in JSON in argument 1 to function 'json_compact' at position 1 +select json_unquote(json_compact(st_geomfromtext('point(1 1)'))); +json_unquote(json_compact(st_geomfromtext('point(1 1)'))) ð?ð? SELECT JSON_UNQUOTE( '"abc"' ); JSON_UNQUOTE( '"abc"' ) @@ -2907,9 +2929,9 @@ SELECT JSON_UNQUOTE( 123 ); JSON_UNQUOTE( 123 ) 123 SELECT JSON_UNQUOTE -( CAST( CAST( '"abc"' AS JSON ) AS CHAR ) ); +( CAST( json_compact( '"abc"') AS CHAR ) ); JSON_UNQUOTE -( CAST( CAST( '"abc"' AS JSON ) AS CHAR ) ) +( CAST( json_compact( '"abc"') AS CHAR ) ) abc SELECT JSON_UNQUOTE ( @@ -2943,8 +2965,8 @@ error ER_INCORRECT_TYPE SELECT JSON_QUOTE( 123 ); JSON_QUOTE( 123 ) NULL -SELECT CAST( JSON_QUOTE( '123' ) AS JSON ); -CAST( JSON_QUOTE( '123' ) AS JSON ) +SELECT json_compact( JSON_QUOTE( '123' )); +json_compact( JSON_QUOTE( '123' )) "123" # ---------------------------------------------------------------------- # Test of JSON_CONTAINS @@ -2953,78 +2975,78 @@ CAST( JSON_QUOTE( '123' ) AS JSON ) select json_contains(NULL, NULL); json_contains(NULL, NULL) NULL -select json_contains(cast('{"a": 1, "b": 2}' as json), NULL); -json_contains(cast('{"a": 1, "b": 2}' as json), NULL) +select json_contains(json_compact('{"a": 1, "b": 2}'), NULL); +json_contains(json_compact('{"a": 1, "b": 2}'), NULL) NULL -select json_contains(NULL, cast('null' as json)); -json_contains(NULL, cast('null' as json)) +select json_contains(NULL, json_compact('null')); +json_contains(NULL, json_compact('null')) NULL -select json_contains(cast('[1]' as json), cast('[1]' as json), NULL); -json_contains(cast('[1]' as json), cast('[1]' as json), NULL) +select json_contains(json_compact('[1]'), json_compact('[1]'), NULL); +json_contains(json_compact('[1]'), json_compact('[1]'), NULL) NULL # should give 0: -select json_contains(cast(3.14 as json), cast(3 as json)); -json_contains(cast(3.14 as json), cast(3 as json)) +select json_contains(json_compact(3.14), json_compact(3)); +json_contains(json_compact(3.14), json_compact(3)) 0 # should give 0: not at top level -select json_contains(cast('{"a": {"b": 7}}' as json), cast('{"b": 7}' as json)); -json_contains(cast('{"a": {"b": 7}}' as json), cast('{"b": 7}' as json)) +select json_contains(json_compact('{"a": {"b": 7}}'), json_compact('{"b": 7}')); +json_contains(json_compact('{"a": {"b": 7}}'), json_compact('{"b": 7}')) 0 # but path argument will fix it: -select json_contains(cast('{"a": {"b": 7}}' as json), cast('{"b": 7}' as json), '$.a'); -json_contains(cast('{"a": {"b": 7}}' as json), cast('{"b": 7}' as json), '$.a') +select json_contains(json_compact('{"a": {"b": 7}}'), json_compact('{"b": 7}'), '$.a'); +json_contains(json_compact('{"a": {"b": 7}}'), json_compact('{"b": 7}'), '$.a') 1 # but arrays "introspect" -select json_contains(cast('[1,[2.0, 3.0]]' as json), cast('[2.0]' as json)); -json_contains(cast('[1,[2.0, 3.0]]' as json), cast('[2.0]' as json)) +select json_contains(json_compact('[1,[2.0, 3.0]]'), json_compact('[2.0]')); +json_contains(json_compact('[1,[2.0, 3.0]]'), json_compact('[2.0]')) 1 -select json_contains(cast('[1, 2, [3, [4, 5]], 6, 7]' as json), cast('5' as json)); -json_contains(cast('[1, 2, [3, [4, 5]], 6, 7]' as json), cast('5' as json)) +select json_contains(json_compact('[1, 2, [3, [4, 5]], 6, 7]'), json_compact('5')); +json_contains(json_compact('[1, 2, [3, [4, 5]], 6, 7]'), json_compact('5')) 1 # should give 0: just a key -select json_contains(cast('{"a": 1, "b": 2}' as json), cast('"a"' as json)); -json_contains(cast('{"a": 1, "b": 2}' as json), cast('"a"' as json)) +select json_contains(json_compact('{"a": 1, "b": 2}'), json_compact('"a"')); +json_contains(json_compact('{"a": 1, "b": 2}'), json_compact('"a"')) 0 # should give 0: one candidate element doesn't match -select json_contains(cast('[1]' as json), cast('[1,2]' as json)); -json_contains(cast('[1]' as json), cast('[1,2]' as json)) +select json_contains(json_compact('[1]'), json_compact('[1,2]')); +json_contains(json_compact('[1]'), json_compact('[1,2]')) 0 # should all give 1 -select json_contains(cast('null' as json), cast('null' as json)); -json_contains(cast('null' as json), cast('null' as json)) +select json_contains(json_compact('null'), json_compact('null')); +json_contains(json_compact('null'), json_compact('null')) 1 # simple object subset -select json_contains(cast('{"a": 1, "b": 2}' as json), cast( '{"a": 1}' as json)); -json_contains(cast('{"a": 1, "b": 2}' as json), cast( '{"a": 1}' as json)) +select json_contains(json_compact('{"a": 1, "b": 2}'), json_compact( '{"a": 1}')); +json_contains(json_compact('{"a": 1, "b": 2}'), json_compact( '{"a": 1}')) 1 # simple vector subset -select json_contains(cast('[1, 2, 3]' as json), cast('[1, 3]' as json)); -json_contains(cast('[1, 2, 3]' as json), cast('[1, 3]' as json)) +select json_contains(json_compact('[1, 2, 3]'), json_compact('[1, 3]')); +json_contains(json_compact('[1, 2, 3]'), json_compact('[1, 3]')) 1 # auto-wrap, should give 1 -select json_contains(cast('[1, 2, 3]' as json), cast(3 as json)); -json_contains(cast('[1, 2, 3]' as json), cast(3 as json)) +select json_contains(json_compact('[1, 2, 3]'), json_compact(3)); +json_contains(json_compact('[1, 2, 3]'), json_compact(3)) 1 # ok even with nested cast off elements -select json_contains(cast('{"person": {"id": 1, "country": "norway"}}' as json), -cast('{"person": {"country": "norway"}}' as json)); -json_contains(cast('{"person": {"id": 1, "country": "norway"}}' as json), -cast('{"person": {"country": "norway"}}' as json)) +select json_contains(json_compact('{"person": {"id": 1, "country": "norway"}}'), +json_compact('{"person": {"country": "norway"}}')); +json_contains(json_compact('{"person": {"id": 1, "country": "norway"}}'), +json_compact('{"person": {"country": "norway"}}')) 1 # vector reordering and duplicates is ok -select json_contains(cast('[1,3,5]' as json), cast('[5,3,1,5]' as json)); -json_contains(cast('[1,3,5]' as json), cast('[5,3,1,5]' as json)) +select json_contains(json_compact('[1,3,5]'), json_compact('[5,3,1,5]')); +json_contains(json_compact('[1,3,5]'), json_compact('[5,3,1,5]')) 1 # ok even with more elts in candidate than in doc -select json_contains(cast('[{"b": 4, "a":7}]' as json), cast('[{"a":7},{"b":4}]' as json)); -json_contains(cast('[{"b": 4, "a":7}]' as json), cast('[{"a":7},{"b":4}]' as json)) +select json_contains(json_compact('[{"b": 4, "a":7}]'), json_compact('[{"a":7},{"b":4}]')); +json_contains(json_compact('[{"b": 4, "a":7}]'), json_compact('[{"a":7},{"b":4}]')) 1 -select json_contains(cast('[{"b": 4, "a":7}, 5]' as json), cast('[5, {"a":7, "b":4}]' as json)); -json_contains(cast('[{"b": 4, "a":7}, 5]' as json), cast('[5, {"a":7, "b":4}]' as json)) +select json_contains(json_compact('[{"b": 4, "a":7}, 5]'), json_compact('[5, {"a":7, "b":4}]')); +json_contains(json_compact('[{"b": 4, "a":7}, 5]'), json_compact('[5, {"a":7, "b":4}]')) 1 # ok even with mixed number types that compare equal -select json_contains(cast('[{"b": 4, "a":7}, 5.0]' as json), cast('[5, {"a":7.0E0, "b":4}]' as json)); -json_contains(cast('[{"b": 4, "a":7}, 5.0]' as json), cast('[5, {"a":7.0E0, "b":4}]' as json)) +select json_contains(json_compact('[{"b": 4, "a":7}, 5.0]'), json_compact('[5, {"a":7.0E0, "b":4}]')); +json_contains(json_compact('[{"b": 4, "a":7}, 5.0]'), json_compact('[5, {"a":7.0E0, "b":4}]')) 1 select json_contains( '{"customer": "cust3"}', '{"customer": "cust1"}' ); json_contains( '{"customer": "cust3"}', '{"customer": "cust1"}' ) @@ -3055,57 +3077,57 @@ JSON_CONTAINS('{"a":1}', '{"a":1,"b":2}') 0 SELECT JSON_CONTAINS ( -CAST('[1, 4, 6]' AS JSON), -CAST('[1, 6]' AS JSON) +json_compact('[1, 4, 6]'), +json_compact('[1, 6]') ); JSON_CONTAINS ( -CAST('[1, 4, 6]' AS JSON), -CAST('[1, 6]' AS JSON) +json_compact('[1, 4, 6]'), +json_compact('[1, 6]') ) 1 SELECT JSON_CONTAINS ( -CAST('{"person": {"id": 1, "country": "norway"}}' AS JSON), -CAST('{"person": {"country": "norway"}}' AS JSON) +json_compact('{"person": {"id": 1, "country": "norway"}}'), +json_compact('{"person": {"country": "norway"}}') ); JSON_CONTAINS ( -CAST('{"person": {"id": 1, "country": "norway"}}' AS JSON), -CAST('{"person": {"country": "norway"}}' AS JSON) +json_compact('{"person": {"id": 1, "country": "norway"}}'), +json_compact('{"person": {"country": "norway"}}') ) 1 SELECT JSON_CONTAINS ( -CAST('[1,3,5]' AS JSON), -CAST('[5,3,1,5]' AS JSON) +json_compact('[1,3,5]'), +json_compact('[5,3,1,5]') ); JSON_CONTAINS ( -CAST('[1,3,5]' AS JSON), -CAST('[5,3,1,5]' AS JSON) +json_compact('[1,3,5]'), +json_compact('[5,3,1,5]') ) 1 SELECT JSON_CONTAINS ( -CAST('[3.14]' AS JSON), -CAST('[3]' AS JSON) +json_compact('[3.14]'), +json_compact('[3]') ); JSON_CONTAINS ( -CAST('[3.14]' AS JSON), -CAST('[3]' AS JSON) +json_compact('[3.14]'), +json_compact('[3]') ) 0 SELECT JSON_CONTAINS ( -CAST('[1, 2, 3]' AS JSON), -CAST(3 AS JSON) +json_compact('[1, 2, 3]'), +json_compact(3) ); JSON_CONTAINS ( -CAST('[1, 2, 3]' AS JSON), -CAST(3 AS JSON) +json_compact('[1, 2, 3]'), +json_compact(3) ) 1 SELECT JSON_CONTAINS(); @@ -3119,17 +3141,17 @@ ERROR 42000: Incorrect parameter count in the call to native function 'JSON_CONT # Item_func_json_quote::fix_length_and_dec. Bug found by Knut. # Similar issue for JSON_UNQUOTE and JSON_TYPE. # ---------------------------------------------------------------------- -select json_object("a", ifnull(json_quote('test'), cast('null' as json))); -json_object("a", ifnull(json_quote('test'), cast('null' as json))) +select json_object("a", ifnull(json_quote('test'), json_compact('null'))); +json_object("a", ifnull(json_quote('test'), json_compact('null'))) {"a": "\"test\""} -select cast(concat('[', json_quote('ab'), ']') as json); -cast(concat('[', json_quote('ab'), ']') as json) +select json_compact(concat('[', json_quote('ab'), ']')); +json_compact(concat('[', json_quote('ab'), ']')) ["ab"] -select cast(concat('[', json_unquote('"12"'), ']') as json); -cast(concat('[', json_unquote('"12"'), ']') as json) +select json_compact(concat('[', json_unquote('"12"'), ']')); +json_compact(concat('[', json_unquote('"12"'), ']')) [12] -select cast(concat('["', json_type(cast(1 as json)), '"]') as json); -cast(concat('["', json_type(cast(1 as json)), '"]') as json) +select json_compact(concat('["', json_type( json_compact(1)), '"]')); +json_compact(concat('["', json_type( json_compact(1)), '"]')) ["INTEGER"] # # Bug#20912438: ITEM_TYPE_HOLDER::DISPLAY_LENGTH(ITEM*): ASSERTION `0' FAILED @@ -3138,12 +3160,12 @@ cast(concat('["', json_type(cast(1 as json)), '"]') as json) (SELECT JSON_KEYS('{ "key80": "2015-04-20 11:53:55" }') LIMIT 0); JSON_KEYS('{ "key80": "2015-04-20 11:53:55"}') ["key80"] -SELECT CAST(1 AS JSON) UNION ALL SELECT CAST(1 AS JSON); -CAST(1 AS JSON) +SELECT json_compact(1) UNION ALL SELECT json_compact(1); +json_compact(1) 1 1 -SELECT COUNT(*), CAST(NULL AS JSON); -COUNT(*) CAST(NULL AS JSON) +SELECT COUNT(*), json_compact(NULL); +COUNT(*) json_compact(NULL) 1 NULL error ER_INVALID_JSON_TEXT_IN_PARAM SELECT COUNT(*), JSON_EXTRACT('not valid json!', '$'); @@ -3306,8 +3328,8 @@ json_search( '{ "keyA": [ "foot" ], "keyB": [ "food" ] }', ?, 'foo%' ) select json_quote( json_type( json_object() ) ); json_quote( json_type( json_object() ) ) "OBJECT" -select json_quote( json_type( cast('{}' as json) ) ); -json_quote( json_type( cast('{}' as json) ) ) +select json_quote( json_type( json_compact('{}') ) ); +json_quote( json_type( json_compact('{}') ) ) "OBJECT" # # Bug#21148020 OUTPUT FROM JSON_TYPE() IS TRUNCATED @@ -3608,6 +3630,6 @@ JSON_REPLACE('[[[1]]]', '$[0][0][0]', 100) # SELECT JSON_ARRAY(LEAST(NULL, NULL), GREATEST(NULL, NULL), LEAST(j1, NULL), GREATEST(NULL, j2), LEAST(j1, j2), GREATEST(j1, j2)) AS j -FROM (SELECT CAST('1' AS JSON) AS j1, CAST('2' AS JSON) AS j2) t; +FROM (SELECT json_compact('1') AS j1, json_compact('2') AS j2) t; j [null, null, null, null, "1", "2"] diff --git a/mysql-test/suite/json/t/json_no_table.test b/mysql-test/suite/json/t/json_no_table.test index 584af56a3a9..d7b302c98a6 100644 --- a/mysql-test/suite/json/t/json_no_table.test +++ b/mysql-test/suite/json/t/json_no_table.test @@ -7,21 +7,21 @@ # Some extra checks for comparisons between positive and negative zero. # All should be equal. -SELECT CAST(0.0e0 AS JSON) = -0.0e0; -SELECT CAST(CAST(0 AS DECIMAL) AS JSON) = CAST(-0.0e0 AS DECIMAL); -SELECT CAST(0.0e0 AS JSON) = CAST(-0.0e0 AS DECIMAL); -SELECT CAST(CAST(0 AS DECIMAL) AS JSON) = -0.0e0; -SELECT CAST(CAST(0 AS SIGNED) AS JSON) = -0.0e0; -SELECT CAST(CAST(0 AS SIGNED) AS JSON) = CAST(-0.0e0 AS DECIMAL); -SELECT CAST(CAST(0 AS UNSIGNED) AS JSON) = -0.0e0; -SELECT CAST(CAST(0 AS UNSIGNED) AS JSON) = CAST(-0.0e0 AS DECIMAL); +SELECT JSON_COMPACT(0.0e0) = -0.0e0; +SELECT JSON_COMPACT(CAST(0 AS DECIMAL)) = CAST(-0.0e0 AS DECIMAL); +SELECT JSON_COMPACT(0.0e0) = CAST(-0.0e0 AS DECIMAL); +SELECT JSON_COMPACT(CAST(0 AS DECIMAL)) = -0.0e0; +SELECT JSON_COMPACT(CAST(0 AS SIGNED)) = -0.0e0; +SELECT JSON_COMPACT(CAST(0 AS SIGNED)) = CAST(-0.0e0 AS DECIMAL); +SELECT JSON_COMPACT(CAST(0 AS UNSIGNED)) = -0.0e0; +SELECT JSON_COMPACT(CAST(0 AS UNSIGNED)) = CAST(-0.0e0 AS DECIMAL); # Test that CAST string argument isn't treated as ANY_JSON_ATOM # in that a MySQL string needs to be parsed to JSON here; it is not # auto-converted to a JSON string as in ANY_JSON_ATOM contexts. -select cast('"abc"' as json); +select json_compact('"abc"'); --echo error ER_INVALID_JSON_TEXT_IN_PARAM -select cast('abc' as json); +select json_compact('abc'); --echo --echo # String literal - valid JSON @@ -50,11 +50,11 @@ set names 'utf8'; --echo --echo # Json expression -select JSON_VALID(cast('[123]' as JSON )); +select JSON_VALID(json_compact('[123]')); --echo --echo # Json expression NULL -select JSON_VALID(cast(NULL as JSON )); +select JSON_VALID(json_compact(NULL)); --echo --echo # Bare NULL @@ -80,7 +80,7 @@ select JSON_VALID( CAST('2015-01-15' AS DATE) ); --echo # The date string doesn't parse as JSON text, so wrong: select JSON_VALID( CAST(CAST('2015-01-15' AS DATE) as CHAR CHARACTER SET 'utf8') ); --echo # OK, though: -select JSON_VALID( CAST(CURDATE() as JSON) ); +select JSON_VALID( json_compact(CURDATE()) ); --echo --echo # Function result - NULL @@ -299,14 +299,14 @@ SELECT JSON_LENGTH --echo # Test of JSON_DEPTH function. --echo # ---------------------------------------------------------------------- select json_depth(null); -select json_depth(cast(null as json)); +select json_depth(json_compact(null)); #select i, json_depth(j) from t1; -select json_depth(cast('[]' as json)), - json_depth(cast('{}' as json)), - json_depth(cast('null' as json)), +select json_depth(json_compact('[]')), + json_depth(json_compact('{}')), + json_depth(json_compact('null')), json_depth(json_quote('foo')); -select json_depth(cast('[[2], 3, [[[4]]]]' as json)); -select json_depth(cast('{"a": {"a1": [3]}, "b": {"b1": {"c": {"d": [5]}}}}' as json)); +select json_depth(json_compact('[[2], 3, [[[4]]]]')); +select json_depth(json_compact('{"a": {"a1": [3]}, "b": {"b1": {"c": {"d": [5]}}}}')); # examples from the wl7909 spec # returns 1 @@ -325,7 +325,7 @@ SELECT JSON_DEPTH SELECT JSON_DEPTH( '"abc"' ); # returns 1 -SELECT JSON_DEPTH( CAST( '"abc"' AS JSON ) ); +SELECT JSON_DEPTH( json_compact( '"abc"') ); --echo error ER_INVALID_TYPE_FOR_JSON SELECT JSON_DEPTH( 1 ); @@ -334,7 +334,7 @@ SELECT JSON_DEPTH( 1 ); SELECT JSON_DEPTH( 'abc' ); # returns 1 -SELECT JSON_DEPTH( CAST( 1 AS JSON ) ); +SELECT JSON_DEPTH( json_compact( 1) ); # returns 2 SELECT JSON_DEPTH @@ -608,93 +608,93 @@ select json_type('3.14'); select json_type(CAST(CAST('2015-01-15' AS DATE) as CHAR CHARACTER SET 'utf8')); --echo # ---------------------------------------------------------------------- ---echo # Test of CAST(literal AS JSON) +--echo # Test of json_compact(literal) --echo # ---------------------------------------------------------------------- -select json_type(cast(cast('2014-11-25 18:00' as datetime) as json)); -select json_type(cast(cast('2014-11-25' as date) as json)); -select json_type(cast(cast('18:00:59' as time) as json)); -# select json_type(cast(cast('2014-11-25 18:00' as timestamp) as json)); -- cast target type not supported +select json_type(json_compact(cast('2014-11-25 18:00' as datetime))); +select json_type(json_compact(cast('2014-11-25' as date))); +select json_type(json_compact(cast('18:00:59' as time))); +# select json_type(json_compact(cast('2014-11-25 18:00' as timestamp))); -- cast target type not supported -# select json_type(cast(cast('1999' as year) as json)); -- cast target type not supported -select json_type(cast(127 as json)); -select json_type(cast(255 as json)); -select json_type(cast(32767 as json)); -select json_type(cast(65535 as json)); -select json_type(cast(8388607 as json)); -select json_type(cast(16777215 as json)); -select json_type(cast(2147483647 as json)); -select json_type(cast(4294967295 as json)); -select json_type(cast(9223372036854775807 as json)); -select json_type(cast(18446744073709551615 as json)); -select json_type(cast(true as json)); -select json_type(cast(b'10101' as json)); +# select json_type(json_compact(cast('1999' as year))); -- cast target type not supported +select json_type(json_compact(127)); +select json_type(json_compact(255)); +select json_type(json_compact(32767)); +select json_type(json_compact(65535)); +select json_type(json_compact(8388607)); +select json_type(json_compact(16777215)); +select json_type(json_compact(2147483647)); +select json_type(json_compact(4294967295)); +select json_type(json_compact(9223372036854775807)); +select json_type(json_compact(18446744073709551615)); +select json_type(json_compact(true)); +select json_type(json_compact(b'10101')); -select json_type(cast(cast(3.14 as decimal(5,2)) as json)); -select json_type(cast(3.14 as json)); -select json_type(cast(3.14E30 as json)); -# select json_type(cast(cast(3.14 as numeral(5,2)) as json)); -- cast target type not supported +select json_type(json_compact(cast(3.14 as decimal(5,2)))); +select json_type(json_compact(3.14)); +select json_type(json_compact(3.14E30)); +# select json_type(json_compact(cast(3.14 as numeral(5,2)))); -- cast target type not supported -# select json_type(cast(cast(3.14 as double) as json)); -- cast target type not supported -# select json_type(cast(cast(3.14 as float) as json)); -- cast target type not supported +# select json_type(json_compact(cast(3.14 as double))); -- cast target type not supported +# select json_type(json_compact(cast(3.14 as float))); -- cast target type not supported -# select json_type(cast(cast(b'10101' as bit(10)) as json)); -- cast target type not supported -# select json_type(cast(cast('10101abcde' as blob) as json)); -- cast target type not supported -select json_type(cast(cast('10101abcde' as binary) as json)); +# select json_type(json_compact(cast(b'10101' as bit(10)))); -- cast target type not supported +# select json_type(json_compact(cast('10101abcde' as blob))); -- cast target type not supported +select json_type(json_compact(cast('10101abcde' as binary))); -# select json_type(cast(cast('a' as enum('a','b','c')) as json)); -- cast target type not supported -# select json_type(cast(cast('a,c' as set('a','b','c')) as json)); -- cast target type not supported +# select json_type(json_compact(cast('a' as enum('a','b','c')))); -- cast target type not supported +# select json_type(json_compact(cast('a,c' as set('a','b','c')))); -- cast target type not supported -select json_type(cast(ST_GeomFromText('POINT(1 1)') as json)); -select json_type(cast(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)') as json)); -select json_type(cast(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), - (5 5,7 5,7 7,5 7, 5 5))') as json)); -select json_type(cast(null as json)); -select json_type(cast(null as json)) is null; # check that it is an SQL NULL +select json_type(json_compact(ST_GeomFromText('POINT(1 1)'))); +select json_type(json_compact(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)'))); +select json_type(json_compact(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), + (5 5,7 5,7 7,5 7, 5 5))'))); +select json_type(json_compact(null)); +select json_type(json_compact(null)) is null; # check that it is an SQL NULL select json_type(null) is null; # is an SQL NULL # # same, but now show the printable value: # -select cast(cast('2014-11-25 18:00' as datetime) as json); -select cast(cast('2014-11-25' as date) as json); -select cast(cast('18:00:59' as time) as json); -# select cast(cast('2014-11-25 18:00' as timestamp) as json); -- cast target type not supported +select json_compact(cast('2014-11-25 18:00' as datetime)); +select json_compact(cast('2014-11-25' as date)); +select json_compact(cast('18:00:59' as time)); +# select json_compact(cast('2014-11-25 18:00' as timestamp)); -- cast target type not supported -# select cast(cast('1999' as year) as json); -- cast target type not supported -select cast(127 as json); -select cast(255 as json); -select cast(32767 as json); -select cast(65535 as json); -select cast(8388607 as json); -select cast(16777215 as json); -select cast(2147483647 as json); -select cast(4294967295 as json); -select cast(9223372036854775807 as json); -select cast(18446744073709551615 as json); -select cast(true as json); -select cast(b'10101' as json); +# select json_compact(cast('1999' as year)); -- cast target type not supported +select json_compact(127); +select json_compact(255); +select json_compact(32767); +select json_compact(65535); +select json_compact(8388607); +select json_compact(16777215); +select json_compact(2147483647); +select json_compact(4294967295); +select json_compact(9223372036854775807); +select json_compact(18446744073709551615); +select json_compact(true); +select json_compact(b'10101'); -select cast(cast(3.14 as decimal(5,2)) as json); -select cast(3.14 as json); -select cast(3.14e0 as json); -# select cast(cast(3.14 as numeral(5,2)) as json); -- cast target type not supported +select json_compact(cast(3.14 as decimal(5,2))); +select json_compact(3.14); +select json_compact(3.14e0); +# select json_compact(cast(3.14 as numeral(5,2))); -- cast target type not supported -# select cast(cast(3.14 as double) as json); -- cast target type not supported -# select cast(cast(3.14 as float) as json); -- cast target type not supported +# select json_compact(cast(3.14 as double)); -- cast target type not supported +# select json_compact(cast(3.14 as float)); -- cast target type not supported -# select cast(cast(b'10101' as bit(10) as json); -- cast target type not supported -# select cast(cast('10101abcde' as blob) as json); -- cast target type not supported -select cast(cast('10101abcde' as binary) as json); +# select json_compact(cast(b'10101' as bit(10)); -- cast target type not supported +# select json_compact(cast('10101abcde' as blob)); -- cast target type not supported +select json_compact(cast('10101abcde' as binary)); -# select cast(cast('a' as enum('a','b','c') as json); -- cast target type not supported -# select cast(cast('a,c' as set('a','b','c') as json); -- cast target type not supported +# select json_compact(cast('a' as enum('a','b','c')); -- cast target type not supported +# select json_compact(cast('a,c' as set('a','b','c')); -- cast target type not supported -select cast(ST_GeomFromText('POINT(1 1)') as json); -select cast(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)') as json); -select cast(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), - (5 5,7 5,7 7,5 7, 5 5))') as json); -select cast(null as json); -select cast(null as json) is null; # check that it is an SQL NULL +select json_compact(ST_GeomFromText('POINT(1 1)')); +select json_compact(ST_GeomFromText('LINESTRING(0 0,1 1,2 2)')); +select json_compact(ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0), + (5 5,7 5,7 7,5 7, 5 5))')); +select json_compact(null); +select json_compact(null) is null; # check that it is an SQL NULL --echo # ---------------------------------------------------------------------- --echo # Test of JSON_KEYS function. @@ -761,7 +761,7 @@ SELECT JSON_KEYS('{}', '$', '$'); --echo # conversion tests. --echo # ---------------------------------------------------------------------- select cast(json_keys('{"a": 1}') as char); -select cast(cast(1 as json) as char); +select cast(json_compact(1) as char); select cast(json_keys(NULL) as char); #select cast(j as char) from keys1; @@ -996,8 +996,8 @@ select json_extract( '[ { "a": [3,4] }, { "b": 2 } ]', '$[0].a', '$[1].a' ) jdoc --echo # ---------------------------------------------------------------------- # NULLs -select json_array_append(NULL, '$.b', cast(1 as json)); -select json_array_append('[1,2,3]', NULL, cast(1 as json)); +select json_array_append(NULL, '$.b', json_compact(1)); +select json_array_append('[1,2,3]', NULL, json_compact(1)); select json_array_append('[1,2,3]', '$', NULL); # wrong # args @@ -1009,25 +1009,25 @@ select json_array_append(NULL, NULL); select json_array_append(NULL, NULL, NULL, NULL); # auto-wrap -SELECT JSON_ARRAY_APPEND(cast('1' as json), '$', 3); -SELECT JSON_ARRAY_APPEND(cast('{"a": 3}' as json), '$', 3); +SELECT JSON_ARRAY_APPEND(json_compact('1'), '$', 3); +SELECT JSON_ARRAY_APPEND(json_compact('{"a": 3}'), '$', 3); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_array_append(cast('{"a": {"b": [3]}}' as json), '$**[0]', 6); +select json_array_append(json_compact('{"a": {"b": [3]}}'), '$**[0]', 6); # Examples from the specification --echo # Auto-wrapping, since because the paths identify scalars. --echo # should return {"a": "foo", "b": ["bar", 4], "c": ["wibble", "grape"]} SELECT JSON_ARRAY_APPEND('{"a": "foo", "b": "bar", "c": "wibble"}', - '$.b', cast(4 as json), - '$.c', cast('"grape"' as json)); + '$.b', json_compact(4), + '$.c', json_compact('"grape"')); --echo # should return {"a": "foo", "b": [1, 2, 3, 4], --echo # "c": ["apple", "pear", "grape"]} SELECT JSON_ARRAY_APPEND('{"a" : "foo","b": [1, 2, 3], "c": ["apple", "pear"]}', - '$.b', cast(4 as json), - '$.c', cast('"grape"' as json)); + '$.b', json_compact(4), + '$.c', json_compact('"grape"')); # without CAST: cf. not required for ANY_JSON_ATOM arguments in specification SELECT JSON_ARRAY_APPEND('{"a" : "foo","b": [1, 2, 3], "c": ["apple", "pear"]}', @@ -1070,8 +1070,8 @@ select json_array_append('3', '$[0][0][0][0]', 100); --echo # ---------------------------------------------------------------------- # NULLs -select json_insert(NULL, '$.b', cast(1 as json)); -select json_insert('[1,2,3]', NULL, cast(1 as json)); +select json_insert(NULL, '$.b', json_compact(1)); +select json_insert('[1,2,3]', NULL, json_compact(1)); select json_insert('[1,2,3]', '$[3]', NULL); # wrong # args @@ -1104,35 +1104,35 @@ select json_insert('{"a": 3}', '$.a[1]', 4, '$.a[2]', '5'); # wild card & auto-wrap (scalars) --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": [1], "b": 2}' as json), '$.*[1]', 6); +select json_insert(json_compact('{"a": [1], "b": 2}'), '$.*[1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": 1, "b": 2}' as json), '$.*[1]', 6); +select json_insert(json_compact('{"a": 1, "b": 2}'), '$.*[1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": {"b": 3}}' as json), '$.a.*[1]', 6); +select json_insert(json_compact('{"a": {"b": 3}}'), '$.a.*[1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": {"b": [3]}}' as json), '$.a.*[1]', 6); +select json_insert(json_compact('{"a": {"b": [3]}}'), '$.a.*[1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": {"b": 3}}' as json), '$**[1]', 6); +select json_insert(json_compact('{"a": {"b": 3}}'), '$**[1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('{"a": {"b": [3]}}' as json), '$**[1]', 6); +select json_insert(json_compact('{"a": {"b": [3]}}'), '$**[1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[1]' as json), '$[*][1]', 6); +select json_insert(json_compact('[1]'), '$[*][1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[1]' as json), '$**[1]', 6); +select json_insert(json_compact('[1]'), '$**[1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[1, [2], 3]' as json), '$[*][1]', 6); +select json_insert(json_compact('[1, [2], 3]'), '$[*][1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[1, [2], 3]' as json), '$**[1]', 6); +select json_insert(json_compact('[1, [2], 3]'), '$**[1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[[1]]' as json), '$[*][1]', 6); +select json_insert(json_compact('[[1]]'), '$[*][1]', 6); --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_insert(cast('[[1]]' as json), '$**[1]', 6); +select json_insert(json_compact('[[1]]'), '$**[1]', 6); # auto-wrap object -select json_insert(cast('{"a": 3}' as json), '$[1]', 6); +select json_insert(json_compact('{"a": 3}'), '$[1]', 6); # Examples from the specification @@ -1270,7 +1270,7 @@ select json_insert('[]', '$[*][1]', 6); # multiple paths, select json_array_insert( '[ 1, 2, 3 ]', '$[1]', true, '$[1]', false ); select json_array_insert( '[ 1, 2, 3 ]', '$[1]', - cast( '[ "a", "b", "c", "d" ]' as json ), '$[1][2]', false ); + json_compact( '[ "a", "b", "c", "d" ]'), '$[1][2]', false ); # test an error while evaluating the document expression --echo error ER_INVALID_JSON_TEXT_IN_PARAM @@ -1285,8 +1285,8 @@ select json_array_insert( '[ 1, 2, 3 ]', '$[1]', json_extract( '[', '$' ) ); --echo # ---------------------------------------------------------------------- # NULLs -select json_set(NULL, '$.b', cast(1 as json)); -select json_set('[1,2,3]', NULL, cast(1 as json)); +select json_set(NULL, '$.b', json_compact(1)); +select json_set('[1,2,3]', NULL, json_compact(1)); select json_set('[1,2,3]', '$[3]', NULL); # wrong # args @@ -1323,7 +1323,7 @@ select json_set('{"a": 3}', '$.a[1]', 4, '$.a[2]', '5'); # auto-wrap plus ellipsis with nested hits should give: {"a": [{"b": [3, 6]}, 6]} --echo error ER_INVALID_JSON_PATH_WILDCARD -select json_set(cast('{"a": {"b": [3]}}' as json), '$**[1]', 6); +select json_set(json_compact('{"a": {"b": [3]}}'), '$**[1]', 6); # Examples from the specification: Include when missing functions are # available. @@ -1341,7 +1341,7 @@ select json_set(cast('{"a": {"b": [3]}}' as json), '$**[1]', 6); # # returns { "a" : "foo", "b" : [ 1, 2, 3 ], "c" : [ true, false ] } # SELECT JSON_SET('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', # '$.c', -# JSON_ARRAY( CAST( 'true' AS JSON ), CAST( 'false' AS JSON ) )); +# JSON_ARRAY( json_compact( 'true'), json_compact( 'false') )); # # returns [ 1, null, null, 2 ] # SELECT JSON_SET('1', '$[3]', 2); @@ -1353,19 +1353,19 @@ SELECT JSON_SET('{ "a" : "foo"}', '$.a', # returns { "a" : {}, "b" : [ 1, 2, 3 ] } select json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.a', - cast('{}' as json)); + json_compact('{}')); # returns { "a" : "foo", "b" : [ 1, 2, 3 ], "c" : [ true, false ] } select json_set('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', - cast('[true, false]' as json)); + json_compact('[true, false]')); # returns [ 1, null, null, 2 ] select json_set('1', '$[3]', 2); # should return { "a": { "b": false, "c": true } } select json_set('{ "a" : "foo"}', '$.a', - cast('{"b": false}' as json), '$.a.c', true); + json_compact('{"b": false}'), '$.a.c', true); # examples from wl7909 spec # returns {"a": {}, "b": [1, 2, 3]} @@ -1389,7 +1389,7 @@ SELECT JSON_SET ( '{ "a" : "foo", "b" : [ 1, 2, 3 ] }', '$.c', - JSON_ARRAY( CAST( 'true' AS JSON ), CAST( 'false' AS JSON ) ) + JSON_ARRAY( json_compact( 'true'), json_compact( 'false') ) ); # returns [1, 2] @@ -1413,8 +1413,8 @@ SELECT JSON_SET --echo # ---------------------------------------------------------------------- # NULLs -select json_replace(NULL, '$.b', cast(1 as json)); -select json_replace('[1,2,3]', NULL, cast(1 as json)); +select json_replace(NULL, '$.b', json_compact(1)); +select json_replace('[1,2,3]', NULL, json_compact(1)); select json_replace('[1,2,3]', '$[2]', NULL); # wrong # args @@ -1468,8 +1468,8 @@ SELECT JSON_REPLACE('{ "a" : "foo", "b" : [ 1, 2, 3 ] }', --echo # ---------------------------------------------------------------------- # NULLs -select json_array(NULL, '$.b', cast(1 as json)); -select json_array('[1,2,3]', NULL, cast(1 as json)); +select json_array(NULL, '$.b', json_compact(1)); +select json_array('[1,2,3]', NULL, json_compact(1)); select json_array('[1,2,3]', '$[3]', NULL); @@ -1477,7 +1477,7 @@ select json_array('[1,2,3]', '$[3]', NULL); select json_array(); select json_array(3.14); select json_array('[1,2,3]'); -select json_array(cast('[1,2,3]' as json)); +select json_array(json_compact('[1,2,3]')); select json_array(1,2,3); select json_array(b'0', b'1', b'10'); @@ -1503,8 +1503,8 @@ select json_object(); select json_object( 'a', null ); select json_object( 'a', 1 ); select json_object( 'a', 1, 'b', 'foo' ); -select json_object( 'a', 1, 'b', 'foo', 'c', cast( '{ "d": "wibble" }' as json ) ); -select json_object( 'a', true, 'b', false, 'c', cast( 'null' as json) ); +select json_object( 'a', 1, 'b', 'foo', 'c', json_compact( '{ "d": "wibble" }') ); +select json_object( 'a', true, 'b', false, 'c', json_compact( 'null') ); select json_valid( json_object( '"a"', 1 ) ); # long key @@ -1707,29 +1707,29 @@ SELECT JSON_UNQUOTE ); select json_type(case (null is null) when 1 then - cast('null' as json) else - cast('[1,2,3]' as json) end); + json_compact('null') else + json_compact('[1,2,3]') end); select json_type(case (null is not null) when 1 then - cast('null' as json) else - cast('[1,2,3]' as json) end); + json_compact('null') else + json_compact('[1,2,3]') end); select json_type( if(null is null, - cast('null' as json), - cast('[1,2,3]' as json)) ); + json_compact('null'), + json_compact('[1,2,3]')) ); select json_type( if(null is not null, - cast('null' as json), - cast('[1,2,3]' as json))); + json_compact('null'), + json_compact('[1,2,3]'))); -select cast(json_extract(cast(concat('[', cast('["A",2]' as json), ']') as json), +select cast(json_extract(json_compact(concat('[', json_compact('["A",2]'), ']')), '$[0][1]') as char) = 2; --echo # ---------------------------------------------------------------------- --echo # Test of aggregate function MAX, MIN. --echo # ---------------------------------------------------------------------- -select max(cast('[1,2,3]' as json)); +select max(json_compact('[1,2,3]')); --echo # ---------------------------------------------------------------------- --echo # Test of JSON_QUOTE, JSON_UNQUOTE @@ -1781,26 +1781,26 @@ select json_unquote(123); # integer not allowed select json_unquote('""'); # empty string select char_length(json_unquote('""')); # verify empty string select json_unquote('"" '); # unchanged: no final " -select json_unquote(cast(json_quote('abc') as json)); # round trip +select json_unquote(json_compact(json_quote('abc'))); # round trip # No change in this JSON string: it is an object -select cast('{"abc": "foo"}' as json); -select json_unquote(cast('{"abc": "foo"}' as json)); +select json_compact('{"abc": "foo"}'); +select json_unquote(json_compact('{"abc": "foo"}')); # This is a JSON string, so it is actually unquoted -select json_extract(cast('{"abc": "foo"}' as json), '$.abc'); -select json_unquote(json_extract(cast('{"abc": "foo"}' as json), '$.abc')); +select json_extract(json_compact('{"abc": "foo"}'), '$.abc'); +select json_unquote(json_extract(json_compact('{"abc": "foo"}'), '$.abc')); # Bug fix: thse should be the same select json_unquote('["a", "b", "c"]'); -select json_unquote(cast('["a", "b", "c"]' as json)); +select json_unquote(json_compact('["a", "b", "c"]')); select charset(json_unquote('"abc"')); select json_quote(convert(X'e68891' using utf8)); # chinese "I" (wo3) select json_quote(convert(X'e68891' using utf8mb4)); # chinese "I" (wo3) -select cast(json_quote(convert(X'e68891' using utf8)) as json); +select json_compact(json_quote(convert(X'e68891' using utf8))); select json_unquote(convert(X'e68891' using utf8)); # chinese "I" (wo3) @@ -1809,12 +1809,12 @@ select json_unquote(json_unquote(json_unquote( # long round trip of it json_quote(json_quote(json_quote('abc')))))); # DATE/TIME will lose their quotes, too: -select cast(cast('2015-01-15 23:24:25' as datetime) as json); -select json_unquote(cast(cast('2015-01-15 23:24:25' as datetime) as json)); +select json_compact(cast('2015-01-15 23:24:25' as datetime)); +select json_unquote(json_compact(cast('2015-01-15 23:24:25' as datetime))); # as well as opaque values: -select cast(st_geomfromtext('point(1 1)') as json); -select json_unquote(cast(st_geomfromtext('point(1 1)') as json)); +select json_compact(st_geomfromtext('point(1 1)')); +select json_unquote(json_compact(st_geomfromtext('point(1 1)'))); # examples from the wl7909 spec # returns the SQL string literal abc @@ -1828,7 +1828,7 @@ SELECT JSON_UNQUOTE( 123 ); # returns the SQL string literal abc SELECT JSON_UNQUOTE -( CAST( CAST( '"abc"' AS JSON ) AS CHAR ) ); +( CAST( json_compact( '"abc"') AS CHAR ) ); # returns 1 SELECT JSON_UNQUOTE @@ -1853,7 +1853,7 @@ SELECT JSON_QUOTE( 'abc' ); SELECT JSON_QUOTE( 123 ); # returns the JSON document consisting of the string scalar "123" -SELECT CAST( JSON_QUOTE( '123' ) AS JSON ); +SELECT json_compact( JSON_QUOTE( '123' )); --echo # ---------------------------------------------------------------------- --echo # Test of JSON_CONTAINS @@ -1861,47 +1861,47 @@ SELECT CAST( JSON_QUOTE( '123' ) AS JSON ); --echo # should give NULL select json_contains(NULL, NULL); -select json_contains(cast('{"a": 1, "b": 2}' as json), NULL); -select json_contains(NULL, cast('null' as json)); -select json_contains(cast('[1]' as json), cast('[1]' as json), NULL); +select json_contains(json_compact('{"a": 1, "b": 2}'), NULL); +select json_contains(NULL, json_compact('null')); +select json_contains(json_compact('[1]'), json_compact('[1]'), NULL); --echo # should give 0: -select json_contains(cast(3.14 as json), cast(3 as json)); +select json_contains(json_compact(3.14), json_compact(3)); --echo # should give 0: not at top level -select json_contains(cast('{"a": {"b": 7}}' as json), cast('{"b": 7}' as json)); +select json_contains(json_compact('{"a": {"b": 7}}'), json_compact('{"b": 7}')); --echo # but path argument will fix it: -select json_contains(cast('{"a": {"b": 7}}' as json), cast('{"b": 7}' as json), '$.a'); +select json_contains(json_compact('{"a": {"b": 7}}'), json_compact('{"b": 7}'), '$.a'); --echo # but arrays "introspect" -select json_contains(cast('[1,[2.0, 3.0]]' as json), cast('[2.0]' as json)); -select json_contains(cast('[1, 2, [3, [4, 5]], 6, 7]' as json), cast('5' as json)); +select json_contains(json_compact('[1,[2.0, 3.0]]'), json_compact('[2.0]')); +select json_contains(json_compact('[1, 2, [3, [4, 5]], 6, 7]'), json_compact('5')); --echo # should give 0: just a key -select json_contains(cast('{"a": 1, "b": 2}' as json), cast('"a"' as json)); +select json_contains(json_compact('{"a": 1, "b": 2}'), json_compact('"a"')); --echo # should give 0: one candidate element doesn't match -select json_contains(cast('[1]' as json), cast('[1,2]' as json)); +select json_contains(json_compact('[1]'), json_compact('[1,2]')); --echo # should all give 1 -select json_contains(cast('null' as json), cast('null' as json)); +select json_contains(json_compact('null'), json_compact('null')); --echo # simple object subset -select json_contains(cast('{"a": 1, "b": 2}' as json), cast( '{"a": 1}' as json)); +select json_contains(json_compact('{"a": 1, "b": 2}'), json_compact( '{"a": 1}')); --echo # simple vector subset -select json_contains(cast('[1, 2, 3]' as json), cast('[1, 3]' as json)); +select json_contains(json_compact('[1, 2, 3]'), json_compact('[1, 3]')); --echo # auto-wrap, should give 1 -select json_contains(cast('[1, 2, 3]' as json), cast(3 as json)); +select json_contains(json_compact('[1, 2, 3]'), json_compact(3)); --echo # ok even with nested cast off elements -select json_contains(cast('{"person": {"id": 1, "country": "norway"}}' as json), - cast('{"person": {"country": "norway"}}' as json)); +select json_contains(json_compact('{"person": {"id": 1, "country": "norway"}}'), + json_compact('{"person": {"country": "norway"}}')); --echo # vector reordering and duplicates is ok -select json_contains(cast('[1,3,5]' as json), cast('[5,3,1,5]' as json)); +select json_contains(json_compact('[1,3,5]'), json_compact('[5,3,1,5]')); --echo # ok even with more elts in candidate than in doc -select json_contains(cast('[{"b": 4, "a":7}]' as json), cast('[{"a":7},{"b":4}]' as json)); -select json_contains(cast('[{"b": 4, "a":7}, 5]' as json), cast('[5, {"a":7, "b":4}]' as json)); +select json_contains(json_compact('[{"b": 4, "a":7}]'), json_compact('[{"a":7},{"b":4}]')); +select json_contains(json_compact('[{"b": 4, "a":7}, 5]'), json_compact('[5, {"a":7, "b":4}]')); --echo # ok even with mixed number types that compare equal -select json_contains(cast('[{"b": 4, "a":7}, 5.0]' as json), cast('[5, {"a":7.0E0, "b":4}]' as json)); +select json_contains(json_compact('[{"b": 4, "a":7}, 5.0]'), json_compact('[5, {"a":7.0E0, "b":4}]')); # Bug discovered by Rick: used to give 1 (true). select json_contains( '{"customer": "cust3"}', '{"customer": "cust1"}' ); @@ -1919,36 +1919,36 @@ SELECT JSON_CONTAINS('{"a":1}', '{"a":1,"b":2}'); # returns 1 SELECT JSON_CONTAINS ( - CAST('[1, 4, 6]' AS JSON), - CAST('[1, 6]' AS JSON) + json_compact('[1, 4, 6]'), + json_compact('[1, 6]') ); # returns 1; even with nested cast off elements SELECT JSON_CONTAINS ( - CAST('{"person": {"id": 1, "country": "norway"}}' AS JSON), - CAST('{"person": {"country": "norway"}}' AS JSON) + json_compact('{"person": {"id": 1, "country": "norway"}}'), + json_compact('{"person": {"country": "norway"}}') ); # returns 1; reordering and duplicates are ok SELECT JSON_CONTAINS ( - CAST('[1,3,5]' AS JSON), - CAST('[5,3,1,5]' AS JSON) + json_compact('[1,3,5]'), + json_compact('[5,3,1,5]') ); # return 0; no type conversion is performed SELECT JSON_CONTAINS ( - CAST('[3.14]' AS JSON), - CAST('[3]' AS JSON) + json_compact('[3.14]'), + json_compact('[3]') ); # returns 1, due to auto-wrapping SELECT JSON_CONTAINS ( - CAST('[1, 2, 3]' AS JSON), - CAST(3 AS JSON) + json_compact('[1, 2, 3]'), + json_compact(3) ); --error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT @@ -1963,20 +1963,20 @@ SELECT JSON_CONTAINS('[1]', '[1]', '$', '$[0]'); --echo # Item_func_json_quote::fix_length_and_dec. Bug found by Knut. --echo # Similar issue for JSON_UNQUOTE and JSON_TYPE. --echo # ---------------------------------------------------------------------- -select json_object("a", ifnull(json_quote('test'), cast('null' as json))); -select cast(concat('[', json_quote('ab'), ']') as json); -select cast(concat('[', json_unquote('"12"'), ']') as json); -select cast(concat('["', json_type(cast(1 as json)), '"]') as json); +select json_object("a", ifnull(json_quote('test'), json_compact('null'))); +select json_compact(concat('[', json_quote('ab'), ']')); +select json_compact(concat('[', json_unquote('"12"'), ']')); +select json_compact(concat('["', json_type( json_compact(1)), '"]')); --echo # --echo # Bug#20912438: ITEM_TYPE_HOLDER::DISPLAY_LENGTH(ITEM*): ASSERTION `0' FAILED --echo # (SELECT JSON_KEYS('{ "key80": "2015-04-20 11:53:55"}')) UNION ALL (SELECT JSON_KEYS('{ "key80": "2015-04-20 11:53:55" }') LIMIT 0); -SELECT CAST(1 AS JSON) UNION ALL SELECT CAST(1 AS JSON); +SELECT json_compact(1) UNION ALL SELECT json_compact(1); # Exercise NULL handling and error handling in Item_copy_json::copy(). -SELECT COUNT(*), CAST(NULL AS JSON); +SELECT COUNT(*), json_compact(NULL); --echo error ER_INVALID_JSON_TEXT_IN_PARAM SELECT COUNT(*), JSON_EXTRACT('not valid json!', '$'); @@ -2118,7 +2118,7 @@ execute json_stmt12 USING @mypath; --echo # select json_quote( json_type( json_object() ) ); -select json_quote( json_type( cast('{}' as json) ) ); +select json_quote( json_type( json_compact('{}') ) ); --echo # --echo # Bug#21148020 OUTPUT FROM JSON_TYPE() IS TRUNCATED @@ -2130,9 +2130,9 @@ CREATE VIEW v1 AS SELECT JSON_TYPE(JSON_OBJECT()); SELECT * FROM v1; drop view v1; -# SELECT JSON_TYPE(CAST(CAST('2015-05-25 11:23:55' AS DATETIME) AS JSON)); -# CREATE VIEW v2 AS SELECT JSON_TYPE(CAST(CAST('2015-05-25 11:23:55' AS -# DATETIME) AS JSON)); +# SELECT JSON_TYPE(json_compact(CAST('2015-05-25 11:23:55' AS DATETIME))); +# CREATE VIEW v2 AS SELECT JSON_TYPE(json_compact(CAST('2015-05-25 11:23:55' AS +# DATETIME))); # SELECT * FROM v2; # drop view v2; @@ -2284,5 +2284,5 @@ SELECT JSON_REPLACE('[[[1]]]', '$[0][0][0]', 100); # a mix of NULLs and JSON values. SELECT JSON_ARRAY(LEAST(NULL, NULL), GREATEST(NULL, NULL), LEAST(j1, NULL), GREATEST(NULL, j2), LEAST(j1, j2), GREATEST(j1, j2)) AS j -FROM (SELECT CAST('1' AS JSON) AS j1, CAST('2' AS JSON) AS j2) t; +FROM (SELECT json_compact('1') AS j1, json_compact('2') AS j2) t; diff --git a/mysql-test/t/func_json.test b/mysql-test/t/func_json.test index be56eb46d09..09e4f30c325 100644 --- a/mysql-test/t/func_json.test +++ b/mysql-test/t/func_json.test @@ -161,10 +161,10 @@ select json_unquote('abc'); select json_object("a", json_object("b", "abcd")); select json_object("a", '{"b": "abcd"}'); -select json_object("a", cast('{"b": "abcd"}' as json)); +select json_object("a", json_compact('{"b": "abcd"}')); -select cast(NULL AS JSON); -select json_depth(cast(NULL as JSON)); +select json_compact(NULL); +select json_depth(json_compact(NULL)); select json_depth('[[], {}]'); select json_depth('[[[1,2,3],"s"], {}, []]'); select json_depth('[10, {"a": 20}]'); diff --git a/sql/item.h b/sql/item.h index 07f489a35a3..27fb716e0c9 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1095,6 +1095,8 @@ public: Returns the val_str() value converted to the given character set. */ String *val_str(String *str, String *converter, CHARSET_INFO *to); + + virtual String *val_json(String *str) { return val_str(str); } /* Return decimal representation of item with fixed point. diff --git a/sql/item_create.cc b/sql/item_create.cc index dee1db1ee2e..4730e187ebe 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -7228,9 +7228,6 @@ create_func_cast(THD *thd, Item *a, Cast_target cast_type, res= new (thd->mem_root) Item_char_typecast(thd, a, len, real_cs); break; } - case ITEM_CAST_JSON: - res= new (thd->mem_root) Item_json_typecast(thd, a); - break; default: { DBUG_ASSERT(0); diff --git a/sql/item_func.h b/sql/item_func.h index 08b1421cb1d..1f8d1ddb67e 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -2221,7 +2221,7 @@ enum Cast_target { ITEM_CAST_BINARY, ITEM_CAST_SIGNED_INT, ITEM_CAST_UNSIGNED_INT, ITEM_CAST_DATE, ITEM_CAST_TIME, ITEM_CAST_DATETIME, ITEM_CAST_CHAR, - ITEM_CAST_DECIMAL, ITEM_CAST_DOUBLE, ITEM_CAST_JSON + ITEM_CAST_DECIMAL, ITEM_CAST_DOUBLE }; diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc index 59d49b81d4a..925a7e437f2 100644 --- a/sql/item_jsonfunc.cc +++ b/sql/item_jsonfunc.cc @@ -373,7 +373,7 @@ static int path_setup_nwc(json_path_t *p, CHARSET_INFO *i_cs, longlong Item_func_json_valid::val_int() { - String *js= args[0]->val_str(&tmp_value); + String *js= args[0]->val_json(&tmp_value); json_engine_t je; if ((null_value= args[0]->null_value)) @@ -401,7 +401,7 @@ longlong Item_func_json_exists::val_int() json_engine_t je; uint array_counters[JSON_DEPTH_LIMIT]; - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); if (!path.parsed) { @@ -454,7 +454,7 @@ void Item_func_json_value::fix_length_and_dec() String *Item_func_json_value::val_str(String *str) { json_engine_t je; - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); int error= 0; uint array_counters[JSON_DEPTH_LIMIT]; @@ -587,7 +587,7 @@ void Item_func_json_unquote::fix_length_and_dec() String *Item_func_json_unquote::val_str(String *str) { - String *js= args[0]->val_str(&tmp_s); + String *js= args[0]->val_json(&tmp_s); json_engine_t je; int c_len; @@ -712,7 +712,7 @@ static bool path_ok(const json_path_with_flags *paths_list, int n_paths, String *Item_func_json_extract::val_str(String *str) { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); json_engine_t je, sav_je; json_path_t p; const uchar *value; @@ -817,7 +817,7 @@ return_null: longlong Item_func_json_extract::val_int() { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); json_engine_t je; uint n_arg; uint array_counters[JSON_DEPTH_LIMIT]; @@ -1040,7 +1040,7 @@ static int check_contains(json_engine_t *js, json_engine_t *value) longlong Item_func_json_contains::val_int() { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); json_engine_t je, ve; int result; @@ -1049,7 +1049,7 @@ longlong Item_func_json_contains::val_int() if (!a2_parsed) { - val= args[1]->val_str(&tmp_val); + val= args[1]->val_json(&tmp_val); a2_parsed= a2_constant; } @@ -1179,7 +1179,7 @@ static int parse_one_or_all(const Item_func *f, Item *ooa_arg, #ifdef DUMMY longlong Item_func_json_contains_path::val_int() { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); json_engine_t je; uint n_arg; longlong result; @@ -1247,7 +1247,7 @@ return_null: longlong Item_func_json_contains_path::val_int() { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); json_engine_t je; uint n_arg; longlong result; @@ -1351,7 +1351,7 @@ static int append_json_value(String *str, Item *item, String *tmp_val) return str->append(t_f, t_f_len); } { - String *sv= item->val_str(tmp_val); + String *sv= item->val_json(tmp_val); if (item->null_value) goto append_null; if (item->is_json_type()) @@ -1461,7 +1461,7 @@ void Item_func_json_array_append::fix_length_and_dec() String *Item_func_json_array_append::val_str(String *str) { json_engine_t je; - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); uint n_arg, n_path, str_rest_len; const uchar *ar_end; @@ -1588,7 +1588,7 @@ return_null: String *Item_func_json_array_insert::val_str(String *str) { json_engine_t je; - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); uint n_arg, n_path; DBUG_ASSERT(fixed == 1); @@ -1959,7 +1959,7 @@ String *Item_func_json_merge::val_str(String *str) { DBUG_ASSERT(fixed == 1); json_engine_t je1, je2; - String *js1= args[0]->val_str(&tmp_js1), *js2; + String *js1= args[0]->val_json(&tmp_js1), *js2; uint n_arg; if (args[0]->null_value) @@ -1970,7 +1970,7 @@ String *Item_func_json_merge::val_str(String *str) str->set_charset(js1->charset()); str->length(0); - js2= args[n_arg]->val_str(&tmp_js2); + js2= args[n_arg]->val_json(&tmp_js2); if (args[n_arg]->null_value) goto null_return; @@ -2028,7 +2028,7 @@ void Item_func_json_length::fix_length_and_dec() longlong Item_func_json_length::val_int() { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); json_engine_t je; uint length= 0; uint array_counters[JSON_DEPTH_LIMIT]; @@ -2105,7 +2105,7 @@ null_return: longlong Item_func_json_depth::val_int() { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); json_engine_t je; uint depth= 0, c_depth= 0; bool inc_depth= TRUE; @@ -2164,7 +2164,7 @@ void Item_func_json_type::fix_length_and_dec() String *Item_func_json_type::val_str(String *str) { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); json_engine_t je; const char *type; @@ -2232,7 +2232,7 @@ void Item_func_json_insert::fix_length_and_dec() String *Item_func_json_insert::val_str(String *str) { json_engine_t je; - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); uint n_arg, n_path; json_string_t key_name; @@ -2478,7 +2478,7 @@ void Item_func_json_remove::fix_length_and_dec() String *Item_func_json_remove::val_str(String *str) { json_engine_t je; - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); uint n_arg, n_path; json_string_t key_name; @@ -2661,7 +2661,7 @@ void Item_func_json_keys::fix_length_and_dec() String *Item_func_json_keys::val_str(String *str) { json_engine_t je; - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); uint n_keys= 0; uint array_counters[JSON_DEPTH_LIMIT]; @@ -2837,7 +2837,7 @@ static int append_json_path(String *str, const json_path_t *p) String *Item_func_json_search::val_str(String *str) { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); String *s_str= args[2]->val_str(&tmp_js); json_engine_t je; json_path_t p, sav_path; @@ -2934,21 +2934,6 @@ null_return: } -void Item_json_typecast::fix_length_and_dec() -{ - maybe_null= args[0]->maybe_null; - max_length= args[0]->max_length; -} - - -String *Item_json_typecast::val_str(String *str) -{ - String *vs= args[0]->val_str(str); - null_value= args[0]->null_value; - return vs; -} - - const char *Item_func_json_format::func_name() const { switch (fmt) @@ -2976,7 +2961,7 @@ void Item_func_json_format::fix_length_and_dec() String *Item_func_json_format::val_str(String *str) { - String *js= args[0]->val_str(&tmp_js); + String *js= args[0]->val_json(&tmp_js); json_engine_t je; int tab_size= 4; @@ -3016,3 +3001,12 @@ String *Item_func_json_format::val_str(String *str) } +String *Item_func_json_format::val_json(String *str) +{ + String *js= args[0]->val_json(&tmp_js); + if ((null_value= args[0]->null_value)) + return 0; + return js; +} + + diff --git a/sql/item_jsonfunc.h b/sql/item_jsonfunc.h index 0eedfa18be1..535f1bf73a5 100644 --- a/sql/item_jsonfunc.h +++ b/sql/item_jsonfunc.h @@ -414,19 +414,6 @@ public: }; -class Item_json_typecast: public Item_str_func -{ -public: - Item_json_typecast(THD *thd, Item *a): Item_str_func(thd, a) {} - const char *func_name() const { return "cast_as_json"; } - bool is_json_type() { return true; } - void fix_length_and_dec(); - String *val_str(String *str); - Item *get_copy(THD *thd, MEM_ROOT *mem_root) - { return get_item_copy(thd, mem_root, this); } -}; - - class Item_func_json_format: public Item_str_func { public: @@ -449,6 +436,8 @@ public: const char *func_name() const; void fix_length_and_dec(); String *val_str(String *str); + String *val_json(String *str); + bool is_json_type() { return true; } Item *get_copy(THD *thd, MEM_ROOT *mem_root) { return get_item_copy(thd, mem_root, this); } }; diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt index ebf86d6066c..8939910fc29 100644 --- a/sql/share/errmsg-utf8.txt +++ b/sql/share/errmsg-utf8.txt @@ -7417,7 +7417,7 @@ ER_BINLOG_UNCOMPRESS_ERROR ER_JSON_BAD_CHR eng "Broken JSON string in argument %d to function '%s' at position %d" ER_JSON_NOT_JSON_CHR - eng "Character disallowd in JSON in argument %d to function '%s' at position %d" + eng "Character disallowed in JSON in argument %d to function '%s' at position %d" ER_JSON_EOS eng "Unexpected end of JSON text in argument %d to function '%s'" ER_JSON_SYNTAX diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 14963c815a7..fe387ed80f2 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -10714,7 +10714,6 @@ cast_type: } | cast_type_numeric { $$= $1; Lex->charset= NULL; } | cast_type_temporal { $$= $1; Lex->charset= NULL; } - | JSON_SYM { $$.set(ITEM_CAST_JSON); } ; cast_type_numeric: From 41f42dff0624f19baf2353f3c09b3040e53f929d Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 14 Feb 2017 15:30:45 +0100 Subject: [PATCH 235/258] cleanup: mtr startup warning options --log-slow-admin-statements, --log-queries-not-using-indexes and --log-slow-slave-statements have no effect if --log_slow_queries is not set 1. s/--log_slow_queries/--log-slow-queries/ 2. disable log-slow-admin-statement/etc in mytr when doing mysqld --help --- mysql-test/mysql-test-run.pl | 3 +++ sql/mysqld.cc | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index b2c98692a22..9ce3c2ed8a9 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -1833,6 +1833,9 @@ sub collect_mysqld_features { mtr_add_arg($args, "--lc-messages-dir=%s", $path_language); mtr_add_arg($args, "--skip-grant-tables"); mtr_add_arg($args, "--log-warnings=0"); + mtr_add_arg($args, "--log-slow-admin-statements=0"); + mtr_add_arg($args, "--log-queries-not-using-indexes=0"); + mtr_add_arg($args, "--log-slow-slave-statements=0"); mtr_add_arg($args, "--verbose"); mtr_add_arg($args, "--help"); diff --git a/sql/mysqld.cc b/sql/mysqld.cc index e4a1a54749b..57292603b2d 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -9480,7 +9480,7 @@ static int get_options(int *argc_ptr, char ***argv_ptr) sql_print_information("options --log-slow-admin-statements, " "--log-queries-not-using-indexes and " "--log-slow-slave-statements have no " - "effect if --log_slow_queries is not set"); + "effect if --log-slow-queries is not set"); if (global_system_variables.net_buffer_length > global_system_variables.max_allowed_packet) { From 96d097a7fa16f8c4dd0b65df23d7be506297cf9e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 14 Feb 2017 16:45:51 +0100 Subject: [PATCH 236/258] sporadic failures of main.default_debug wait for the first connection to reach the debug sync point before letting the second connection do its stuff --- mysql-test/t/default_debug.test | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mysql-test/t/default_debug.test b/mysql-test/t/default_debug.test index 847966bfa81..a4f6532403b 100644 --- a/mysql-test/t/default_debug.test +++ b/mysql-test/t/default_debug.test @@ -11,6 +11,8 @@ select a,b,default(b) from t1; set debug_sync='after_Item_default_value_calculate WAIT_FOR go'; send select a,b,default(b) from t1; connection default; +let $wait_condition=select count(*) from information_schema.processlist where s +source include/wait_condition.inc; set debug_sync='ha_write_row_start SIGNAL go'; insert t1 values (100,default(b)); connection con1; From 3d85292afd7f332155b2c574b642490fd026b3ba Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 14 Feb 2017 17:28:59 +0100 Subject: [PATCH 237/258] sporadic failures of rpl.rpl_binlog_errors the test restarts the server, giving it 60 seconds to shutdown and then killing it mercilessly. make sure the server closes all MyISAM tables before shutdown, as we cannot reliably expect it to make the deadline. --- mysql-test/extra/rpl_tests/rpl_binlog_errors.inc | 3 +++ mysql-test/suite/binlog_encryption/rpl_binlog_errors.result | 3 +++ mysql-test/suite/rpl/r/rpl_binlog_errors.result | 3 +++ 3 files changed, 9 insertions(+) diff --git a/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc b/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc index 36568d7ddd5..49ab4f386bf 100644 --- a/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc +++ b/mysql-test/extra/rpl_tests/rpl_binlog_errors.inc @@ -308,6 +308,7 @@ INSERT INTO t2 VALUES ('aaaaa'); DELETE FROM t4; DELETE FROM t2; DROP TABLE t5; +flush tables; -- echo ###################### TEST #11 @@ -336,6 +337,7 @@ INSERT INTO t2 VALUES ('aaaaa'); DELETE FROM t4; DELETE FROM t2; DROP TABLE t5; +flush tables; # restart the server so that we have binlog again --let $rpl_server_number= 1 @@ -363,6 +365,7 @@ INSERT INTO t2 VALUES ('aaaaa'); DELETE FROM t4; DELETE FROM t2; DROP TABLE t5; +flush tables; # restart the server so that we have binlog again --let $rpl_server_number= 1 diff --git a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result index 8d9191fb806..06be72d523b 100644 --- a/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result +++ b/mysql-test/suite/binlog_encryption/rpl_binlog_errors.result @@ -189,6 +189,7 @@ INSERT INTO t2 VALUES ('aaaaa'); DELETE FROM t4; DELETE FROM t2; DROP TABLE t5; +flush tables; ###################### TEST #11 include/rpl_restart_server.inc [server_number=1] SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; @@ -203,6 +204,7 @@ INSERT INTO t2 VALUES ('aaaaa'); DELETE FROM t4; DELETE FROM t2; DROP TABLE t5; +flush tables; include/rpl_restart_server.inc [server_number=1] ###################### TEST #12 SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; @@ -217,6 +219,7 @@ INSERT INTO t2 VALUES ('aaaaa'); DELETE FROM t4; DELETE FROM t2; DROP TABLE t5; +flush tables; include/rpl_restart_server.inc [server_number=1] DROP TABLE t1, t2, t4; RESET MASTER; diff --git a/mysql-test/suite/rpl/r/rpl_binlog_errors.result b/mysql-test/suite/rpl/r/rpl_binlog_errors.result index 8d9191fb806..06be72d523b 100644 --- a/mysql-test/suite/rpl/r/rpl_binlog_errors.result +++ b/mysql-test/suite/rpl/r/rpl_binlog_errors.result @@ -189,6 +189,7 @@ INSERT INTO t2 VALUES ('aaaaa'); DELETE FROM t4; DELETE FROM t2; DROP TABLE t5; +flush tables; ###################### TEST #11 include/rpl_restart_server.inc [server_number=1] SET GLOBAL debug_dbug="+d,fault_injection_openning_index"; @@ -203,6 +204,7 @@ INSERT INTO t2 VALUES ('aaaaa'); DELETE FROM t4; DELETE FROM t2; DROP TABLE t5; +flush tables; include/rpl_restart_server.inc [server_number=1] ###################### TEST #12 SET GLOBAL debug_dbug="+d,fault_injection_new_file_rotate_event"; @@ -217,6 +219,7 @@ INSERT INTO t2 VALUES ('aaaaa'); DELETE FROM t4; DELETE FROM t2; DROP TABLE t5; +flush tables; include/rpl_restart_server.inc [server_number=1] DROP TABLE t1, t2, t4; RESET MASTER; From 743ac7c2d0f7c27699d53f35137e02ee3cfd4b71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Tue, 14 Feb 2017 11:13:24 +0200 Subject: [PATCH 238/258] MDEV-12061 Allow innodb_log_files_in_group=1 The InnoDB redo log consists of a list of files that logically form a bigger file, as if the individual files were concatenated together. The first file will always be written on redo log checkpoint, because the two checkpoint pages are at the start of the single logical redo log file. There is no technical reason why InnoDB requires at least 2 files to exist. Let us reduce the minimum number to 1. In that way, restoring from backups will become easier, since InnoDB can directly deal with a single backed-up redo log file. --- mysql-test/suite/innodb/r/log_file.result | 40 +------------------ .../suite/innodb/r/log_file_size.result | 2 - mysql-test/suite/innodb/t/log_file.test | 16 +------- mysql-test/suite/innodb/t/log_file_size.test | 12 +----- .../suite/sys_vars/r/sysvars_innodb.result | 2 +- storage/innobase/handler/ha_innodb.cc | 2 +- storage/innobase/srv/srv0srv.cc | 4 +- storage/innobase/srv/srv0start.cc | 5 --- 8 files changed, 8 insertions(+), 75 deletions(-) diff --git a/mysql-test/suite/innodb/r/log_file.result b/mysql-test/suite/innodb/r/log_file.result index b0351232ed9..0003f7d3c3a 100644 --- a/mysql-test/suite/innodb/r/log_file.result +++ b/mysql-test/suite/innodb/r/log_file.result @@ -335,50 +335,12 @@ ibdata2 undo001 undo002 undo003 -SELECT * FROM INFORMATION_SCHEMA.ENGINES -WHERE engine = 'innodb' -AND support IN ('YES', 'DEFAULT', 'ENABLED'); -ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS -FOUND /Only one log file found/ in mysqld.1.err -bak_ib_logfile0 -bak_ib_logfile1 -bak_ib_logfile2 -bak_ibdata1 -bak_ibdata2 -bak_undo001 -bak_undo002 -bak_undo003 -ib_buffer_pool -ib_logfile0 -ib_logfile2 -ibdata1 -ibdata2 -undo001 -undo002 -undo003 -# 12. With ibdata*, without ib_logfile2 -bak_ib_logfile0 -bak_ib_logfile1 -bak_ib_logfile2 -bak_ibdata1 -bak_ibdata2 -bak_undo001 -bak_undo002 -bak_undo003 -ib_buffer_pool -ib_logfile0 -ib_logfile1 -ibdata1 -ibdata2 -undo001 -undo002 -undo003 SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); 1 1 -FOUND /Resizing redo log from 2\*\d+ to 3\*\d+ pages, LSN=\d+/ in mysqld.1.err +FOUND /Resizing redo log from 1\*\d+ to 3\*\d+ pages, LSN=\d+/ in mysqld.1.err # Cleanup bak_ib_logfile0 bak_ib_logfile1 diff --git a/mysql-test/suite/innodb/r/log_file_size.result b/mysql-test/suite/innodb/r/log_file_size.result index 3f8f99fe8c7..e07dba67a7b 100644 --- a/mysql-test/suite/innodb/r/log_file_size.result +++ b/mysql-test/suite/innodb/r/log_file_size.result @@ -53,8 +53,6 @@ ERROR 42000: Unknown storage engine 'InnoDB' SELECT * FROM t1; ERROR 42000: Unknown storage engine 'InnoDB' SELECT * FROM t1; -ERROR 42000: Unknown storage engine 'InnoDB' -SELECT * FROM t1; a 42 123 diff --git a/mysql-test/suite/innodb/t/log_file.test b/mysql-test/suite/innodb/t/log_file.test index f7a8ef36cc0..0bb8ee8845c 100644 --- a/mysql-test/suite/innodb/t/log_file.test +++ b/mysql-test/suite/innodb/t/log_file.test @@ -26,7 +26,7 @@ let bugdir= $MYSQLTEST_VARDIR/tmp/log_file; --mkdir $bugdir let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; -let SEARCH_RANGE = -50000; +let SEARCH_RANGE = -100000; let $check_no_innodb=SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); @@ -217,21 +217,9 @@ eval $check_no_innodb; --remove_file $bugdir/ib_logfile1 --list_files $bugdir --source include/start_mysqld.inc -eval $check_no_innodb; ---source include/shutdown_mysqld.inc -let SEARCH_PATTERN=Only one log file found; ---source include/search_pattern_in_file.inc - -# clean up & Restore ---source ../include/log_file_cleanup.inc - ---echo # 12. With ibdata*, without ib_logfile2 ---remove_file $bugdir/ib_logfile2 ---list_files $bugdir ---source include/start_mysqld.inc eval $check_yes_innodb; --source include/shutdown_mysqld.inc -let SEARCH_PATTERN=Resizing redo log from 2\*\d+ to 3\*\d+ pages, LSN=\d+; +--let SEARCH_PATTERN=Resizing redo log from 1\*\d+ to 3\*\d+ pages, LSN=\d+ --source include/search_pattern_in_file.inc --let $restart_parameters= diff --git a/mysql-test/suite/innodb/t/log_file_size.test b/mysql-test/suite/innodb/t/log_file_size.test index 25988fc6fd8..179472a45a1 100644 --- a/mysql-test/suite/innodb/t/log_file_size.test +++ b/mysql-test/suite/innodb/t/log_file_size.test @@ -163,25 +163,15 @@ let SEARCH_PATTERN= InnoDB: Setting log file .*ib_logfile[0-9]+ size to; # We should have perfectly synced files here. # Rename the log files, and trigger an error in recovery. ---move_file $MYSQLD_DATADIR/ib_logfile101 $MYSQLD_DATADIR/ib_logfile0 --move_file $MYSQLD_DATADIR/ib_logfile1 $MYSQLD_DATADIR/ib_logfile1_hidden ---let $restart_parameters= ---source include/start_mysqld.inc ---error ER_UNKNOWN_STORAGE_ENGINE -SELECT * FROM t1; - -let SEARCH_PATTERN= InnoDB: Only one log file found; ---source include/search_pattern_in_file.inc ---move_file $MYSQLD_DATADIR/ib_logfile0 $MYSQLD_DATADIR/ib_logfile101 - perl; die unless open(FILE, ">$ENV{MYSQLD_DATADIR}/ib_logfile0"); print FILE "garbage"; close(FILE); EOF ---source include/restart_mysqld.inc +--source include/start_mysqld.inc --error ER_UNKNOWN_STORAGE_ENGINE SELECT * FROM t1; let SEARCH_PATTERN= InnoDB: Log file .*ib_logfile0 size 7 is not a multiple of innodb_page_size; diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result index 74d5abaf1d4..9394692b526 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result @@ -1470,7 +1470,7 @@ DEFAULT_VALUE 2 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of log files in the log group. InnoDB writes to the files in a circular fashion. -NUMERIC_MIN_VALUE 2 +NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 100 NUMERIC_BLOCK_SIZE 0 ENUM_VALUE_LIST NULL diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 6dbf1b6a8f5..20e412b9f13 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -21265,7 +21265,7 @@ static MYSQL_SYSVAR_LONGLONG(log_file_size, innobase_log_file_size, static MYSQL_SYSVAR_ULONG(log_files_in_group, srv_n_log_files, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, "Number of log files in the log group. InnoDB writes to the files in a circular fashion.", - NULL, NULL, 2, 2, SRV_N_LOG_FILES_MAX, 0); + NULL, NULL, 2, 1, SRV_N_LOG_FILES_MAX, 0); static MYSQL_SYSVAR_ULONG(log_write_ahead_size, srv_log_write_ahead_size, PLUGIN_VAR_RQCMDARG, diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index 9f61d43463b..a979b107825 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -205,9 +205,9 @@ extern bool trx_commit_disallowed; #endif /* UNIV_DEBUG */ /*------------------------- LOG FILES ------------------------ */ -char* srv_log_group_home_dir = NULL; +char* srv_log_group_home_dir; -ulong srv_n_log_files = SRV_N_LOG_FILES_MAX; +ulong srv_n_log_files; /** At startup, this is the current redo log file size. During startup, if this is different from srv_log_file_size_requested (innodb_log_file_size), the redo log will be rebuilt and this size diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 89acdec72da..88998b8b453 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -1977,11 +1977,6 @@ innobase_start_or_create_for_mysql(void) crash recovery. */ flushed_lsn = log_get_lsn(); goto files_checked; - } else if (i < 2) { - /* must have at least 2 log files */ - ib::error() << "Only one log file" - " found."; - return(srv_init_abort(err)); } /* opened all files */ From 2af28a363c0ac55c9b91aa9eb26949fc9ecf043a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 10 Feb 2017 12:11:42 +0200 Subject: [PATCH 239/258] MDEV-11782: Redefine the innodb_encrypt_log format Write only one encryption key to the checkpoint page. Use 4 bytes of nonce. Encrypt more of each redo log block, only skipping the 4-byte field LOG_BLOCK_HDR_NO which the initialization vector is derived from. Issue notes, not warning messages for rewriting the redo log files. recv_recovery_from_checkpoint_finish(): Do not generate any redo log, because we must avoid that before rewriting the redo log files, or otherwise a crash during a redo log rewrite (removing or adding encryption) may end up making the database unrecoverable. Instead, do these tasks in innobase_start_or_create_for_mysql(). Issue a firm "Missing MLOG_CHECKPOINT" error message. Remove some unreachable code and duplicated error messages for log corruption. LOG_HEADER_FORMAT_ENCRYPTED: A flag for identifying an encrypted redo log format. log_group_t::is_encrypted(), log_t::is_encrypted(): Determine if the redo log is in encrypted format. recv_find_max_checkpoint(): Interpret LOG_HEADER_FORMAT_ENCRYPTED. srv_prepare_to_delete_redo_log_files(): Display NOTE messages about adding or removing encryption. Do not issue warnings for redo log resizing any more. innobase_start_or_create_for_mysql(): Rebuild the redo logs also when the encryption changes. innodb_log_checksums_func_update(): Always use the CRC-32C checksum if innodb_encrypt_log. If needed, issue a warning that innodb_encrypt_log implies innodb_log_checksums. log_group_write_buf(): Compute the checksum on the encrypted block contents, so that transmission errors or incomplete blocks can be detected without decrypting. Rewrite most of the redo log encryption code. Only remember one encryption key at a time (but remember up to 5 when upgrading from the MariaDB 10.1 format.) --- mysql-test/mysql-test-run.pl | 6 - .../r/innodb-log-encrypt-crash.result | 19 - .../encryption/r/innodb-log-encrypt.result | 53 -- .../encryption/r/innodb_encrypt_log.result | 65 ++ .../r/innodb_encrypt_log_corruption.result | 4 +- .../encryption/t/innodb-log-encrypt-crash.opt | 6 - .../t/innodb-log-encrypt-crash.test | 41 - .../encryption/t/innodb-log-encrypt.test | 94 --- ...log-encrypt.opt => innodb_encrypt_log.opt} | 0 .../encryption/t/innodb_encrypt_log.test | 94 +++ .../t/innodb_encrypt_log_corruption.test | 5 +- mysql-test/suite/innodb/r/innodb-32k.result | 4 - mysql-test/suite/innodb/r/innodb-64k.result | 4 - .../suite/innodb/r/innodb-bigblob.result | 4 - .../suite/innodb/r/log_corruption.result | 5 +- mysql-test/suite/innodb/r/log_file.result | 2 +- mysql-test/suite/innodb/t/innodb-32k.test | 4 - mysql-test/suite/innodb/t/innodb-64k.test | 5 - mysql-test/suite/innodb/t/innodb-bigblob.test | 5 - mysql-test/suite/innodb/t/log_corruption.test | 14 +- mysql-test/suite/innodb/t/log_file.test | 2 +- mysql-test/suite/innodb/t/log_file_name.test | 2 +- mysql-test/suite/innodb/t/log_file_size.test | 9 +- .../innodb/t/log_file_size_checkpoint.test | 5 - storage/innobase/handler/ha_innodb.cc | 56 +- storage/innobase/include/fil0crypt.h | 1 + storage/innobase/include/log0crypt.h | 95 +-- storage/innobase/include/log0log.h | 49 +- storage/innobase/include/log0recv.h | 9 - storage/innobase/log/log0crypt.cc | 713 +++++------------- storage/innobase/log/log0log.cc | 120 +-- storage/innobase/log/log0recv.cc | 316 ++++---- .../storage_engine/define_engine.inc | 4 - storage/innobase/srv/srv0start.cc | 223 ++++-- 34 files changed, 749 insertions(+), 1289 deletions(-) delete mode 100644 mysql-test/suite/encryption/r/innodb-log-encrypt-crash.result delete mode 100644 mysql-test/suite/encryption/r/innodb-log-encrypt.result create mode 100644 mysql-test/suite/encryption/r/innodb_encrypt_log.result delete mode 100644 mysql-test/suite/encryption/t/innodb-log-encrypt-crash.opt delete mode 100644 mysql-test/suite/encryption/t/innodb-log-encrypt-crash.test delete mode 100644 mysql-test/suite/encryption/t/innodb-log-encrypt.test rename mysql-test/suite/encryption/t/{innodb-log-encrypt.opt => innodb_encrypt_log.opt} (100%) create mode 100644 mysql-test/suite/encryption/t/innodb_encrypt_log.test diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 9ce3c2ed8a9..4fe0c253a78 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -4345,10 +4345,7 @@ sub extract_warning_lines ($$) { qr/error .*connecting to master/, qr/InnoDB: Error: in ALTER TABLE `test`.`t[12]`/, qr/InnoDB: Error: table `test`.`t[12]` .*does not exist in the InnoDB internal/, - qr/InnoDB: Warning: Setting innodb_use_sys_malloc/, qr/InnoDB: Warning: a long semaphore wait:/, - qr/InnoDB: Disabling redo log encryption/, - qr/InnoDB: Redo log crypto: Can't initialize to key version -1u/, qr/InnoDB: Dumping buffer pool.*/, qr/InnoDB: Buffer pool.*/, qr/InnoDB: Warning: Writer thread is waiting this semaphore/, @@ -4422,9 +4419,6 @@ sub extract_warning_lines ($$) { qr|InnoDB: TABLE to scan your table for corruption|, qr/InnoDB: See also */, qr/InnoDB: Cannot open .*ib_buffer_pool.* for reading: No such file or directory*/, - qr/InnoDB: Upgrading redo log:*/, - qr|InnoDB: Starting to delete and rewrite log files.|, - qr/InnoDB: New log files created, LSN=*/, qr|InnoDB: Creating foreign key constraint system tables.|, qr/InnoDB: Table .*mysql.*innodb_table_stats.* not found./, qr/InnoDB: User stopword table .* does not exist./ diff --git a/mysql-test/suite/encryption/r/innodb-log-encrypt-crash.result b/mysql-test/suite/encryption/r/innodb-log-encrypt-crash.result deleted file mode 100644 index 5310fb6ace2..00000000000 --- a/mysql-test/suite/encryption/r/innodb-log-encrypt-crash.result +++ /dev/null @@ -1,19 +0,0 @@ -call mtr.add_suppression("InnoDB: New log files created, LSN=.*"); -call mtr.add_suppression("InnoDB: Creating foreign key constraint system tables."); -call mtr.add_suppression("InnoDB: Error: Table .*"); -CREATE TABLE t1 ( -pk bigint auto_increment, -col_int int, -col_int_key int, -col_char char(12), -col_char_key char(12), -primary key (pk), -key (`col_int_key` ), -key (`col_char_key` ) -) ENGINE=InnoDB; -CREATE TABLE t2 LIKE t1; -INSERT INTO t1 VALUES (NULL,1,1,'foo','foo'),(NULL,2,2,'bar','bar'),(NULL,3,3,'baz','baz'),(NULL,4,4,'qux','qux'); -INSERT INTO t2 -SELECT NULL, a1.col_int, a1.col_int_key, a1.col_char, a1.col_char_key -FROM t1 a1, t1 a2, t1 a3, t1 a4, t1 a5, t1 a6, t1 a7, t1 a8, t1 a9, t1 a10; -DROP TABLE t1, t2; diff --git a/mysql-test/suite/encryption/r/innodb-log-encrypt.result b/mysql-test/suite/encryption/r/innodb-log-encrypt.result deleted file mode 100644 index 6e88ce4cb14..00000000000 --- a/mysql-test/suite/encryption/r/innodb-log-encrypt.result +++ /dev/null @@ -1,53 +0,0 @@ -create table t1(c1 bigint not null, b char(200), c varchar(200)) engine=innodb encrypted=yes encryption_key_id=1; -show warnings; -Level Code Message -create procedure innodb_insert_proc (repeat_count int) -begin -declare current_num int; -set current_num = 0; -while current_num < repeat_count do -insert into t1 values(current_num, substring(MD5(RAND()), -64), REPEAT('privatejanprivate',10)); -set current_num = current_num + 1; -end while; -end// -commit; -begin; -call innodb_insert_proc(2000); -commit; -update t1 set c1 = c1 +1; -select count(*) from t1; -count(*) -2000 -# Kill the server -# ibdata1 yes on expecting NOT FOUND -NOT FOUND /privatejanprivate/ in ibdata1 -# t1 yes on expecting NOT FOUND -NOT FOUND /privatejanprivate/ in t1.ibd -# log0 yes on expecting NOT FOUND -NOT FOUND /privatejanprivate/ in ib_logfile0 -# log1 yes on expecting NOT FOUND -NOT FOUND /privatejanprivate/ in ib_logfile1 -# Restart mysqld --innodb_encrypt_log=0 -insert into t1 values(5000, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); -insert into t1 values(5001, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); -insert into t1 values(5002, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); -insert into t1 values(5003, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); -insert into t1 values(5004, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); -# ibdata1 yes on expecting NOT FOUND -NOT FOUND /privatejanprivate/ in ibdata1 -# t1 yes on expecting NOT FOUND -NOT FOUND /privatejanprivate/ in t1.ibd -# log0 yes on expecting NOT FOUND -NOT FOUND /privatejanprivate/ in ib_logfile0 -# log1 yes on expecting NOT FOUND -NOT FOUND /privatejanprivate/ in ib_logfile1 -# ibdata1 yes on expecting NOT FOUND -NOT FOUND /publicmessage/ in ibdata1 -# t1 yes on expecting NOT FOUND -NOT FOUND /publicmessage/ in t1.ibd -# log0 no on expecting FOUND/NOTFOUND depending where insert goes -FOUND /publicmessage/ in ib_logfile0 -# log1 no on expecting FOUND/NOTFOUND depending where insert goes -NOT FOUND /publicmessage/ in ib_logfile1 -drop procedure innodb_insert_proc; -drop table t1; diff --git a/mysql-test/suite/encryption/r/innodb_encrypt_log.result b/mysql-test/suite/encryption/r/innodb_encrypt_log.result new file mode 100644 index 00000000000..c660ebe336b --- /dev/null +++ b/mysql-test/suite/encryption/r/innodb_encrypt_log.result @@ -0,0 +1,65 @@ +# +# MDEV-9011: Redo log encryption does not work +# +# +# MDEV-9422 Encrypted redo log checksum errors +# on restart after killing busy server instance +# +SET GLOBAL innodb_log_checksums=0; +Warnings: +Warning 138 innodb_encrypt_log implies innodb_log_checksums +SELECT @@global.innodb_log_checksums; +@@global.innodb_log_checksums +1 +CREATE TABLE t0 ( +pk bigint auto_increment, +col_int int, +col_int_key int, +col_char char(12), +col_char_key char(12), +primary key (pk), +key (col_int_key), +key (col_char_key) +) ENGINE=InnoDB ENCRYPTED=YES ENCRYPTION_KEY_ID=1; +CREATE TEMPORARY TABLE t LIKE t0; +INSERT INTO t VALUES +(NULL,1,1,'private','secret'),(NULL,2,2,'sacred','success'), +(NULL,3,3,'story','secure'),(NULL,4,4,'security','sacrament'); +SET GLOBAL innodb_flush_log_at_trx_commit=1; +INSERT INTO t0 +SELECT NULL, t1.col_int, t1.col_int_key, t1.col_char, t1.col_char_key +FROM t t1, t t2, t t3, t t4, t t5; +# Kill the server +# ibdata1 expecting NOT FOUND +NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in ibdata1 +# t0.ibd expecting NOT FOUND +NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in t0.ibd +# ib_logfile0 expecting NOT FOUND +NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in ib_logfile0 +# ib_logfile1 expecting NOT FOUND +NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in ib_logfile1 +# Restart without redo log encryption +SELECT COUNT(*) FROM t0; +COUNT(*) +1024 +CHECK TABLE t0; +Table Op Msg_type Msg_text +test.t0 check status OK +SET GLOBAL innodb_flush_log_at_trx_commit=1; +INSERT INTO t0 VALUES(NULL, 5, 5, 'public', 'gossip'); +# Kill the server +# ib_logfile0 expecting NOT FOUND +NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in ib_logfile0 +# ib_logfile0 expecting FOUND +FOUND /public|gossip/ in ib_logfile0 +# ibdata1 expecting NOT FOUND +NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)|public|gossip/ in ibdata1 +# t0.ibd expecting NOT FOUND +NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)|public|gossip/ in t0.ibd +SELECT COUNT(*) FROM t0; +COUNT(*) +1025 +CHECK TABLE t0; +Table Op Msg_type Msg_text +test.t0 check status OK +DROP TABLE t0; diff --git a/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result b/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result index 16a5c91a953..65e03a028a0 100644 --- a/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result +++ b/mysql-test/suite/encryption/r/innodb_encrypt_log_corruption.result @@ -41,7 +41,7 @@ WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS FOUND /InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 3362026715 found: 144444122/ in mysqld.1.err -FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err +FOUND /InnoDB: Missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err # --innodb-force-recovery=6 (skip the entire redo log) SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' @@ -54,7 +54,6 @@ SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS -FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err # --innodb-force-recovery=6 (skip the entire redo log) SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' @@ -90,6 +89,7 @@ SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); 1 1 +FOUND /InnoDB: Encrypting redo log/ in mysqld.1.err ib_buffer_pool ib_logfile0 ib_logfile1 diff --git a/mysql-test/suite/encryption/t/innodb-log-encrypt-crash.opt b/mysql-test/suite/encryption/t/innodb-log-encrypt-crash.opt deleted file mode 100644 index e76aa060879..00000000000 --- a/mysql-test/suite/encryption/t/innodb-log-encrypt-crash.opt +++ /dev/null @@ -1,6 +0,0 @@ ---innodb-encrypt-log=ON ---plugin-load-add=$FILE_KEY_MANAGEMENT_SO ---loose-file-key-management ---loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/logkey.txt ---file-key-management-encryption-algorithm=aes_cbc ---innodb-buffer-pool-size=128M diff --git a/mysql-test/suite/encryption/t/innodb-log-encrypt-crash.test b/mysql-test/suite/encryption/t/innodb-log-encrypt-crash.test deleted file mode 100644 index cb9a69d036b..00000000000 --- a/mysql-test/suite/encryption/t/innodb-log-encrypt-crash.test +++ /dev/null @@ -1,41 +0,0 @@ --- source include/have_innodb.inc --- source include/not_embedded.inc -# test takes very long time on debug build --- source include/not_debug.inc --- source include/big_test.inc --- source filekeys_plugin.inc - -call mtr.add_suppression("InnoDB: New log files created, LSN=.*"); -call mtr.add_suppression("InnoDB: Creating foreign key constraint system tables."); -call mtr.add_suppression("InnoDB: Error: Table .*"); - -# -# MDEV-9422: Checksum errors on restart when killing busy instance that uses encrypted XtraDB tables -# - -CREATE TABLE t1 ( - pk bigint auto_increment, - col_int int, - col_int_key int, - col_char char(12), - col_char_key char(12), - primary key (pk), - key (`col_int_key` ), - key (`col_char_key` ) -) ENGINE=InnoDB; -CREATE TABLE t2 LIKE t1; - -INSERT INTO t1 VALUES (NULL,1,1,'foo','foo'),(NULL,2,2,'bar','bar'),(NULL,3,3,'baz','baz'),(NULL,4,4,'qux','qux'); -INSERT INTO t2 - SELECT NULL, a1.col_int, a1.col_int_key, a1.col_char, a1.col_char_key - FROM t1 a1, t1 a2, t1 a3, t1 a4, t1 a5, t1 a6, t1 a7, t1 a8, t1 a9, t1 a10; - ---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect ---shutdown_server 0 ---source include/wait_until_disconnected.inc - ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect ---enable_reconnect ---source include/wait_until_connected_again.inc - -DROP TABLE t1, t2; diff --git a/mysql-test/suite/encryption/t/innodb-log-encrypt.test b/mysql-test/suite/encryption/t/innodb-log-encrypt.test deleted file mode 100644 index f8b43488b58..00000000000 --- a/mysql-test/suite/encryption/t/innodb-log-encrypt.test +++ /dev/null @@ -1,94 +0,0 @@ --- source include/have_innodb.inc --- source include/not_embedded.inc --- source filekeys_plugin.inc - -# -# MDEV-9011: Redo log encryption does not work -# - -create table t1(c1 bigint not null, b char(200), c varchar(200)) engine=innodb encrypted=yes encryption_key_id=1; -show warnings; - -delimiter //; -create procedure innodb_insert_proc (repeat_count int) -begin - declare current_num int; - set current_num = 0; - while current_num < repeat_count do - insert into t1 values(current_num, substring(MD5(RAND()), -64), REPEAT('privatejanprivate',10)); - set current_num = current_num + 1; - end while; -end// -delimiter ;// -commit; - -begin; -call innodb_insert_proc(2000); -commit; - -update t1 set c1 = c1 +1; -select count(*) from t1; - ---let $MYSQLD_DATADIR=`select @@datadir` ---let ib1_IBD = $MYSQLD_DATADIR/ibdata1 ---let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd ---let log0 = $MYSQLD_DATADIR/ib_logfile0 ---let log1 = $MYSQLD_DATADIR/ib_logfile1 ---let SEARCH_RANGE = 10000000 ---let SEARCH_PATTERN=privatejanprivate - --- source include/kill_mysqld.inc - ---echo # ibdata1 yes on expecting NOT FOUND --- let SEARCH_FILE=$ib1_IBD --- source include/search_pattern_in_file.inc ---echo # t1 yes on expecting NOT FOUND --- let SEARCH_FILE=$t1_IBD --- source include/search_pattern_in_file.inc ---echo # log0 yes on expecting NOT FOUND --- let SEARCH_FILE=$log0 --- source include/search_pattern_in_file.inc ---echo # log1 yes on expecting NOT FOUND --- let SEARCH_FILE=$log1 --- source include/search_pattern_in_file.inc - ---echo # Restart mysqld --innodb_encrypt_log=0 --- let $restart_parameters=--innodb_encrypt_log=0 --- source include/start_mysqld.inc - -insert into t1 values(5000, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); -insert into t1 values(5001, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); -insert into t1 values(5002, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); -insert into t1 values(5003, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); -insert into t1 values(5004, substring(MD5(RAND()), -64), REPEAT('publicmessage',10)); - ---let SEARCH_PATTERN=privatejanprivate ---echo # ibdata1 yes on expecting NOT FOUND --- let SEARCH_FILE=$ib1_IBD --- source include/search_pattern_in_file.inc ---echo # t1 yes on expecting NOT FOUND --- let SEARCH_FILE=$t1_IBD --- source include/search_pattern_in_file.inc ---echo # log0 yes on expecting NOT FOUND --- let SEARCH_FILE=$log0 --- source include/search_pattern_in_file.inc ---echo # log1 yes on expecting NOT FOUND --- let SEARCH_FILE=$log1 --- source include/search_pattern_in_file.inc - ---let SEARCH_PATTERN=publicmessage ---echo # ibdata1 yes on expecting NOT FOUND --- let SEARCH_FILE=$ib1_IBD --- source include/search_pattern_in_file.inc ---echo # t1 yes on expecting NOT FOUND --- let SEARCH_FILE=$t1_IBD --- source include/search_pattern_in_file.inc ---echo # log0 no on expecting FOUND/NOTFOUND depending where insert goes --- let SEARCH_FILE=$log0 --- source include/search_pattern_in_file.inc ---echo # log1 no on expecting FOUND/NOTFOUND depending where insert goes --- let SEARCH_FILE=$log1 --- source include/search_pattern_in_file.inc - -drop procedure innodb_insert_proc; -drop table t1; diff --git a/mysql-test/suite/encryption/t/innodb-log-encrypt.opt b/mysql-test/suite/encryption/t/innodb_encrypt_log.opt similarity index 100% rename from mysql-test/suite/encryption/t/innodb-log-encrypt.opt rename to mysql-test/suite/encryption/t/innodb_encrypt_log.opt diff --git a/mysql-test/suite/encryption/t/innodb_encrypt_log.test b/mysql-test/suite/encryption/t/innodb_encrypt_log.test new file mode 100644 index 00000000000..5f60889600a --- /dev/null +++ b/mysql-test/suite/encryption/t/innodb_encrypt_log.test @@ -0,0 +1,94 @@ +-- source include/have_innodb.inc +-- source include/not_embedded.inc +-- source filekeys_plugin.inc + +--echo # +--echo # MDEV-9011: Redo log encryption does not work +--echo # + +--echo # +--echo # MDEV-9422 Encrypted redo log checksum errors +--echo # on restart after killing busy server instance +--echo # + +--let $MYSQLD_DATADIR=`select @@datadir` + +SET GLOBAL innodb_log_checksums=0; +SELECT @@global.innodb_log_checksums; + +CREATE TABLE t0 ( + pk bigint auto_increment, + col_int int, + col_int_key int, + col_char char(12), + col_char_key char(12), + primary key (pk), + key (col_int_key), + key (col_char_key) +) ENGINE=InnoDB ENCRYPTED=YES ENCRYPTION_KEY_ID=1; +CREATE TEMPORARY TABLE t LIKE t0; + +INSERT INTO t VALUES +(NULL,1,1,'private','secret'),(NULL,2,2,'sacred','success'), +(NULL,3,3,'story','secure'),(NULL,4,4,'security','sacrament'); + +# Force a redo log flush at the next commit. +SET GLOBAL innodb_flush_log_at_trx_commit=1; +INSERT INTO t0 + SELECT NULL, t1.col_int, t1.col_int_key, t1.col_char, t1.col_char_key + FROM t t1, t t2, t t3, t t4, t t5; + +--source include/kill_mysqld.inc + +--let SEARCH_RANGE = 10000000 +--let SEARCH_PATTERN=private|secret|sacr(ed|ament)|success|story|secur(e|ity) + +--echo # ibdata1 expecting NOT FOUND +-- let SEARCH_FILE=$MYSQLD_DATADIR/ibdata1 +-- source include/search_pattern_in_file.inc +--echo # t0.ibd expecting NOT FOUND +-- let SEARCH_FILE=$MYSQLD_DATADIR/test/t0.ibd +-- source include/search_pattern_in_file.inc +--echo # ib_logfile0 expecting NOT FOUND +-- let SEARCH_FILE=$MYSQLD_DATADIR/ib_logfile0 +-- source include/search_pattern_in_file.inc +--echo # ib_logfile1 expecting NOT FOUND +-- let SEARCH_FILE=$MYSQLD_DATADIR/ib_logfile1 +-- source include/search_pattern_in_file.inc + +--echo # Restart without redo log encryption +-- let $restart_parameters=--skip-innodb-encrypt-log --innodb-log-files-in-group=1 +-- source include/start_mysqld.inc + +SELECT COUNT(*) FROM t0; +CHECK TABLE t0; +# Force a redo log flush at the next commit. +SET GLOBAL innodb_flush_log_at_trx_commit=1; +# If we tested with UPDATE, we would get clear-text redo log for +# encrypted undo log written with the old secret values. +INSERT INTO t0 VALUES(NULL, 5, 5, 'public', 'gossip'); + +--source include/kill_mysqld.inc + +--echo # ib_logfile0 expecting NOT FOUND +-- let SEARCH_FILE=$MYSQLD_DATADIR/ib_logfile0 +-- source include/search_pattern_in_file.inc +--let SEARCH_PATTERN=public|gossip +--echo # ib_logfile0 expecting FOUND +-- let SEARCH_FILE=$MYSQLD_DATADIR/ib_logfile0 +-- source include/search_pattern_in_file.inc + +--let SEARCH_PATTERN=private|secret|sacr(ed|ament)|success|story|secur(e|ity)|public|gossip +--echo # ibdata1 expecting NOT FOUND +-- let SEARCH_FILE=$MYSQLD_DATADIR/ibdata1 +-- source include/search_pattern_in_file.inc +--echo # t0.ibd expecting NOT FOUND +-- let SEARCH_FILE=$MYSQLD_DATADIR/test/t0.ibd +-- source include/search_pattern_in_file.inc + +--let $restart_parameters= +--source include/start_mysqld.inc + +SELECT COUNT(*) FROM t0; +CHECK TABLE t0; +DROP TABLE t0; diff --git a/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test b/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test index 85ce09e0901..f1642e83e32 100644 --- a/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test +++ b/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.test @@ -3,9 +3,12 @@ SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); +--source include/shutdown_mysqld.inc +--let SEARCH_PATTERN= InnoDB: Encrypting redo log +--source include/search_pattern_in_file.inc --let $restart_parameters= ---source include/restart_mysqld.inc +--source include/start_mysqld.inc --list_files $bugdir --remove_files_wildcard $bugdir diff --git a/mysql-test/suite/innodb/r/innodb-32k.result b/mysql-test/suite/innodb/r/innodb-32k.result index 29374689a3b..140b9b87c2f 100644 --- a/mysql-test/suite/innodb/r/innodb-32k.result +++ b/mysql-test/suite/innodb/r/innodb-32k.result @@ -1,7 +1,3 @@ -call mtr.add_suppression("InnoDB: Warning: innodb_page_size has been changed from default value "); -call mtr.add_suppression("InnoDB: Resizing redo log from "); -call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); -call mtr.add_suppression("InnoDB: New log files created, LSN="); call mtr.add_suppression("Innodb: Cannot add field.*row size is"); # Test 1) Show the page size from Information Schema SELECT variable_value FROM information_schema.global_status diff --git a/mysql-test/suite/innodb/r/innodb-64k.result b/mysql-test/suite/innodb/r/innodb-64k.result index 9271ad70fb4..f72ba8ef8b5 100644 --- a/mysql-test/suite/innodb/r/innodb-64k.result +++ b/mysql-test/suite/innodb/r/innodb-64k.result @@ -1,7 +1,3 @@ -call mtr.add_suppression("InnoDB: Warning: innodb_page_size has been changed from default value *"); -call mtr.add_suppression("InnoDB: Resizing redo log from *"); -call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files."); -call mtr.add_suppression("InnoDB: New log files created, LSN=*"); # Test 1) Show the page size from Information Schema SELECT variable_value FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_page_size'; diff --git a/mysql-test/suite/innodb/r/innodb-bigblob.result b/mysql-test/suite/innodb/r/innodb-bigblob.result index 20fe0ce5c43..dcde9804cdc 100644 --- a/mysql-test/suite/innodb/r/innodb-bigblob.result +++ b/mysql-test/suite/innodb/r/innodb-bigblob.result @@ -1,7 +1,3 @@ -call mtr.add_suppression("Resizing redo log from *"); -call mtr.add_suppression("Starting to delete and rewrite log files."); -call mtr.add_suppression("New log files created, LSN=*"); -call mtr.add_suppression("Writer thread is waiting this semaphore"); create table foo (id varchar(37) not null, content longblob) engine=INNODB; insert into foo (id, content) values('xyz', ''); update foo set content=repeat('a', 43941888) where id='xyz'; diff --git a/mysql-test/suite/innodb/r/log_corruption.result b/mysql-test/suite/innodb/r/log_corruption.result index ad06398e4e2..ccf5f73a3a3 100644 --- a/mysql-test/suite/innodb/r/log_corruption.result +++ b/mysql-test/suite/innodb/r/log_corruption.result @@ -41,7 +41,7 @@ WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS FOUND /InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 3362026715 found: 144444122/ in mysqld.1.err -FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err +FOUND /InnoDB: Missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err # --innodb-force-recovery=6 (skip the entire redo log) SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' @@ -54,7 +54,6 @@ SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS -FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err # --innodb-force-recovery=6 (skip the entire redo log) SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' @@ -90,7 +89,7 @@ SELECT * FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS -FOUND /InnoDB: Redo log crypto: getting mysqld crypto key from key version failed err = 4294967295/ in mysqld.1.err +FOUND /InnoDB: Obtaining redo log encryption key version 1 failed/ in mysqld.1.err FOUND /InnoDB: Decrypting checkpoint failed/ in mysqld.1.err ib_buffer_pool ib_logfile0 diff --git a/mysql-test/suite/innodb/r/log_file.result b/mysql-test/suite/innodb/r/log_file.result index 0003f7d3c3a..352e4b76cf1 100644 --- a/mysql-test/suite/innodb/r/log_file.result +++ b/mysql-test/suite/innodb/r/log_file.result @@ -340,7 +340,7 @@ WHERE engine='innodb' AND support IN ('YES', 'DEFAULT', 'ENABLED'); 1 1 -FOUND /Resizing redo log from 1\*\d+ to 3\*\d+ pages, LSN=\d+/ in mysqld.1.err +FOUND /Resizing redo log from 1\*\d+ to 3\*\d+ pages; LSN=\d+/ in mysqld.1.err # Cleanup bak_ib_logfile0 bak_ib_logfile1 diff --git a/mysql-test/suite/innodb/t/innodb-32k.test b/mysql-test/suite/innodb/t/innodb-32k.test index 53a2d3a7442..80a05c350d0 100644 --- a/mysql-test/suite/innodb/t/innodb-32k.test +++ b/mysql-test/suite/innodb/t/innodb-32k.test @@ -3,10 +3,6 @@ --source include/have_innodb.inc --source include/have_innodb_32k.inc -call mtr.add_suppression("InnoDB: Warning: innodb_page_size has been changed from default value "); -call mtr.add_suppression("InnoDB: Resizing redo log from "); -call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); -call mtr.add_suppression("InnoDB: New log files created, LSN="); call mtr.add_suppression("Innodb: Cannot add field.*row size is"); let $MYSQLD_DATADIR= `select @@datadir`; diff --git a/mysql-test/suite/innodb/t/innodb-64k.test b/mysql-test/suite/innodb/t/innodb-64k.test index c611b6cb2e2..13351450cfc 100644 --- a/mysql-test/suite/innodb/t/innodb-64k.test +++ b/mysql-test/suite/innodb/t/innodb-64k.test @@ -3,11 +3,6 @@ --source include/have_innodb.inc --source include/have_innodb_64k.inc -call mtr.add_suppression("InnoDB: Warning: innodb_page_size has been changed from default value *"); -call mtr.add_suppression("InnoDB: Resizing redo log from *"); -call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files."); -call mtr.add_suppression("InnoDB: New log files created, LSN=*"); - let $MYSQLD_DATADIR= `select @@datadir`; --echo # Test 1) Show the page size from Information Schema diff --git a/mysql-test/suite/innodb/t/innodb-bigblob.test b/mysql-test/suite/innodb/t/innodb-bigblob.test index d72e20487e4..799dfe42d48 100644 --- a/mysql-test/suite/innodb/t/innodb-bigblob.test +++ b/mysql-test/suite/innodb/t/innodb-bigblob.test @@ -6,11 +6,6 @@ let $status_orig=`SELECT @@innodb_status_output`; --enable_query_log -call mtr.add_suppression("Resizing redo log from *"); -call mtr.add_suppression("Starting to delete and rewrite log files."); -call mtr.add_suppression("New log files created, LSN=*"); -call mtr.add_suppression("Writer thread is waiting this semaphore"); - create table foo (id varchar(37) not null, content longblob) engine=INNODB; insert into foo (id, content) values('xyz', ''); update foo set content=repeat('a', 43941888) where id='xyz'; diff --git a/mysql-test/suite/innodb/t/log_corruption.test b/mysql-test/suite/innodb/t/log_corruption.test index 0f59f64ebdf..d193b3e74a8 100644 --- a/mysql-test/suite/innodb/t/log_corruption.test +++ b/mysql-test/suite/innodb/t/log_corruption.test @@ -9,11 +9,11 @@ call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE faile call mtr.add_suppression("InnoDB: Unsupported redo log format"); call mtr.add_suppression("InnoDB: No valid checkpoint found"); call mtr.add_suppression("InnoDB: Invalid (log block|redo log header) checksum"); -call mtr.add_suppression("InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT"); +call mtr.add_suppression("InnoDB: Missing MLOG_CHECKPOINT"); call mtr.add_suppression("InnoDB: MLOG_FILE_NAME incorrect"); call mtr.add_suppression("InnoDB: ############### CORRUPT LOG RECORD FOUND"); -call mtr.add_suppression("InnoDB: Found corrupted log"); -call mtr.add_suppression("InnoDB: Redo log crypto: getting mysqld crypto key from key version failed"); +call mtr.add_suppression("InnoDB: Log scan aborted at LSN"); +call mtr.add_suppression("InnoDB: Obtaining redo log encryption key version 1 failed"); call mtr.add_suppression("InnoDB: Decrypting checkpoint failed"); --enable_query_log @@ -206,7 +206,7 @@ eval $check_no_innodb; --source include/shutdown_mysqld.inc let SEARCH_PATTERN=InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 3362026715 found: 144444122; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN=InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\.; +let SEARCH_PATTERN=InnoDB: Missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\.; --source include/search_pattern_in_file.inc --echo # --innodb-force-recovery=6 (skip the entire redo log) --let $restart_parameters= $dirs --innodb-force-recovery=6 @@ -232,14 +232,12 @@ print OUT pack("H*x[5]", "C0DEBA5E0022000c0000000138"); print OUT pack("H*x[475]H*", "12860cb7809781e80006626f677573", "089C0ADA"); EOF --copy_file $bugdir/ib_logfile0 $bugdir/ib_logfile -# Anything below innodb_force_recovery=6 must find a valid redo log. +# Anything below innodb_force_recovery=6 must find an invalid redo log. # Missing tablespace files are tolerated already with innodb_force_recovery=1. --let $restart_parameters= $dirs --innodb-force-recovery=5 --source include/start_mysqld.inc eval $check_no_innodb; --source include/shutdown_mysqld.inc -let SEARCH_PATTERN=InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\.; ---source include/search_pattern_in_file.inc --echo # --innodb-force-recovery=6 (skip the entire redo log) --let $restart_parameters= $dirs --innodb-force-recovery=6 --source include/start_mysqld.inc @@ -340,7 +338,7 @@ EOF if (!$no_cleanup) { eval $check_no_innodb; --source include/shutdown_mysqld.inc ---let SEARCH_PATTERN= InnoDB: Redo log crypto: getting mysqld crypto key from key version failed err = 4294967295 +--let SEARCH_PATTERN= InnoDB: Obtaining redo log encryption key version 1 failed --source include/search_pattern_in_file.inc --let SEARCH_PATTERN= InnoDB: Decrypting checkpoint failed --source include/search_pattern_in_file.inc diff --git a/mysql-test/suite/innodb/t/log_file.test b/mysql-test/suite/innodb/t/log_file.test index 0bb8ee8845c..c50257a69be 100644 --- a/mysql-test/suite/innodb/t/log_file.test +++ b/mysql-test/suite/innodb/t/log_file.test @@ -219,7 +219,7 @@ eval $check_no_innodb; --source include/start_mysqld.inc eval $check_yes_innodb; --source include/shutdown_mysqld.inc ---let SEARCH_PATTERN=Resizing redo log from 1\*\d+ to 3\*\d+ pages, LSN=\d+ +--let SEARCH_PATTERN=Resizing redo log from 1\*\d+ to 3\*\d+ pages; LSN=\d+ --source include/search_pattern_in_file.inc --let $restart_parameters= diff --git a/mysql-test/suite/innodb/t/log_file_name.test b/mysql-test/suite/innodb/t/log_file_name.test index 78500a6a310..e528abc80d5 100644 --- a/mysql-test/suite/innodb/t/log_file_name.test +++ b/mysql-test/suite/innodb/t/log_file_name.test @@ -160,7 +160,7 @@ call mtr.add_suppression("InnoDB: Cannot read first page in datafile: .*test.*ib call mtr.add_suppression("InnoDB: Datafile '.*test.*ibd' is corrupted"); call mtr.add_suppression("InnoDB: Cannot replay file rename. Remove either file and try again"); call mtr.add_suppression("InnoDB: Cannot rename.*because the target file exists"); -call mtr.add_suppression("InnoDB: Found corrupted log"); +call mtr.add_suppression("InnoDB: Log scan aborted at LSN"); # The following are for the --innodb-force-recovery=1 with broken u* tables: call mtr.add_suppression("InnoDB: Header page consists of zero bytes in datafile: .*u1.ibd"); call mtr.add_suppression("InnoDB: The error means the system cannot find the path specified"); diff --git a/mysql-test/suite/innodb/t/log_file_size.test b/mysql-test/suite/innodb/t/log_file_size.test index 179472a45a1..d8edcda28e5 100644 --- a/mysql-test/suite/innodb/t/log_file_size.test +++ b/mysql-test/suite/innodb/t/log_file_size.test @@ -10,9 +10,6 @@ if (`SELECT @@innodb_log_file_size = 1048576`) { } --disable_query_log -call mtr.add_suppression("InnoDB: Resizing redo log"); -call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); -call mtr.add_suppression("InnoDB: New log files created"); call mtr.add_suppression("InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles"); call mtr.add_suppression("syntax error in innodb_log_group_home_dir"); call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); @@ -100,7 +97,7 @@ let SEARCH_PATTERN= InnoDB: innodb_read_only prevents crash recovery; SELECT * FROM t1; let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; +let SEARCH_PATTERN= redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; --source include/search_pattern_in_file.inc --let $restart_parameters= --debug=d,innodb_log_abort_5 @@ -109,7 +106,7 @@ let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; SELECT * FROM t1; let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; +let SEARCH_PATTERN= redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; --source include/search_pattern_in_file.inc --let $restart_parameters= --innodb-read-only @@ -126,7 +123,7 @@ SELECT * FROM t1; let SEARCH_PATTERN= InnoDB: Starting an apply batch of log records; --source include/search_pattern_in_file.inc -let SEARCH_PATTERN= InnoDB: Resizing redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; +let SEARCH_PATTERN= redo log from 3\*[0-9]+ to 2\*[0-9]+ pages; --source include/search_pattern_in_file.inc --let $restart_parameters= --debug=d,innodb_log_abort_7 diff --git a/mysql-test/suite/innodb/t/log_file_size_checkpoint.test b/mysql-test/suite/innodb/t/log_file_size_checkpoint.test index 26e0bdf5e2c..16b71bfd1f4 100644 --- a/mysql-test/suite/innodb/t/log_file_size_checkpoint.test +++ b/mysql-test/suite/innodb/t/log_file_size_checkpoint.test @@ -8,11 +8,6 @@ let $n=250; let $t=veryLongTableNameToCreateMLOG_FILE_NAMErecords; --disable_query_log -call mtr.add_suppression("InnoDB: Resizing redo log"); -call mtr.add_suppression("InnoDB: Starting to delete and rewrite log files"); -call mtr.add_suppression("InnoDB: New log files created"); -FLUSH TABLES; - let $i=$n; while ($i) { diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 20e412b9f13..fe0c8239315 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -89,7 +89,7 @@ this program; if not, write to the Free Software Foundation, Inc., #include "fts0types.h" #include "ibuf0ibuf.h" #include "lock0lock.h" -#include "log0log.h" +#include "log0crypt.h" #include "mem0mem.h" #include "mtr0mtr.h" #include "os0file.h" @@ -3748,14 +3748,42 @@ static const char* deprecated_use_trim /** Update log_checksum_algorithm_ptr with a pointer to the function corresponding to whether checksums are enabled. -@param[in] check whether redo log block checksums are enabled */ -static -void -innodb_log_checksums_func_update(bool check) +@param[in,out] thd client session, or NULL if at startup +@param[in] check whether redo log block checksums are enabled +@return whether redo log block checksums are enabled */ +static inline +bool +innodb_log_checksums_func_update(THD* thd, bool check) { - log_checksum_algorithm_ptr = check - ? log_block_calc_checksum_crc32 - : log_block_calc_checksum_none; + static const char msg[] = "innodb_encrypt_log implies" + " innodb_log_checksums"; + + ut_ad(!thd == !srv_was_started); + + if (!check) { + check = srv_encrypt_log; + if (!check) { + } else if (thd) { + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, + HA_ERR_UNSUPPORTED, msg); + } else { + sql_print_warning(msg); + } + } + + if (thd) { + log_mutex_enter(); + log_checksum_algorithm_ptr = check + ? log_block_calc_checksum_crc32 + : log_block_calc_checksum_none; + log_mutex_exit(); + } else { + log_checksum_algorithm_ptr = check + ? log_block_calc_checksum_crc32 + : log_block_calc_checksum_none; + } + + return(check); } /****************************************************************//** @@ -4244,7 +4272,8 @@ innobase_change_buffering_inited_ok: srv_checksum_algorithm = SRV_CHECKSUM_ALGORITHM_NONE; } - innodb_log_checksums_func_update(innodb_log_checksums); + innodb_log_checksums = innodb_log_checksums_func_update( + NULL, innodb_log_checksums); #ifdef HAVE_LINUX_LARGE_PAGES if ((os_use_large_pages = my_use_large_pages)) { @@ -20229,13 +20258,8 @@ innodb_log_checksums_update( void* var_ptr, const void* save) { - my_bool check = *static_cast(var_ptr) - = *static_cast(save); - - /* Make sure we are the only log user */ - mutex_enter(&log_sys->mutex); - innodb_log_checksums_func_update(check); - mutex_exit(&log_sys->mutex); + *static_cast(var_ptr) = innodb_log_checksums_func_update( + thd, *static_cast(save)); } static SHOW_VAR innodb_status_variables_export[]= { diff --git a/storage/innobase/include/fil0crypt.h b/storage/innobase/include/fil0crypt.h index 72dd6c0d9c9..7185857c039 100644 --- a/storage/innobase/include/fil0crypt.h +++ b/storage/innobase/include/fil0crypt.h @@ -27,6 +27,7 @@ Created 04/01/2015 Jan Lindström #define fil0crypt_h #include "os0event.h" +#include "my_crypt.h" /** * Magic pattern in start of crypt data on page 0 diff --git a/storage/innobase/include/log0crypt.h b/storage/innobase/include/log0crypt.h index 6762b621155..d1282043665 100644 --- a/storage/innobase/include/log0crypt.h +++ b/storage/innobase/include/log0crypt.h @@ -22,27 +22,21 @@ Innodb log encrypt/decrypt Created 11/25/2013 Minli Zhu Modified Jan Lindström jan.lindstrom@mariadb.com +MDEV-11782: Rewritten for MariaDB 10.2 by Marko Mäkelä, MariaDB Corporation. *******************************************************/ #ifndef log0crypt_h #define log0crypt_h -#include "univ.i" -#include "ut0byte.h" -#include "my_crypt.h" +#include "log0log.h" -typedef int Crypt_result; - -/* If true, enable redo log encryption. */ +/** innodb_encrypt_log: whether to encrypt the redo log */ extern my_bool srv_encrypt_log; -/*********************************************************************** -Set next checkpoint's key version to latest one, and generate new key */ +/** Initialize the redo log encryption key. +@return whether the operation succeeded */ UNIV_INTERN -void -log_crypt_set_ver_and_key( -/*======================*/ - ib_uint64_t next_checkpoint_no);/*!< in: next checkpoint no */ - +bool +log_crypt_init(); /*********************************************************************//** Writes the crypto (version, msg and iv) info, which has been used for @@ -64,78 +58,23 @@ log_crypt_101_read_checkpoint(const byte* buf); /** Decrypt a MariaDB 10.1 redo log block. @param[in,out] buf log block @return whether the decryption was successful */ +UNIV_INTERN bool log_crypt_101_read_block(byte* buf); -/*********************************************************************//** -Read the crypto (version, msg and iv) info, which has been used for -log blocks with lsn <= this checkpoint's lsn, from a log header's -checkpoint buf. */ +/** Read the checkpoint crypto (version, msg and iv) info. +@param[in] buf checkpoint buffer +@return whether the operation was successful */ UNIV_INTERN bool -log_crypt_read_checkpoint_buf( -/*===========================*/ - const byte* buf); /*!< in: checkpoint buffer */ +log_crypt_read_checkpoint_buf(const byte* buf); -/******************************************************** -Encrypt one or more log block before it is flushed to disk */ +/** Encrypt or decrypt log blocks. +@param[in,out] buf log blocks to encrypt or decrypt +@param[in] size size of the buffer, in bytes +@param[in] decrypt whether to decrypt instead of encrypting */ UNIV_INTERN void -log_encrypt_before_write( -/*=====================*/ - ib_uint64_t next_checkpoint_no, /*!< in: log group to be flushed */ - byte* block, /*!< in/out: pointer to a log block */ - const ulint size); /*!< in: size of log blocks */ - -/******************************************************** -Decrypt a specified log segment after they are read from a log file to a buffer. -*/ -UNIV_INTERN -void -log_decrypt_after_read( -/*===================*/ - byte* frame, /*!< in/out: log segment */ - const ulint size); /*!< in: log segment size */ - -/* Error codes for crypt info */ -typedef enum { - LOG_UNENCRYPTED = 0, - LOG_CRYPT_KEY_NOT_FOUND = 1, - LOG_DECRYPT_MAYBE_FAILED = 2 -} log_crypt_err_t; - -/******************************************************** -Check is the checkpoint information encrypted. This check -is based on fact has log group crypt info and based -on this crypt info was the key version different from -unencrypted key version. There is no realible way to -distinguish encrypted log block from corrupted log block, -but if log block corruption is found this function is -used to find out if log block is maybe encrypted but -encryption key, key management plugin or encryption -algorithm does not match. -@return TRUE, if log block may be encrypted */ -UNIV_INTERN -ibool -log_crypt_block_maybe_encrypted( -/*============================*/ - const byte* log_block, /*!< in: log block */ - log_crypt_err_t* err_info); /*!< out: error info */ - -/******************************************************** -Print crypt error message to error log */ -UNIV_INTERN -void -log_crypt_print_error( -/*==================*/ - log_crypt_err_t err_info); /*!< out: error info */ - -/*********************************************************************//** -Print checkpoint no from log block and all encryption keys from -checkpoints if they are present. Used for problem analysis. */ -void -log_crypt_print_checkpoint_keys( -/*============================*/ - const byte* log_block); +log_crypt(byte* buf, ulint size, bool decrypt = false); #endif // log0crypt.h diff --git a/storage/innobase/include/log0log.h b/storage/innobase/include/log0log.h index 9ba7ca48edc..ae484b36260 100644 --- a/storage/innobase/include/log0log.h +++ b/storage/innobase/include/log0log.h @@ -37,13 +37,9 @@ Created 12/9/1995 Heikki Tuuri #include "univ.i" #include "dyn0buf.h" #include "sync0rw.h" -#include "log0crypt.h" #include "log0types.h" #include "os0event.h" -/** Redo log buffer */ -struct log_t; - /** Redo log group */ struct log_group_t; @@ -275,15 +271,6 @@ objects! */ void log_check_margins(void); -/******************************************************//** -Reads a specified log segment to a buffer. */ -void -log_group_read_log_seg( -/*===================*/ - byte* buf, /*!< in: buffer where to read */ - log_group_t* group, /*!< in: log group */ - lsn_t start_lsn, /*!< in: read area start */ - lsn_t end_lsn); /*!< in: read area end */ /********************************************************//** Sets the field values in group to correspond to a given lsn. For this function to work, the values must already be correctly initialized to correspond to @@ -449,9 +436,6 @@ void log_mem_free(void); /*==============*/ -/** Redo log system */ -extern log_t* log_sys; - /** Whether to generate and require checksums on the redo log pages */ extern my_bool innodb_log_checksums; @@ -508,6 +492,12 @@ extern my_bool innodb_log_checksums; #define LOG_CHECKPOINT_LSN 8 #define LOG_CHECKPOINT_OFFSET 16 #define LOG_CHECKPOINT_LOG_BUF_SIZE 24 +/** MariaDB 10.2.5 encrypted redo log encryption key version (32 bits)*/ +#define LOG_CHECKPOINT_CRYPT_KEY 32 +/** MariaDB 10.2.5 encrypted redo log random nonce (32 bits) */ +#define LOG_CHECKPOINT_CRYPT_NONCE 36 +/** MariaDB 10.2.5 encrypted redo log random message (MY_AES_BLOCK_SIZE) */ +#define LOG_CHECKPOINT_CRYPT_MESSAGE 40 /** Offsets of a log file header */ /* @{ */ @@ -538,19 +528,11 @@ or the MySQL version that created the redo log file. */ /** The redo log format identifier corresponding to the current format version. Stored in LOG_HEADER_FORMAT. */ #define LOG_HEADER_FORMAT_CURRENT 1 +/** Encrypted MariaDB redo log */ +#define LOG_HEADER_FORMAT_ENCRYPTED (1U<<31) /* @} */ -/** MariaDB Server 10.1 encrypted redo log offsets */ -/* @{ */ -#define LOG_CRYPT_VER (20 + 32 * 9) -#define LOG_CRYPT_MAX_ENTRIES (5) -#define LOG_CRYPT_ENTRY_SIZE (4 + 4 + 2 * MY_AES_BLOCK_SIZE) -#define LOG_CRYPT_SIZE (1 + 1 + \ - (LOG_CRYPT_MAX_ENTRIES * \ - LOG_CRYPT_ENTRY_SIZE)) -/* @} */ - #define LOG_CHECKPOINT_1 OS_FILE_LOG_BLOCK_SIZE /* first checkpoint field in the log header; we write alternately to the @@ -609,6 +591,12 @@ struct log_group_t{ byte* checkpoint_buf; /** list of log groups */ UT_LIST_NODE_T(log_group_t) log_groups; + + /** @return whether the redo log is encrypted */ + bool is_encrypted() const + { + return((format & LOG_HEADER_FORMAT_ENCRYPTED) != 0); + } }; /** Redo log buffer */ @@ -750,8 +738,17 @@ struct log_t{ byte* checkpoint_buf; /*!< checkpoint header is read to this buffer */ /* @} */ + + /** @return whether the redo log is encrypted */ + bool is_encrypted() const + { + return(UT_LIST_GET_FIRST(log_groups)->is_encrypted()); + } }; +/** Redo log system */ +extern log_t* log_sys; + /** Test if flush order mutex is owned. */ #define log_flush_order_mutex_own() \ mutex_own(&log_sys->log_flush_order_mutex) diff --git a/storage/innobase/include/log0recv.h b/storage/innobase/include/log0recv.h index 6b4f817a9d0..24a83ec2ab1 100644 --- a/storage/innobase/include/log0recv.h +++ b/storage/innobase/include/log0recv.h @@ -297,13 +297,4 @@ use these free frames to read in pages when we start applying the log records to the database. */ extern ulint recv_n_pool_free_frames; -/******************************************************//** -Checks the 4-byte checksum to the trailer checksum field of a log -block. */ -bool -log_block_checksum_is_ok( -/*===================================*/ - const byte* block, /*!< in: pointer to a log block */ - bool print_err); /*!< in print error ? */ - #endif diff --git a/storage/innobase/log/log0crypt.cc b/storage/innobase/log/log0crypt.cc index cde9768e78e..dbfda8ab7c4 100644 --- a/storage/innobase/log/log0crypt.cc +++ b/storage/innobase/log/log0crypt.cc @@ -22,55 +22,46 @@ Innodb log encrypt/decrypt Created 11/25/2013 Minli Zhu Google Modified Jan Lindström jan.lindstrom@mariadb.com +MDEV-11782: Rewritten for MariaDB 10.2 by Marko Mäkelä, MariaDB Corporation. *******************************************************/ #include "m_string.h" #include "log0crypt.h" -#include -#include +#include "my_crypt.h" -#include "log0log.h" +#include "log0crypt.h" #include "srv0start.h" // for srv_start_lsn #include "log0recv.h" // for recv_sys -#include "ha_prototypes.h" // IB_LOG_ - -#include "my_crypt.h" - -/* Used for debugging */ -// #define DEBUG_CRYPT 1 -#define UNENCRYPTED_KEY_VER 0 - -/* If true, enable redo log encryption. */ -extern my_bool srv_encrypt_log; - - -#include // std::sort -#include - -/* If true, enable redo log encryption. */ -UNIV_INTERN my_bool srv_encrypt_log = FALSE; -/* - Sub system type for InnoDB redo log crypto. - Set and used to validate crypto msg. -*/ -static const byte redo_log_purpose_byte = 0x02; +/** innodb_encrypt_log: whether to encrypt the redo log */ +my_bool srv_encrypt_log; +/** Redo log encryption key ID */ #define LOG_DEFAULT_ENCRYPTION_KEY 1 -/* - Store this many keys into each checkpoint info -*/ -static const size_t kMaxSavedKeys = LOG_CRYPT_MAX_ENTRIES; +typedef union { + uint32_t words[MY_AES_BLOCK_SIZE / sizeof(uint32_t)]; + byte bytes[MY_AES_BLOCK_SIZE]; +} aes_block_t; struct crypt_info_t { - ib_uint64_t checkpoint_no; /*!< checkpoint no */ + ulint checkpoint_no; /*!< checkpoint no; 32 bits */ uint key_version; /*!< mysqld key version */ - byte crypt_msg[MY_AES_BLOCK_SIZE]; - byte crypt_key[MY_AES_BLOCK_SIZE]; - byte crypt_nonce[MY_AES_BLOCK_SIZE]; + /** random string for encrypting the key */ + aes_block_t crypt_msg; + /** the secret key */ + aes_block_t crypt_key; + /** a random string for the per-block initialization vector */ + union { + uint32_t word; + byte bytes[4]; + } crypt_nonce; }; -static std::deque crypt_info; +/** The crypt info */ +static crypt_info_t info; + +/** Crypt info when upgrading from 10.1 */ +static crypt_info_t infos[5]; /*********************************************************************//** Get a log block's start lsn. @@ -93,366 +84,167 @@ Get crypt info from checkpoint. @return a crypt info or NULL if not present. */ static const crypt_info_t* -get_crypt_info( -/*===========*/ - ib_uint64_t checkpoint_no) +get_crypt_info(ulint checkpoint_no) { - size_t items = crypt_info.size(); - /* a log block only stores 4-bytes of checkpoint no */ checkpoint_no &= 0xFFFFFFFF; - for (size_t i = 0; i < items; i++) { - struct crypt_info_t* it = &crypt_info[i]; + for (unsigned i = 0; i < 5; i++) { + const crypt_info_t* it = &infos[i]; - if (it->checkpoint_no == checkpoint_no) { + if (it->key_version && it->checkpoint_no == checkpoint_no) { return it; } } /* If checkpoint contains more than one key and we did not find the correct one use the first one. */ - if (items) { - return (&crypt_info[0]); - } - - return NULL; + return infos; } -/*********************************************************************//** -Get crypt info from log block -@return a crypt info or NULL if not present. */ -static -const crypt_info_t* -get_crypt_info( -/*===========*/ - const byte* log_block) -{ - ib_uint64_t checkpoint_no = log_block_get_checkpoint_no(log_block); - return get_crypt_info(checkpoint_no); -} - -/*********************************************************************//** -Print checkpoint no from log block and all encryption keys from -checkpoints if they are present. Used for problem analysis. */ +/** Encrypt or decrypt log blocks. +@param[in,out] buf log blocks to encrypt or decrypt +@param[in] size size of the buffer, in bytes +@param[in] decrypt whether to decrypt instead of encrypting */ +UNIV_INTERN void -log_crypt_print_checkpoint_keys( -/*============================*/ - const byte* log_block) +log_crypt(byte* buf, ulint size, bool decrypt) { - ib_uint64_t checkpoint_no = log_block_get_checkpoint_no(log_block); + ut_ad(size % OS_FILE_LOG_BLOCK_SIZE == 0); + ut_a(info.key_version); - if (crypt_info.size()) { - ib::info() << "Redo log checkpoint encryption: " << checkpoint_no << " [ chk key ]: "; - for (size_t i = 0; i < crypt_info.size(); i++) { - struct crypt_info_t* it = &crypt_info[i]; - ib::info() << "[" << it->checkpoint_no - << "," << it->key_version - << "]"; - } - } -} - -/*********************************************************************//** -Call AES CTR to encrypt/decrypt log blocks. */ -static -Crypt_result -log_blocks_crypt( -/*=============*/ - const byte* block, /*!< in: blocks before encrypt/decrypt*/ - ulint size, /*!< in: size of block */ - byte* dst_block, /*!< out: blocks after encrypt/decrypt */ - int what, /*!< in: encrypt or decrypt*/ - const crypt_info_t* crypt_info) /*!< in: crypt info or NULL */ -{ - byte *log_block = (byte*)block; - Crypt_result rc = MY_AES_OK; uint dst_len; - byte aes_ctr_counter[MY_AES_BLOCK_SIZE]; - byte is_encrypt= what == ENCRYPTION_FLAG_ENCRYPT; - lsn_t lsn = is_encrypt ? log_sys->lsn : srv_start_lsn; + uint32_t aes_ctr_iv[MY_AES_BLOCK_SIZE / sizeof(uint32_t)]; + compile_time_assert(sizeof(uint32_t) == 4); - const uint src_len = OS_FILE_LOG_BLOCK_SIZE - LOG_BLOCK_HDR_SIZE; - for (ulint i = 0; i < size ; i += OS_FILE_LOG_BLOCK_SIZE) { - ulint log_block_no = log_block_get_hdr_no(log_block); - lsn_t log_block_start_lsn = log_block_get_start_lsn( - lsn, log_block_no); +#define LOG_CRYPT_HDR_SIZE 4 - const crypt_info_t* info = crypt_info == NULL ? get_crypt_info(log_block) : - crypt_info; -#ifdef DEBUG_CRYPT - fprintf(stderr, - "%s %lu chkpt: %lu key: %u lsn: %lu\n", - is_encrypt ? "crypt" : "decrypt", - log_block_no, - log_block_get_checkpoint_no(log_block), - info ? info->key_version : 0, - log_block_start_lsn); + for (const byte* const end = buf + size; buf != end; + buf += OS_FILE_LOG_BLOCK_SIZE) { + byte dst[OS_FILE_LOG_BLOCK_SIZE - LOG_CRYPT_HDR_SIZE]; + const ulint log_block_no = log_block_get_hdr_no(buf); + + /* The log block number is not encrypted. */ + *aes_ctr_iv = +#ifdef WORDS_BIGENDIAN + ~LOG_BLOCK_FLUSH_BIT_MASK +#else + ~(LOG_BLOCK_FLUSH_BIT_MASK >> 24) #endif - /* If no key is found from checkpoint assume the log_block - to be unencrypted. If checkpoint contains the encryption key - compare log_block current checksum, if checksum matches, - block can't be encrypted. */ - if (info == NULL || - info->key_version == UNENCRYPTED_KEY_VER || - (log_block_checksum_is_ok(log_block, false) && - what == ENCRYPTION_FLAG_DECRYPT)) { - memcpy(dst_block, log_block, OS_FILE_LOG_BLOCK_SIZE); - goto next; - } + & (*reinterpret_cast(dst) + = *reinterpret_cast( + buf + LOG_BLOCK_HDR_NO)); +#if LOG_BLOCK_HDR_NO + 4 != LOG_CRYPT_HDR_SIZE +# error "LOG_BLOCK_HDR_NO has been moved; redo log format affected!" +#endif + aes_ctr_iv[1] = info.crypt_nonce.word; + mach_write_to_8(reinterpret_cast(aes_ctr_iv + 2), + log_block_get_start_lsn( + decrypt ? srv_start_lsn : log_sys->lsn, + log_block_no)); - ut_ad(what == ENCRYPTION_FLAG_DECRYPT ? !log_block_checksum_is_ok(log_block, false) : - log_block_checksum_is_ok(log_block, false)); - - // Assume log block header is not encrypted - memcpy(dst_block, log_block, LOG_BLOCK_HDR_SIZE); - - // aes_ctr_counter = nonce(3-byte) + start lsn to a log block - // (8-byte) + lbn (4-byte) + abn - // (1-byte, only 5 bits are used). "+" means concatenate. - bzero(aes_ctr_counter, MY_AES_BLOCK_SIZE); - memcpy(aes_ctr_counter, info->crypt_nonce, 3); - mach_write_to_8(aes_ctr_counter + 3, log_block_start_lsn); - mach_write_to_4(aes_ctr_counter + 11, log_block_no); - bzero(aes_ctr_counter + 15, 1); - - int rc; - rc = encryption_crypt(log_block + LOG_BLOCK_HDR_SIZE, src_len, - dst_block + LOG_BLOCK_HDR_SIZE, &dst_len, - (unsigned char*)(info->crypt_key), 16, - aes_ctr_counter, MY_AES_BLOCK_SIZE, - what | ENCRYPTION_FLAG_NOPAD, - LOG_DEFAULT_ENCRYPTION_KEY, - info->key_version); + int rc = encryption_crypt( + buf + LOG_CRYPT_HDR_SIZE, sizeof dst, dst, &dst_len, + const_cast(info.crypt_key.bytes), + sizeof info.crypt_key, + reinterpret_cast(aes_ctr_iv), sizeof aes_ctr_iv, + decrypt + ? ENCRYPTION_FLAG_DECRYPT | ENCRYPTION_FLAG_NOPAD + : ENCRYPTION_FLAG_ENCRYPT | ENCRYPTION_FLAG_NOPAD, + LOG_DEFAULT_ENCRYPTION_KEY, + info.key_version); ut_a(rc == MY_AES_OK); - ut_a(dst_len == src_len); -next: - log_block += OS_FILE_LOG_BLOCK_SIZE; - dst_block += OS_FILE_LOG_BLOCK_SIZE; - } + ut_a(dst_len == sizeof dst); + if (decrypt) { + std::ostringstream s; + ut_print_buf_hex(s, buf + LOG_CRYPT_HDR_SIZE, + OS_FILE_LOG_BLOCK_SIZE + - LOG_CRYPT_HDR_SIZE); + ib::info() << "S: " << s.str(); + std::ostringstream d; + ut_print_buf_hex(d, dst, + OS_FILE_LOG_BLOCK_SIZE + - LOG_CRYPT_HDR_SIZE); + ib::info() << "c: " << d.str(); + } - return rc; + memcpy(buf + LOG_CRYPT_HDR_SIZE, dst, sizeof dst); + } } -/*********************************************************************//** -Generate crypt key from crypt msg. -@return true if successfull, false if not. */ +/** Generate crypt key from crypt msg. +@param[in,out] info encryption key +@param[in] upgrade whether to use the key in MariaDB 10.1 format +@return whether the operation was successful */ static bool -init_crypt_key( -/*===========*/ - crypt_info_t* info) /*< in/out: crypt info */ +init_crypt_key(crypt_info_t* info, bool upgrade = false) { - if (info->key_version == UNENCRYPTED_KEY_VER) { - memset(info->crypt_key, 0, sizeof(info->crypt_key)); - memset(info->crypt_msg, 0, sizeof(info->crypt_msg)); - memset(info->crypt_nonce, 0, sizeof(info->crypt_nonce)); - return true; + byte mysqld_key[MY_AES_MAX_KEY_LENGTH]; + uint keylen = sizeof mysqld_key; + + compile_time_assert(16 == sizeof info->crypt_key); + + if (uint rc = encryption_key_get(LOG_DEFAULT_ENCRYPTION_KEY, + info->key_version, mysqld_key, + &keylen)) { + ib::error() + << "Obtaining redo log encryption key version " + << info->key_version << " failed (" << rc + << "). Maybe the key or the required encryption " + << " key management plugin was not found."; + return false; } - byte mysqld_key[MY_AES_MAX_KEY_LENGTH] = {0}; - uint keylen= sizeof(mysqld_key); - uint rc; - - rc = encryption_key_get(LOG_DEFAULT_ENCRYPTION_KEY, info->key_version, mysqld_key, &keylen); - - if (rc) { - ib::error() - << "Redo log crypto: getting mysqld crypto key " - << "from key version failed err = " << rc - << " Reason could be that requested key_version " - << info->key_version - << "is not found or required encryption " - << " key management is not found."; - return false; + if (upgrade) { + while (keylen < sizeof mysqld_key) { + mysqld_key[keylen++] = 0; + } } uint dst_len; - int err= my_aes_crypt(MY_AES_ECB, ENCRYPTION_FLAG_NOPAD|ENCRYPTION_FLAG_ENCRYPT, - info->crypt_msg, sizeof(info->crypt_msg), //src, srclen - info->crypt_key, &dst_len, //dst, &dstlen - (unsigned char*)&mysqld_key, sizeof(mysqld_key), - NULL, 0); + int err= my_aes_crypt(MY_AES_ECB, + ENCRYPTION_FLAG_NOPAD | ENCRYPTION_FLAG_ENCRYPT, + info->crypt_msg.bytes, sizeof info->crypt_msg, + info->crypt_key.bytes, &dst_len, + mysqld_key, keylen, NULL, 0); if (err != MY_AES_OK || dst_len != MY_AES_BLOCK_SIZE) { - fprintf(stderr, - "\nInnodb redo log crypto: getting redo log crypto key " - "failed err = %d len = %u.\n", err, dst_len); + ib::error() << "Getting redo log crypto key failed: err = " + << err << ", len = " << dst_len; return false; } return true; } -/*********************************************************************//** -Compare function for checkpoint numbers -@return true if first checkpoint is larger than second one */ -static +/** Initialize the redo log encryption key. +@return whether the operation succeeded */ +UNIV_INTERN bool -mysort(const crypt_info_t& i, - const crypt_info_t& j) +log_crypt_init() { - return i.checkpoint_no > j.checkpoint_no; -} + ut_ad(log_mutex_own()); + ut_ad(log_sys->is_encrypted()); -/*********************************************************************//** -Add crypt info to set if it is not already present -@return true if successfull, false if not- */ -static -bool -add_crypt_info( -/*===========*/ - crypt_info_t* info, /*!< in: crypt info */ - bool checkpoint_read)/*!< in: do we read checkpoint */ -{ - const crypt_info_t* found=NULL; - /* so that no one is searching array while we modify it */ - ut_ad(mutex_own(&(log_sys->mutex))); + info.key_version = encryption_key_get_latest_version( + LOG_DEFAULT_ENCRYPTION_KEY); - found = get_crypt_info(info->checkpoint_no); - - /* If one crypt info is found then we add a new one only if we - are reading checkpoint from the log. New checkpoints will always - use the first created crypt info. */ - if (found != NULL && - ( found->checkpoint_no == info->checkpoint_no || !checkpoint_read)) { - // already present... - return true; - } - - if (!init_crypt_key(info)) { + if (info.key_version == ENCRYPTION_KEY_VERSION_INVALID) { + ib::error() << "innodb_encrypt_log: cannot get key version"; + info.key_version = 0; return false; } - crypt_info.push_back(*info); - - /* a log block only stores 4-bytes of checkpoint no */ - crypt_info.back().checkpoint_no &= 0xFFFFFFFF; - - // keep keys sorted, assuming that last added key will be used most - std::sort(crypt_info.begin(), crypt_info.end(), mysort); - - return true; -} - -/*********************************************************************//** -Encrypt log blocks. */ -UNIV_INTERN -Crypt_result -log_blocks_encrypt( -/*===============*/ - const byte* block, /*!< in: blocks before encryption */ - const ulint size, /*!< in: size of blocks, must be multiple of a log block */ - byte* dst_block) /*!< out: blocks after encryption */ -{ - return log_blocks_crypt(block, size, dst_block, ENCRYPTION_FLAG_ENCRYPT, NULL); -} - -/*********************************************************************//** -Set next checkpoint's key version to latest one, and generate current -key. Key version 0 means no encryption. */ -UNIV_INTERN -void -log_crypt_set_ver_and_key( -/*======================*/ - ib_uint64_t next_checkpoint_no) -{ - crypt_info_t info; - info.checkpoint_no = next_checkpoint_no; - - if (!srv_encrypt_log) { - info.key_version = UNENCRYPTED_KEY_VER; - } else { - info.key_version = encryption_key_get_latest_version(LOG_DEFAULT_ENCRYPTION_KEY); + if (my_random_bytes(info.crypt_msg.bytes, sizeof info.crypt_msg) + != MY_AES_OK + || my_random_bytes(info.crypt_nonce.bytes, sizeof info.crypt_nonce) + != MY_AES_OK) { + ib::error() << "innodb_encrypt_log: my_random_bytes() failed"; + return false; } - if (info.key_version == UNENCRYPTED_KEY_VER) { - memset(info.crypt_msg, 0, sizeof(info.crypt_msg)); - memset(info.crypt_nonce, 0, sizeof(info.crypt_nonce)); - } else { - if (my_random_bytes(info.crypt_msg, MY_AES_BLOCK_SIZE) != MY_AES_OK) { - ib::error() - << "Redo log crypto: generate " - << MY_AES_BLOCK_SIZE - << "-byte random number as crypto msg failed."; - ut_error; - } - - if (my_random_bytes(info.crypt_nonce, MY_AES_BLOCK_SIZE) != MY_AES_OK) { - ib::error() - << "Redo log crypto: generate " - << MY_AES_BLOCK_SIZE - << "-byte random number as AES_CTR nonce failed."; - ut_error; - } - - } - - add_crypt_info(&info, false); -} - -/******************************************************** -Encrypt one or more log block before it is flushed to disk */ -UNIV_INTERN -void -log_encrypt_before_write( -/*=====================*/ - ib_uint64_t next_checkpoint_no, /*!< in: log group to be flushed */ - byte* block, /*!< in/out: pointer to a log block */ - const ulint size) /*!< in: size of log blocks */ -{ - ut_ad(size % OS_FILE_LOG_BLOCK_SIZE == 0); - - const crypt_info_t* info = get_crypt_info(next_checkpoint_no); - if (info == NULL) { - return; - } - - /* If the key is not encrypted or user has requested not to - encrypt, do not change log block. */ - if (info->key_version == UNENCRYPTED_KEY_VER || !srv_encrypt_log) { - return; - } - - byte* dst_frame = (byte*)malloc(size); - - //encrypt log blocks content - Crypt_result result = log_blocks_crypt(block, size, dst_frame, ENCRYPTION_FLAG_ENCRYPT, NULL); - - if (result == MY_AES_OK) { - ut_ad(block[0] == dst_frame[0]); - memcpy(block, dst_frame, size); - } - free(dst_frame); - - if (unlikely(result != MY_AES_OK)) { - ut_error; - } -} - -/******************************************************** -Decrypt a specified log segment after they are read from a log file to a buffer. -*/ -void -log_decrypt_after_read( -/*===================*/ - byte* frame, /*!< in/out: log segment */ - const ulint size) /*!< in: log segment size */ -{ - ut_ad(size % OS_FILE_LOG_BLOCK_SIZE == 0); - byte* dst_frame = (byte*)malloc(size); - - // decrypt log blocks content - Crypt_result result = log_blocks_crypt(frame, size, dst_frame, ENCRYPTION_FLAG_DECRYPT, NULL); - - if (result == MY_AES_OK) { - memcpy(frame, dst_frame, size); - } - free(dst_frame); - - if (unlikely(result != MY_AES_OK)) { - ut_error; - } + return init_crypt_key(&info); } /** Read the MariaDB 10.1 checkpoint crypto (version, msg and iv) info. @@ -467,13 +259,14 @@ log_crypt_101_read_checkpoint(const byte* buf) const size_t n = *buf++ == 2 ? std::min(unsigned(*buf++), 5U) : 0; for (size_t i = 0; i < n; i++) { - struct crypt_info_t info; + struct crypt_info_t& info = infos[i]; info.checkpoint_no = mach_read_from_4(buf); info.key_version = mach_read_from_4(buf + 4); - memcpy(info.crypt_msg, buf + 8, MY_AES_BLOCK_SIZE); - memcpy(info.crypt_nonce, buf + 24, MY_AES_BLOCK_SIZE); + memcpy(info.crypt_msg.bytes, buf + 8, sizeof info.crypt_msg); + memcpy(info.crypt_nonce.bytes, buf + 24, + sizeof info.crypt_nonce); - if (!add_crypt_info(&info, true)) { + if (!init_crypt_key(&info, true)) { return false; } buf += 4 + 4 + 2 * MY_AES_BLOCK_SIZE; @@ -491,7 +284,8 @@ log_crypt_101_read_block(byte* buf) { ut_ad(log_block_calc_checksum_format_0(buf) != log_block_get_checksum(buf)); - const crypt_info_t* info = get_crypt_info(buf); + const crypt_info_t* info = get_crypt_info( + log_block_get_checkpoint_no(buf)); if (!info || info->key_version == 0) { return false; @@ -499,27 +293,27 @@ log_crypt_101_read_block(byte* buf) byte dst[OS_FILE_LOG_BLOCK_SIZE]; uint dst_len; - byte aes_ctr_counter[MY_AES_BLOCK_SIZE]; + byte aes_ctr_iv[MY_AES_BLOCK_SIZE]; const uint src_len = OS_FILE_LOG_BLOCK_SIZE - LOG_BLOCK_HDR_SIZE; ulint log_block_no = log_block_get_hdr_no(buf); - lsn_t log_block_start_lsn = log_block_get_start_lsn( - srv_start_lsn, log_block_no); /* The log block header is not encrypted. */ memcpy(dst, buf, LOG_BLOCK_HDR_SIZE); - memcpy(aes_ctr_counter, info->crypt_nonce, 3); - mach_write_to_8(aes_ctr_counter + 3, log_block_start_lsn); - mach_write_to_4(aes_ctr_counter + 11, log_block_no); - aes_ctr_counter[15] = 0; + memcpy(aes_ctr_iv, info->crypt_nonce.bytes, 3); + mach_write_to_8(aes_ctr_iv + 3, + log_block_get_start_lsn(srv_start_lsn, log_block_no)); + memcpy(aes_ctr_iv + 11, buf, 4); + aes_ctr_iv[11] &= ~(LOG_BLOCK_FLUSH_BIT_MASK >> 24); + aes_ctr_iv[15] = 0; int rc = encryption_crypt(buf + LOG_BLOCK_HDR_SIZE, src_len, dst + LOG_BLOCK_HDR_SIZE, &dst_len, - const_cast(info->crypt_key), + const_cast(info->crypt_key.bytes), MY_AES_BLOCK_SIZE, - aes_ctr_counter, MY_AES_BLOCK_SIZE, + aes_ctr_iv, MY_AES_BLOCK_SIZE, ENCRYPTION_FLAG_DECRYPT | ENCRYPTION_FLAG_NOPAD, LOG_DEFAULT_ENCRYPTION_KEY, @@ -535,184 +329,47 @@ log_crypt_101_read_block(byte* buf) return true; } -/*********************************************************************//** -Writes the crypto (version, msg and iv) info, which has been used for -log blocks with lsn <= this checkpoint's lsn, to a log header's -checkpoint buf. */ +/** Add the encryption information to a redo log checkpoint buffer. +@param[in,out] buf checkpoint buffer */ UNIV_INTERN void -log_crypt_write_checkpoint_buf( -/*===========================*/ - byte* buf) /*!< in/out: checkpoint buffer */ +log_crypt_write_checkpoint_buf(byte* buf) { - byte *save = buf; + ut_ad(info.key_version); + compile_time_assert(16 == sizeof info.crypt_msg); + compile_time_assert(LOG_CHECKPOINT_CRYPT_MESSAGE + - LOG_CHECKPOINT_CRYPT_NONCE + == sizeof info.crypt_nonce); - // Only write kMaxSavedKeys (sort keys to remove oldest) - std::sort(crypt_info.begin(), crypt_info.end(), mysort); - while (crypt_info.size() > kMaxSavedKeys) { - crypt_info.pop_back(); - } - - bool encrypted = false; - for (size_t i = 0; i < crypt_info.size(); i++) { - const crypt_info_t & it = crypt_info[i]; - if (it.key_version != UNENCRYPTED_KEY_VER) { - encrypted = true; - break; - } - } - - if (encrypted == false) { - // if no encryption is inuse then zero out - // crypt data for upward/downward compability - memset(buf + LOG_CRYPT_VER, 0, LOG_CRYPT_SIZE); - return; - } - - ib_uint64_t checkpoint_no = mach_read_from_8(buf + LOG_CHECKPOINT_NO); - buf += LOG_CRYPT_VER; - - mach_write_to_1(buf + 0, redo_log_purpose_byte); - mach_write_to_1(buf + 1, crypt_info.size()); - buf += 2; - for (size_t i = 0; i < crypt_info.size(); i++) { - struct crypt_info_t* it = &crypt_info[i]; - mach_write_to_4(buf + 0, static_cast(it->checkpoint_no)); - mach_write_to_4(buf + 4, it->key_version); - memcpy(buf + 8, it->crypt_msg, MY_AES_BLOCK_SIZE); - memcpy(buf + 24, it->crypt_nonce, MY_AES_BLOCK_SIZE); - buf += LOG_CRYPT_ENTRY_SIZE; - } - -#ifdef DEBUG_CRYPT - fprintf(stderr, "write chk: %lu [ chk key ]: ", checkpoint_no); - for (size_t i = 0; i < crypt_info.size(); i++) { - struct crypt_info_t* it = &crypt_info[i]; - fprintf(stderr, "[ %lu %u ] ", - it->checkpoint_no, - it->key_version); - } - fprintf(stderr, "\n"); -#else - (void)checkpoint_no; // unused variable -#endif - ut_a((ulint)(buf - save) <= OS_FILE_LOG_BLOCK_SIZE); + memcpy(buf + LOG_CHECKPOINT_CRYPT_MESSAGE, info.crypt_msg.bytes, + sizeof info.crypt_msg); + memcpy(buf + LOG_CHECKPOINT_CRYPT_NONCE, info.crypt_nonce.bytes, + sizeof info.crypt_nonce); + mach_write_to_4(buf + LOG_CHECKPOINT_CRYPT_KEY, info.key_version); } -/*********************************************************************//** -Read the crypto (version, msg and iv) info, which has been used for -log blocks with lsn <= this checkpoint's lsn, from a log header's -checkpoint buf. */ +/** Read the checkpoint crypto (version, msg and iv) info. +@param[in] buf checkpoint buffer +@return whether the operation was successful */ UNIV_INTERN bool -log_crypt_read_checkpoint_buf( -/*===========================*/ - const byte* buf) { /*!< in: checkpoint buffer */ +log_crypt_read_checkpoint_buf(const byte* buf) +{ + info.checkpoint_no = mach_read_from_4(buf + (LOG_CHECKPOINT_NO + 4)); + info.key_version = mach_read_from_4(buf + LOG_CHECKPOINT_CRYPT_KEY); - buf += LOG_CRYPT_VER; - - byte scheme = buf[0]; - if (scheme != redo_log_purpose_byte) { - return true; - } - buf++; - size_t n = buf[0]; - buf++; - - for (size_t i = 0; i < n; i++) { - struct crypt_info_t info; - info.checkpoint_no = mach_read_from_4(buf + 0); - info.key_version = mach_read_from_4(buf + 4); - memcpy(info.crypt_msg, buf + 8, MY_AES_BLOCK_SIZE); - memcpy(info.crypt_nonce, buf + 24, MY_AES_BLOCK_SIZE); - - if (!add_crypt_info(&info, true)) { - return false; - } - buf += LOG_CRYPT_ENTRY_SIZE; - } - -#ifdef DEBUG_CRYPT - fprintf(stderr, "read [ chk key ]: "); - for (size_t i = 0; i < crypt_info.size(); i++) { - struct crypt_info_t* it = &crypt_info[i]; - fprintf(stderr, "[ %lu %u ] ", - it->checkpoint_no, - it->key_version); - } - fprintf(stderr, "\n"); +#if MY_AES_BLOCK_SIZE != 16 +# error "MY_AES_BLOCK_SIZE != 16; redo log checkpoint format affected" #endif - return true; -} - -/******************************************************** -Check is the checkpoint information encrypted. This check -is based on fact has log group crypt info and based -on this crypt info was the key version different from -unencrypted key version. There is no realible way to -distinguish encrypted log block from corrupted log block, -but if log block corruption is found this function is -used to find out if log block is maybe encrypted but -encryption key, key management plugin or encryption -algorithm does not match. -@return TRUE, if log block may be encrypted */ -UNIV_INTERN -ibool -log_crypt_block_maybe_encrypted( -/*============================*/ - const byte* log_block, /*!< in: log block */ - log_crypt_err_t* err_info) /*!< out: error info */ -{ - ibool maybe_encrypted = FALSE; - const crypt_info_t* crypt_info; - - *err_info = LOG_UNENCRYPTED; - crypt_info = get_crypt_info(log_block); - - if (crypt_info && - crypt_info->key_version != UNENCRYPTED_KEY_VER) { - byte mysqld_key[MY_AES_BLOCK_SIZE] = {0}; - uint keylen= sizeof(mysqld_key); - - /* Log block contains crypt info and based on key - version block could be encrypted. */ - *err_info = LOG_DECRYPT_MAYBE_FAILED; - maybe_encrypted = TRUE; - - if (encryption_key_get(LOG_DEFAULT_ENCRYPTION_KEY, - crypt_info->key_version, mysqld_key, &keylen)) { - *err_info = LOG_CRYPT_KEY_NOT_FOUND; - } - } - - return (maybe_encrypted); -} - -/******************************************************** -Print crypt error message to error log */ -UNIV_INTERN -void -log_crypt_print_error( -/*==================*/ - log_crypt_err_t err_info) /*!< out: error info */ -{ - switch(err_info) { - case LOG_CRYPT_KEY_NOT_FOUND: - ib::error() - << "Redo log crypto: getting mysqld crypto key " - << "from key version failed. Reason could be that " - << "requested key version is not found or required " - << "encryption key management plugin is not found."; - break; - case LOG_DECRYPT_MAYBE_FAILED: - ib::error() - << "Redo log crypto: failed to decrypt log block. " - << "Reason could be that requested key version is " - << "not found, required encryption key management " - << "plugin is not found or configured encryption " - << "algorithm and/or method does not match."; - break; - default: - ut_error; /* Real bug */ - } + compile_time_assert(16 == sizeof info.crypt_msg); + compile_time_assert(LOG_CHECKPOINT_CRYPT_MESSAGE + - LOG_CHECKPOINT_CRYPT_NONCE + == sizeof info.crypt_nonce); + + memcpy(info.crypt_msg.bytes, buf + LOG_CHECKPOINT_CRYPT_MESSAGE, + sizeof info.crypt_msg); + memcpy(info.crypt_nonce.bytes, buf + LOG_CHECKPOINT_CRYPT_NONCE, + sizeof info.crypt_nonce); + + return init_crypt_key(&info); } diff --git a/storage/innobase/log/log0log.cc b/storage/innobase/log/log0log.cc index 1fe87f1250e..ca052138dd9 100644 --- a/storage/innobase/log/log0log.cc +++ b/storage/innobase/log/log0log.cc @@ -40,6 +40,7 @@ Created 12/9/1995 Heikki Tuuri #include "log0log.ic" #endif +#include "log0crypt.h" #include "mem0mem.h" #include "buf0buf.h" #include "buf0flu.h" @@ -56,9 +57,6 @@ Created 12/9/1995 Heikki Tuuri #include "srv0mon.h" #include "sync0sync.h" -/* Used for debugging */ -// #define DEBUG_CRYPT 1 - /* General philosophy of InnoDB redo-logs: @@ -898,7 +896,9 @@ log_group_init( group->id = id; group->n_files = n_files; - group->format = LOG_HEADER_FORMAT_CURRENT; + group->format = srv_encrypt_log + ? LOG_HEADER_FORMAT_CURRENT | LOG_HEADER_FORMAT_ENCRYPTED + : LOG_HEADER_FORMAT_CURRENT; group->file_size = file_size; group->space_id = space_id; group->state = LOG_GROUP_OK; @@ -987,11 +987,13 @@ log_group_file_header_flush( ut_ad(!recv_no_log_write); ut_ad(group->id == 0); ut_a(nth_file < group->n_files); + ut_ad((group->format & ~LOG_HEADER_FORMAT_ENCRYPTED) + == LOG_HEADER_FORMAT_CURRENT); buf = *(group->file_header_bufs + nth_file); memset(buf, 0, OS_FILE_LOG_BLOCK_SIZE); - mach_write_to_4(buf + LOG_HEADER_FORMAT, LOG_HEADER_FORMAT_CURRENT); + mach_write_to_4(buf + LOG_HEADER_FORMAT, group->format); mach_write_to_8(buf + LOG_HEADER_START_LSN, start_lsn); strcpy(reinterpret_cast(buf) + LOG_HEADER_CREATOR, LOG_HEADER_CREATOR_CURRENT); @@ -1115,6 +1117,10 @@ loop: || log_block_get_hdr_no(buf) == log_block_convert_lsn_to_no(start_lsn)); + if (log_sys->is_encrypted()) { + log_crypt(buf, write_len); + } + /* Calculate the checksums for each log block and write them to the trailer fields of the log blocks */ @@ -1135,8 +1141,6 @@ loop: ut_a(next_offset / UNIV_PAGE_SIZE <= ULINT_MAX); - log_encrypt_before_write(log_sys->next_checkpoint_no, - buf, write_len); const ulint page_no = (ulint) (next_offset / univ_page_size.physical()); @@ -1625,7 +1629,9 @@ log_group_checkpoint( mach_write_to_8(buf + LOG_CHECKPOINT_NO, log_sys->next_checkpoint_no); mach_write_to_8(buf + LOG_CHECKPOINT_LSN, log_sys->next_checkpoint_lsn); - log_crypt_write_checkpoint_buf(buf); + if (log_sys->is_encrypted()) { + log_crypt_write_checkpoint_buf(buf); + } lsn_offset = log_group_calc_lsn_offset(log_sys->next_checkpoint_lsn, group); @@ -1689,30 +1695,16 @@ log_group_header_read( /** Write checkpoint info to the log header and invoke log_mutex_exit(). @param[in] sync whether to wait for the write to complete */ void -log_write_checkpoint_info( - bool sync) +log_write_checkpoint_info(bool sync) { - log_group_t* group; - ut_ad(log_mutex_own()); + ut_ad(!srv_read_only_mode); - if (!srv_read_only_mode) { - for (group = UT_LIST_GET_FIRST(log_sys->log_groups); - group; - group = UT_LIST_GET_NEXT(log_groups, group)) { + for (log_group_t* group = UT_LIST_GET_FIRST(log_sys->log_groups); + group; + group = UT_LIST_GET_NEXT(log_groups, group)) { - log_group_checkpoint(group); - } - } - - /* generate key version and key used to encrypt future blocks, - * - * NOTE: the +1 is as the next_checkpoint_no will be updated once - * the checkpoint info has been written and THEN blocks will be encrypted - * with new key - */ - if (srv_encrypt_log) { - log_crypt_set_ver_and_key(log_sys->next_checkpoint_no + 1); + log_group_checkpoint(group); } log_mutex_exit(); @@ -1991,78 +1983,6 @@ loop: } } -/******************************************************//** -Reads a specified log segment to a buffer. */ -void -log_group_read_log_seg( -/*===================*/ - byte* buf, /*!< in: buffer where to read */ - log_group_t* group, /*!< in: log group */ - lsn_t start_lsn, /*!< in: read area start */ - lsn_t end_lsn) /*!< in: read area end */ -{ - ulint len; - lsn_t source_offset; - - ut_ad(log_mutex_own()); - -loop: - source_offset = log_group_calc_lsn_offset(start_lsn, group); - - ut_a(end_lsn - start_lsn <= ULINT_MAX); - len = (ulint) (end_lsn - start_lsn); - - ut_ad(len != 0); - - if ((source_offset % group->file_size) + len > group->file_size) { - - /* If the above condition is true then len (which is ulint) - is > the expression below, so the typecast is ok */ - len = (ulint) (group->file_size - - (source_offset % group->file_size)); - } - - log_sys->n_log_ios++; - - MONITOR_INC(MONITOR_LOG_IO); - - ut_a(source_offset / UNIV_PAGE_SIZE <= ULINT_MAX); - - const ulint page_no - = (ulint) (source_offset / univ_page_size.physical()); - - fil_io(IORequestLogRead, true, - page_id_t(group->space_id, page_no), - univ_page_size, - (ulint) (source_offset % univ_page_size.physical()), - len, buf, NULL); - -#ifdef DEBUG_CRYPT - fprintf(stderr, "BEFORE DECRYPT: block: %lu checkpoint: %lu %.8lx %.8lx offset %lu\n", - log_block_get_hdr_no(buf), - log_block_get_checkpoint_no(buf), - log_block_calc_checksum(buf), - log_block_get_checksum(buf), source_offset); -#endif - - log_decrypt_after_read(buf, len); - -#ifdef DEBUG_CRYPT - fprintf(stderr, "AFTER DECRYPT: block: %lu checkpoint: %lu %.8lx %.8lx\n", - log_block_get_hdr_no(buf), - log_block_get_checkpoint_no(buf), - log_block_calc_checksum(buf), - log_block_get_checksum(buf)); -#endif - start_lsn += len; - buf += len; - - if (start_lsn != end_lsn) { - - goto loop; - } -} - /** Checks that there is enough free space in the log to start a new query step. Flushes the log buffer or makes a new checkpoint if necessary. NOTE: this diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index 8c6080d4d7e..f7c7c45240b 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -688,6 +688,99 @@ recv_sys_debug_free(void) mutex_exit(&(recv_sys->mutex)); } +/** Read a log segment to a buffer. +@param[out] buf buffer +@param[in] group redo log files +@param[in] start_lsn read area start +@param[in] end_lsn read area end +@return valid end_lsn */ +static +lsn_t +log_group_read_log_seg( + byte* buf, + const log_group_t* group, + lsn_t start_lsn, + lsn_t end_lsn) +{ + ulint len; + lsn_t source_offset; + + ut_ad(log_mutex_own()); + +loop: + source_offset = log_group_calc_lsn_offset(start_lsn, group); + + ut_a(end_lsn - start_lsn <= ULINT_MAX); + len = (ulint) (end_lsn - start_lsn); + + ut_ad(len != 0); + + const bool at_eof = (source_offset % group->file_size) + len + > group->file_size; + if (at_eof) { + /* If the above condition is true then len (which is ulint) + is > the expression below, so the typecast is ok */ + len = (ulint) (group->file_size - + (source_offset % group->file_size)); + } + + log_sys->n_log_ios++; + + MONITOR_INC(MONITOR_LOG_IO); + + ut_a(source_offset / UNIV_PAGE_SIZE <= ULINT_MAX); + + const ulint page_no + = (ulint) (source_offset / univ_page_size.physical()); + + fil_io(IORequestLogRead, true, + page_id_t(group->space_id, page_no), + univ_page_size, + (ulint) (source_offset % univ_page_size.physical()), + len, buf, NULL); + + for (ulint l = 0; l < len; l += OS_FILE_LOG_BLOCK_SIZE, + buf += OS_FILE_LOG_BLOCK_SIZE, + start_lsn += OS_FILE_LOG_BLOCK_SIZE) { + const ulint block_number = log_block_get_hdr_no(buf); + + if (block_number != log_block_convert_lsn_to_no(start_lsn)) { + /* Garbage or an incompletely written log block. + We will not report any error, because this can + happen when InnoDB was killed while it was + writing redo log. We simply treat this as an + abrupt end of the redo log. */ + return(start_lsn); + } + + if (innodb_log_checksums || group->is_encrypted()) { + ulint crc = log_block_calc_checksum_crc32(buf); + ulint cksum = log_block_get_checksum(buf); + + if (crc != cksum) { + ib::error() << "Invalid log block checksum." + << " block: " << block_number + << " checkpoint no: " + << log_block_get_checkpoint_no(buf) + << " expected: " << crc + << " found: " << cksum; + return(start_lsn); + } + + if (group->is_encrypted()) { + log_crypt(buf, OS_FILE_LOG_BLOCK_SIZE, true); + } + } + } + + if (start_lsn != end_lsn) { + + goto loop; + } + + return(start_lsn); +} + /********************************************************//** Copies a log segment from the most up-to-date log group to the other log groups, so that they all contain the latest log data. Also writes the info @@ -695,8 +788,7 @@ about the latest checkpoint to the groups, and inits the fields in the group memory structs to up-to-date values. */ static void -recv_synchronize_groups(void) -/*=========================*/ +recv_synchronize_groups() { const lsn_t recovered_lsn = recv_sys->recovered_lsn; @@ -705,14 +797,9 @@ recv_synchronize_groups(void) const lsn_t start_lsn = ut_uint64_align_down(recovered_lsn, OS_FILE_LOG_BLOCK_SIZE); - const lsn_t end_lsn = ut_uint64_align_up(recovered_lsn, - OS_FILE_LOG_BLOCK_SIZE); - - ut_ad(start_lsn != end_lsn); - log_group_read_log_seg(log_sys->buf, UT_LIST_GET_FIRST(log_sys->log_groups), - start_lsn, end_lsn); + start_lsn, start_lsn + OS_FILE_LOG_BLOCK_SIZE); ut_ad(UT_LIST_GET_LEN(log_sys->log_groups) == 1); @@ -730,8 +817,10 @@ recv_synchronize_groups(void) over the max checkpoint info, thus making the preservation of max checkpoint info on disk certain */ - log_write_checkpoint_info(true); - log_mutex_enter(); + if (!srv_read_only_mode) { + log_write_checkpoint_info(true); + log_mutex_enter(); + } } /** Check the consistency of a log header block. @@ -799,7 +888,7 @@ recv_find_max_checkpoint_0( buf + LOG_CHECKPOINT_NO); if (!log_crypt_101_read_checkpoint(buf)) { - ib::warn() << "Decrypting checkpoint failed"; + ib::error() << "Decrypting checkpoint failed"; continue; } @@ -930,6 +1019,7 @@ recv_find_max_checkpoint( return(recv_find_max_checkpoint_0( max_group, max_field)); case LOG_HEADER_FORMAT_CURRENT: + case LOG_HEADER_FORMAT_CURRENT | LOG_HEADER_FORMAT_ENCRYPTED: break; default: /* Ensure that the string is NUL-terminated. */ @@ -963,6 +1053,13 @@ recv_find_max_checkpoint( continue; } + if (group->is_encrypted() + && !log_crypt_read_checkpoint_buf(buf)) { + ib::error() << "Reading checkpoint" + " encryption info failed."; + continue; + } + group->state = LOG_GROUP_OK; group->lsn = mach_read_from_8( @@ -972,11 +1069,6 @@ recv_find_max_checkpoint( checkpoint_no = mach_read_from_8( buf + LOG_CHECKPOINT_NO); - if (!log_crypt_read_checkpoint_buf(buf)) { - ib::error() << "Reading checkpoint encryption info failed."; - return DB_ERROR; - } - DBUG_PRINT("ib_log", ("checkpoint " UINT64PF " at " LSN_PF " found in group " ULINTPF, @@ -1008,28 +1100,6 @@ recv_find_max_checkpoint( return(DB_SUCCESS); } -/** Check the 4-byte checksum to the trailer checksum field of a log -block. -@param[in] block log block -@param[in] print_err whether to report checksum mismatch -@return whether the checksum matches */ -bool -log_block_checksum_is_ok(const byte* block, bool print_err) -{ - bool valid - = log_block_get_checksum(block) == log_block_calc_checksum(block); - - if (!valid && print_err) { - ib::error() << "Invalid log block checksum." - << " block: " << log_block_get_hdr_no(block) - << " checkpoint no: " << log_block_get_checkpoint_no(block) - << " expected: " << log_block_calc_checksum(block) - << " found: " << log_block_get_checksum(block); - } - - return(valid || !innodb_log_checksums); -} - /** Try to parse a single log record body and also applies it if specified. @param[in] type redo log entry type @@ -2300,8 +2370,7 @@ bool recv_parse_log_recs( lsn_t checkpoint_lsn, store_t store, - bool apply, - dberr_t* err) + bool apply) { byte* ptr; byte* end_ptr; @@ -2716,62 +2785,22 @@ recv_scan_log_recs( lsn_t* contiguous_lsn, /*!< in/out: it is known that all log groups contain contiguous log data up to this lsn */ - lsn_t* group_scanned_lsn,/*!< out: scanning succeeded up to + lsn_t* group_scanned_lsn)/*!< out: scanning succeeded up to this lsn */ - dberr_t* err) /*!< out: error code or DB_SUCCESS */ { const byte* log_block = buf; - ulint no; lsn_t scanned_lsn = start_lsn; bool finished = false; ulint data_len; bool more_data = false; bool apply = recv_sys->mlog_checkpoint_lsn != 0; - bool maybe_encrypted = false; ut_ad(start_lsn % OS_FILE_LOG_BLOCK_SIZE == 0); ut_ad(len % OS_FILE_LOG_BLOCK_SIZE == 0); ut_ad(len >= OS_FILE_LOG_BLOCK_SIZE); - *err = DB_SUCCESS; do { ut_ad(!finished); - no = log_block_get_hdr_no(log_block); - ulint expected_no = log_block_convert_lsn_to_no(scanned_lsn); - if (no != expected_no) { - /* Garbage or an incompletely written log block. - - We will not report any error, because this can - happen when InnoDB was killed while it was - writing redo log. We simply treat this as an - abrupt end of the redo log. */ - finished = true; - break; - } - - if (!log_block_checksum_is_ok(log_block, true)) { - log_crypt_err_t log_crypt_err; - - maybe_encrypted = log_crypt_block_maybe_encrypted(log_block, - &log_crypt_err); - - /* Print checkpoint encryption keys if present */ - log_crypt_print_checkpoint_keys(log_block); - if (maybe_encrypted) { - /* Log block maybe encrypted finish processing*/ - log_crypt_print_error(log_crypt_err); - *err = DB_ERROR; - return (TRUE); - } - - /* Garbage or an incompletely written log block. - - This could be the result of killing the server - while it was writing this log block. We treat - this as an abrupt end of the redo log. */ - finished = true; - break; - } if (log_block_get_flush_bit(log_block)) { /* This block was a start of a log flush operation: @@ -2852,7 +2881,6 @@ recv_scan_log_recs( ib::error() << "Set innodb_force_recovery" " to ignore this error."; - *err = DB_ERROR; return(true); } } else if (!recv_sys->found_corrupt_log) { @@ -2888,25 +2916,13 @@ recv_scan_log_recs( if (more_data && !recv_sys->found_corrupt_log) { /* Try to parse more log records */ - bool parse_finished = false; - dberr_t parse_err = DB_SUCCESS; - parse_finished = recv_parse_log_recs(checkpoint_lsn, - *store_to_hash, apply, - &parse_err); - - if (parse_err != DB_SUCCESS) { - ib::info() << "Parsing more log records failed checkpoint_lsn " - << checkpoint_lsn << " error " << parse_err; - parse_finished = true; - } - - if (parse_finished) { + if (recv_parse_log_recs(checkpoint_lsn, + *store_to_hash, apply)) { ut_ad(recv_sys->found_corrupt_log || recv_sys->found_corrupt_fs || recv_sys->mlog_checkpoint_lsn == recv_sys->recovered_lsn); - *err = parse_err; return(true); } @@ -2932,15 +2948,13 @@ Parses and hashes the log records if new data found. until which all redo log has been scanned @param[in] last_phase whether changes can be applied to the tablespaces -@param[out] err DB_SUCCESS or error code @return whether rescan is needed (not everything was stored) */ static bool recv_group_scan_log_recs( log_group_t* group, lsn_t* contiguous_lsn, - bool last_phase, - dberr_t* err) + bool last_phase) { DBUG_ENTER("recv_group_scan_log_recs"); DBUG_ASSERT(!last_phase || recv_sys->mlog_checkpoint_lsn > 0); @@ -2971,38 +2985,33 @@ recv_group_scan_log_recs( * (buf_pool_get_n_pages() - (recv_n_pool_free_frames * srv_buf_pool_instances)); - *err = DB_SUCCESS; - end_lsn = *contiguous_lsn = ut_uint64_align_down( + group->scanned_lsn = end_lsn = *contiguous_lsn = ut_uint64_align_down( *contiguous_lsn, OS_FILE_LOG_BLOCK_SIZE); do { - if (*err != DB_SUCCESS) { - DBUG_RETURN(false); - } - if (last_phase && store_to_hash == STORE_NO) { store_to_hash = STORE_IF_EXISTS; /* We must not allow change buffer merge here, because it would generate redo log records before we have finished the redo log scan. */ - *err = recv_apply_hashed_log_recs(FALSE); + if (recv_apply_hashed_log_recs(FALSE) != DB_SUCCESS) { + DBUG_RETURN(false); + } } start_lsn = end_lsn; - end_lsn += RECV_SCAN_SIZE; - - log_group_read_log_seg( - log_sys->buf, group, start_lsn, end_lsn); - } while (!recv_scan_log_recs( + end_lsn = log_group_read_log_seg( + log_sys->buf, group, start_lsn, + start_lsn + RECV_SCAN_SIZE); + } while (end_lsn != start_lsn + && !recv_scan_log_recs( available_mem, &store_to_hash, log_sys->buf, - RECV_SCAN_SIZE, + end_lsn - start_lsn, checkpoint_lsn, - start_lsn, contiguous_lsn, &group->scanned_lsn, err)); + start_lsn, contiguous_lsn, &group->scanned_lsn)); if (recv_sys->found_corrupt_log || recv_sys->found_corrupt_fs) { - ib::error() << "Found corrupted log when looking checkpoint lsn: " - << contiguous_lsn << " error = " << *err; DBUG_RETURN(false); } @@ -3185,8 +3194,7 @@ recv_recovery_from_checkpoint_start( if (srv_force_recovery >= SRV_FORCE_NO_LOG_REDO) { - ib::info() << "The user has set SRV_FORCE_NO_LOG_REDO on," - " skipping log redo"; + ib::info() << "innodb_force_recovery=6 skips redo log apply"; return(DB_SUCCESS); } @@ -3231,6 +3239,7 @@ recv_recovery_from_checkpoint_start( log_mutex_exit(); return(recv_log_format_0_recover(checkpoint_lsn)); case LOG_HEADER_FORMAT_CURRENT: + case LOG_HEADER_FORMAT_CURRENT | LOG_HEADER_FORMAT_ENCRYPTED: break; default: ut_ad(0); @@ -3240,7 +3249,7 @@ recv_recovery_from_checkpoint_start( } /* Look for MLOG_CHECKPOINT. */ - recv_group_scan_log_recs(group, &contiguous_lsn, false, &err); + recv_group_scan_log_recs(group, &contiguous_lsn, false); /* The first scan should not have stored or applied any records. */ ut_ad(recv_sys->n_addrs == 0); ut_ad(!recv_sys->found_corrupt_fs); @@ -3252,22 +3261,19 @@ recv_recovery_from_checkpoint_start( if (recv_sys->found_corrupt_log && !srv_force_recovery) { log_mutex_exit(); - ib::error() << "Found corrupted log when looking checkpoint lsn: " - << contiguous_lsn << " error = " << err; + ib::warn() << "Log scan aborted at LSN " << contiguous_lsn; return(DB_ERROR); } if (recv_sys->mlog_checkpoint_lsn == 0) { if (!srv_read_only_mode && group->scanned_lsn != checkpoint_lsn) { - ib::error() << "Ignoring the redo log due to missing" + ib::error() << "Missing" " MLOG_CHECKPOINT between the checkpoint " << checkpoint_lsn << " and the end " << group->scanned_lsn << "."; - if (srv_force_recovery < SRV_FORCE_NO_LOG_REDO) { - log_mutex_exit(); - return(DB_ERROR); - } + log_mutex_exit(); + return(DB_ERROR); } group->scanned_lsn = checkpoint_lsn; @@ -3275,13 +3281,11 @@ recv_recovery_from_checkpoint_start( } else { contiguous_lsn = checkpoint_lsn; rescan = recv_group_scan_log_recs( - group, &contiguous_lsn, false, &err); + group, &contiguous_lsn, false); if ((recv_sys->found_corrupt_log && !srv_force_recovery) || recv_sys->found_corrupt_fs) { log_mutex_exit(); - ib::error() << "Found corrupted log in lsn:" - << contiguous_lsn << " err = " << err; return(DB_ERROR); } } @@ -3332,15 +3336,12 @@ recv_recovery_from_checkpoint_start( if (rescan) { contiguous_lsn = checkpoint_lsn; - recv_group_scan_log_recs(group, &contiguous_lsn, true, &err); + recv_group_scan_log_recs(group, &contiguous_lsn, true); if ((recv_sys->found_corrupt_log && !srv_force_recovery) || recv_sys->found_corrupt_fs) { log_mutex_exit(); - ib::error() << "Found corrupted log in lsn:" - << contiguous_lsn << " err = " << err; - return(DB_ERROR); } } @@ -3380,10 +3381,6 @@ recv_recovery_from_checkpoint_start( log_sys->next_checkpoint_lsn = checkpoint_lsn; log_sys->next_checkpoint_no = checkpoint_no + 1; - /* here the checkpoint info is written without any redo logging ongoing - * and next_checkpoint_no is updated directly hence no +1 */ - log_crypt_set_ver_and_key(log_sys->next_checkpoint_no); - recv_synchronize_groups(); if (!recv_needed_recovery) { @@ -3407,8 +3404,7 @@ recv_recovery_from_checkpoint_start( MONITOR_SET(MONITOR_LSN_CHECKPOINT_AGE, log_sys->lsn - log_sys->last_checkpoint_lsn); - log_sys->next_checkpoint_no = checkpoint_no + 1; - log_crypt_set_ver_and_key(log_sys->next_checkpoint_no); + log_sys->next_checkpoint_no = ++checkpoint_no; mutex_enter(&recv_sys->mutex); @@ -3462,42 +3458,6 @@ recv_recovery_from_checkpoint_finish(void) /* Free up the flush_rbt. */ buf_flush_free_flush_rbt(); - - /* Validate a few system page types that were left uninitialized - by older versions of MySQL. */ - mtr_t mtr; - buf_block_t* block; - mtr.start(); - mtr.set_sys_modified(); - /* Bitmap page types will be reset in buf_dblwr_check_block() - without redo logging. */ - block = buf_page_get( - page_id_t(IBUF_SPACE_ID, FSP_IBUF_HEADER_PAGE_NO), - univ_page_size, RW_X_LATCH, &mtr); - fil_block_check_type(block, FIL_PAGE_TYPE_SYS, &mtr); - /* Already MySQL 3.23.53 initialized FSP_IBUF_TREE_ROOT_PAGE_NO - to FIL_PAGE_INDEX. No need to reset that one. */ - block = buf_page_get( - page_id_t(TRX_SYS_SPACE, TRX_SYS_PAGE_NO), - univ_page_size, RW_X_LATCH, &mtr); - fil_block_check_type(block, FIL_PAGE_TYPE_TRX_SYS, &mtr); - block = buf_page_get( - page_id_t(TRX_SYS_SPACE, FSP_FIRST_RSEG_PAGE_NO), - univ_page_size, RW_X_LATCH, &mtr); - fil_block_check_type(block, FIL_PAGE_TYPE_SYS, &mtr); - block = buf_page_get( - page_id_t(TRX_SYS_SPACE, FSP_DICT_HDR_PAGE_NO), - univ_page_size, RW_X_LATCH, &mtr); - fil_block_check_type(block, FIL_PAGE_TYPE_SYS, &mtr); - mtr.commit(); - - /* Roll back any recovered data dictionary transactions, so - that the data dictionary tables will be free of any locks. - The data dictionary latch should guarantee that there is at - most one data dictionary transaction active at a time. */ - if (srv_force_recovery < SRV_FORCE_NO_TRX_UNDO) { - trx_rollback_or_clean_recovered(FALSE); - } } /********************************************************//** @@ -3546,18 +3506,14 @@ recv_reset_logs( which we add LOG_BLOCK_HDR_SIZE */ { - log_group_t* group; - ut_ad(log_mutex_own()); log_sys->lsn = ut_uint64_align_up(lsn, OS_FILE_LOG_BLOCK_SIZE); - group = UT_LIST_GET_FIRST(log_sys->log_groups); - - while (group) { + for (log_group_t* group = UT_LIST_GET_FIRST(log_sys->log_groups); + group; group = UT_LIST_GET_NEXT(log_groups, group)) { group->lsn = log_sys->lsn; group->lsn_offset = LOG_FILE_HDR_SIZE; - group = UT_LIST_GET_NEXT(log_groups, group); } log_sys->buf_next_to_write = 0; diff --git a/storage/innobase/mysql-test/storage_engine/define_engine.inc b/storage/innobase/mysql-test/storage_engine/define_engine.inc index 77e384d2351..7d7b0c7407a 100644 --- a/storage/innobase/mysql-test/storage_engine/define_engine.inc +++ b/storage/innobase/mysql-test/storage_engine/define_engine.inc @@ -41,9 +41,5 @@ let $default_char_type = CHAR(8); # e.g. creation of an additional schema or table, etc. # The cleanup part should be defined in cleanup_engine.inc -CALL mtr.add_suppression("InnoDB: Resizing redo log from .* to .* pages, LSN=.*"); -CALL mtr.add_suppression("InnoDB: Starting to delete and rewrite log files."); -CALL mtr.add_suppression("InnoDB: New log files created, LSN=.*"); - --enable_query_log --enable_result_log diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 88998b8b453..193003fb9a6 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -63,7 +63,7 @@ Created 2/16/1996 Heikki Tuuri #include "fsp0fsp.h" #include "rem0rec.h" #include "mtr0mtr.h" -#include "log0log.h" +#include "log0crypt.h" #include "log0recv.h" #include "page0page.h" #include "page0cur.h" @@ -481,6 +481,9 @@ create_log_files( /* Create a log checkpoint. */ log_mutex_enter(); + if (log_sys->is_encrypted() && !log_crypt_init()) { + return(DB_ERROR); + } ut_d(recv_no_log_write = false); recv_reset_logs(lsn); log_mutex_exit(); @@ -536,7 +539,7 @@ create_log_files_rename( fil_open_log_and_system_tablespace_files(); - ib::warn() << "New log files created, LSN=" << lsn; + ib::info() << "New log files created, LSN=" << lsn; return(err); } @@ -1362,17 +1365,35 @@ srv_prepare_to_delete_redo_log_files( flushed_lsn = log_sys->lsn; { - ib::warn warning; + ib::info info; if (srv_log_file_size == 0) { - warning << "Upgrading redo log: "; + info << "Upgrading redo log: "; + } else if (n_files != srv_n_log_files + || srv_log_file_size + != srv_log_file_size_requested) { + if (srv_encrypt_log + == log_sys->is_encrypted()) { + info << (srv_encrypt_log + ? "Resizing encrypted" + : "Resizing"); + } else if (srv_encrypt_log) { + info << "Encrypting and resizing"; + } else { + info << "Removing encryption" + " and resizing"; + } + + info << " redo log from " << n_files + << "*" << srv_log_file_size << " to "; + } else if (srv_encrypt_log) { + info << "Encrypting redo log: "; } else { - warning << "Resizing redo log from " - << n_files << "*" - << srv_log_file_size << " to "; + info << "Removing redo log encryption: "; } - warning << srv_n_log_files << "*" - << srv_log_file_size_requested - << " pages, LSN=" << flushed_lsn; + + info << srv_n_log_files << "*" + << srv_log_file_size_requested + << " pages; LSN=" << flushed_lsn; } /* Flush the old log files. */ @@ -2180,6 +2201,14 @@ files_checked: recv_sys->dblwr.pages.clear(); + if (err == DB_SUCCESS && !srv_read_only_mode) { + log_mutex_enter(); + if (log_sys->is_encrypted() && !log_crypt_init()) { + err = DB_ERROR; + } + log_mutex_exit(); + } + if (err == DB_SUCCESS) { /* Initialize the change buffer. */ err = dict_boot(); @@ -2291,6 +2320,115 @@ files_checked: recv_recovery_from_checkpoint_finish(); + /* Upgrade or resize or rebuild the redo logs before + generating any dirty pages, so that the old redo log + files will not be written to. */ + + if (srv_force_recovery == SRV_FORCE_NO_LOG_REDO) { + /* Completely ignore the redo log. */ + } else if (srv_read_only_mode) { + /* Leave the redo log alone. */ + } else if (srv_log_file_size_requested == srv_log_file_size + && srv_n_log_files_found == srv_n_log_files + && log_sys->is_encrypted() == srv_encrypt_log) { + /* No need to upgrade or resize the redo log. */ + } else { + /* Prepare to delete the old redo log files */ + flushed_lsn = srv_prepare_to_delete_redo_log_files(i); + + DBUG_EXECUTE_IF("innodb_log_abort_1", + return(srv_init_abort(DB_ERROR));); + /* Prohibit redo log writes from any other + threads until creating a log checkpoint at the + end of create_log_files(). */ + ut_d(recv_no_log_write = true); + ut_ad(!buf_pool_check_no_pending_io()); + + DBUG_EXECUTE_IF("innodb_log_abort_3", + return(srv_init_abort(DB_ERROR));); + + /* Stamp the LSN to the data files. */ + err = fil_write_flushed_lsn(flushed_lsn); + + DBUG_EXECUTE_IF("innodb_log_abort_4", err = DB_ERROR;); + + if (err != DB_SUCCESS) { + return(srv_init_abort(err)); + } + + /* Close and free the redo log files, so that + we can replace them. */ + fil_close_log_files(true); + + DBUG_EXECUTE_IF("innodb_log_abort_5", + return(srv_init_abort(DB_ERROR));); + + /* Free the old log file space. */ + log_group_close_all(); + + ib::info() << "Starting to delete and rewrite log" + " files."; + + srv_log_file_size = srv_log_file_size_requested; + + err = create_log_files( + logfilename, dirnamelen, flushed_lsn, + logfile0); + + if (err == DB_SUCCESS) { + err = create_log_files_rename( + logfilename, dirnamelen, flushed_lsn, + logfile0); + } + + if (err != DB_SUCCESS) { + return(srv_init_abort(err)); + } + } + + + /* Validate a few system page types that were left + uninitialized by older versions of MySQL. */ + if (!high_level_read_only) { + mtr_t mtr; + buf_block_t* block; + mtr.start(); + mtr.set_sys_modified(); + /* Bitmap page types will be reset in + buf_dblwr_check_block() without redo logging. */ + block = buf_page_get( + page_id_t(IBUF_SPACE_ID, + FSP_IBUF_HEADER_PAGE_NO), + univ_page_size, RW_X_LATCH, &mtr); + fil_block_check_type(block, FIL_PAGE_TYPE_SYS, &mtr); + /* Already MySQL 3.23.53 initialized + FSP_IBUF_TREE_ROOT_PAGE_NO to + FIL_PAGE_INDEX. No need to reset that one. */ + block = buf_page_get( + page_id_t(TRX_SYS_SPACE, TRX_SYS_PAGE_NO), + univ_page_size, RW_X_LATCH, &mtr); + fil_block_check_type(block, FIL_PAGE_TYPE_TRX_SYS, + &mtr); + block = buf_page_get( + page_id_t(TRX_SYS_SPACE, + FSP_FIRST_RSEG_PAGE_NO), + univ_page_size, RW_X_LATCH, &mtr); + fil_block_check_type(block, FIL_PAGE_TYPE_SYS, &mtr); + block = buf_page_get( + page_id_t(TRX_SYS_SPACE, FSP_DICT_HDR_PAGE_NO), + univ_page_size, RW_X_LATCH, &mtr); + fil_block_check_type(block, FIL_PAGE_TYPE_SYS, &mtr); + mtr.commit(); + } + + /* Roll back any recovered data dictionary transactions, so + that the data dictionary tables will be free of any locks. + The data dictionary latch should guarantee that there is at + most one data dictionary transaction active at a time. */ + if (srv_force_recovery < SRV_FORCE_NO_TRX_UNDO) { + trx_rollback_or_clean_recovered(FALSE); + } + /* Fix-up truncate of tables in the system tablespace if server crashed while truncate was active. The non- system tables are done after tablespace discovery. Do @@ -2344,71 +2482,6 @@ files_checked: return(srv_init_abort(err)); } - if (!srv_force_recovery - && !recv_sys->found_corrupt_log - && (srv_log_file_size_requested != srv_log_file_size - || srv_n_log_files_found != srv_n_log_files)) { - /* Prepare to replace the redo log files. */ - - if (srv_read_only_mode) { - ib::error() << "Cannot resize log files" - " in read-only mode."; - return(srv_init_abort(DB_READ_ONLY)); - } - - /* Prepare to delete the old redo log files */ - flushed_lsn = srv_prepare_to_delete_redo_log_files(i); - - DBUG_EXECUTE_IF("innodb_log_abort_1", - return(srv_init_abort(DB_ERROR));); - /* Prohibit redo log writes from any other - threads until creating a log checkpoint at the - end of create_log_files(). */ - ut_d(recv_no_log_write = true); - ut_ad(!buf_pool_check_no_pending_io()); - - DBUG_EXECUTE_IF("innodb_log_abort_3", - return(srv_init_abort(DB_ERROR));); - - /* Stamp the LSN to the data files. */ - err = fil_write_flushed_lsn(flushed_lsn); - - DBUG_EXECUTE_IF("innodb_log_abort_4", err = DB_ERROR;); - - if (err != DB_SUCCESS) { - return(srv_init_abort(err)); - } - - /* Close and free the redo log files, so that - we can replace them. */ - fil_close_log_files(true); - - DBUG_EXECUTE_IF("innodb_log_abort_5", - return(srv_init_abort(DB_ERROR));); - - /* Free the old log file space. */ - log_group_close_all(); - - ib::warn() << "Starting to delete and rewrite log" - " files."; - - srv_log_file_size = srv_log_file_size_requested; - - err = create_log_files( - logfilename, dirnamelen, flushed_lsn, - logfile0); - - if (err == DB_SUCCESS) { - err = create_log_files_rename( - logfilename, dirnamelen, flushed_lsn, - logfile0); - } - - if (err != DB_SUCCESS) { - return(srv_init_abort(err)); - } - } - recv_recovery_rollback_active(); /* It is possible that file_format tag has never From 703d0985ee761a81af5d9b8d4374d847dba7cd76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 15 Feb 2017 08:57:43 +0200 Subject: [PATCH 240/258] Fix some InnoDB memory leaks. dict_init_free(): Make global, and move the call from dict_close() to srv_free(), because this is initialized earlier than dict_sys. innobase_space_shutdown(): Do not leak srv_allow_writes_event. --- storage/innobase/dict/dict0dict.cc | 21 ++++++--------------- storage/innobase/handler/ha_innodb.cc | 7 +++++++ storage/innobase/include/dict0dict.h | 12 +++++++----- storage/innobase/srv/srv0srv.cc | 2 ++ 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index 21380cffae3..943b79c3514 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -2,7 +2,7 @@ Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. -Copyright (c) 2013, 2016, MariaDB Corporation. +Copyright (c) 2013, 2017, MariaDB Corporation. 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 @@ -6342,11 +6342,9 @@ dict_set_merge_threshold_all_debug( #endif /* UNIV_DEBUG */ -/**********************************************************************//** -Inits dict_ind_redundant. */ +/** Initialize dict_ind_redundant. */ void -dict_ind_init(void) -/*===============*/ +dict_ind_init() { dict_table_t* table; @@ -6364,16 +6362,11 @@ dict_ind_init(void) dict_ind_redundant->cached = TRUE; } -/**********************************************************************//** -Frees dict_ind_redundant. */ -static +/** Free dict_ind_redundant. */ void -dict_ind_free(void) -/*===============*/ +dict_ind_free() { - dict_table_t* table; - - table = dict_ind_redundant->table; + dict_table_t* table = dict_ind_redundant->table; dict_mem_index_free(dict_ind_redundant); dict_ind_redundant = NULL; dict_mem_table_free(table); @@ -6896,8 +6889,6 @@ dict_close(void) therefore we don't delete the individual elements. */ hash_table_free(dict_sys->table_id_hash); - dict_ind_free(); - mutex_free(&dict_sys->mutex); rw_lock_free(dict_operation_lock); diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index fe0c8239315..e53253db19c 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -3695,6 +3695,13 @@ innobase_space_shutdown() } srv_tmp_space.shutdown(); +#ifdef WITH_INNODB_DISALLOW_WRITES + if (srv_allow_writes_event) { + os_event_destroy(srv_allow_writes_event); + srv_allow_writes_event = NULL; + } +#endif /* WITH_INNODB_DISALLOW_WRITES */ + DBUG_VOID_RETURN; } diff --git a/storage/innobase/include/dict0dict.h b/storage/innobase/include/dict0dict.h index 77a2013927e..036d905f0d8 100644 --- a/storage/innobase/include/dict0dict.h +++ b/storage/innobase/include/dict0dict.h @@ -2,7 +2,7 @@ Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2012, Facebook Inc. -Copyright (c) 2013, 2016, MariaDB Corporation. +Copyright (c) 2013, 2017, MariaDB Corporation. 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 @@ -1763,11 +1763,13 @@ struct dict_sys_t{ /** dummy index for ROW_FORMAT=REDUNDANT supremum and infimum records */ extern dict_index_t* dict_ind_redundant; -/**********************************************************************//** -Inits dict_ind_redundant. */ +/** Initialize dict_ind_redundant. */ void -dict_ind_init(void); -/*===============*/ +dict_ind_init(); + +/** Free dict_ind_redundant. */ +void +dict_ind_free(); /* Auxiliary structs for checking a table definition @{ */ diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index a979b107825..a0ff3589198 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -1152,6 +1152,8 @@ srv_free(void) srv_master_thread_disabled_event = NULL; #endif /* UNIV_DEBUG */ + dict_ind_free(); + trx_i_s_cache_free(trx_i_s_cache); ut_free(srv_sys); From a90066b1c7618f6d121eb7079c2939f21c6ad863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 15 Feb 2017 13:45:14 +0200 Subject: [PATCH 241/258] MDEV-11641 innobase_get_stmt_safe() does not copy the last byte of thd->query_string innobase_get_stmt_safe(): Copy also the last byte. --- storage/innobase/handler/ha_innodb.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index e53253db19c..ef599bc5d04 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -2465,8 +2465,8 @@ innobase_get_stmt_safe( stmt = thd ? thd_query_string(thd) : NULL; if (stmt && stmt->str) { - length = stmt->length > buflen ? buflen : stmt->length; - memcpy(buf, stmt->str, length-1); + length = stmt->length >= buflen ? buflen - 1 : stmt->length; + memcpy(buf, stmt->str, length); buf[length]='\0'; } else { buf[0]='\0'; From 9fe9fb68acd763ad3908c03d82d4de577d6f0c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 14 Feb 2017 14:02:29 +0200 Subject: [PATCH 242/258] MDEV-10859: Wrong result of aggregate window function in query with HAVING and no ORDER BY Window functions need to be computed after applying the HAVING clause. An optimization that we have for regular, non-window function, cases is to apply having only during sending of the rows to the client. This allows rows that should be filtered from the temporary table used to store aggregation results to be stored there. This behaviour is undesireable for window functions, as we have to compute window functions on the result-set after HAVING is applied. Storing extra rows in the table leads to wrong values as the frame bounds might capture those -to be filtered afterwards- rows. --- mysql-test/r/win.result | 33 +++++++++++++++++++++++++++++++++ mysql-test/t/win.test | 23 +++++++++++++++++++++++ sql/sql_select.cc | 11 ++++++++--- sql/sql_window.cc | 6 ++++++ 4 files changed, 70 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index fd3aea80083..bf3dde5908a 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2925,3 +2925,36 @@ WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); a MAX(a) AVG(a) OVER (PARTITION BY b) NULL NULL NULL DROP TABLE t1,t2,t3; +# +# MDEV-10859: Wrong result of aggregate window function in query +# with HAVING and no ORDER BY +# +create table empsalary (depname varchar(32), empno smallint primary key, salary int); +insert into empsalary values +('develop', 1, 5000), ('develop', 2, 4000),('sales', 3, '6000'),('sales', 4, 5000); +SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary; +depname empno salary avg(salary) OVER (PARTITION BY depname) +develop 1 5000 4500.0000 +develop 2 4000 4500.0000 +sales 3 6000 5500.0000 +sales 4 5000 5500.0000 +SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary ORDER BY depname; +depname empno salary avg(salary) OVER (PARTITION BY depname) +develop 1 5000 4500.0000 +develop 2 4000 4500.0000 +sales 3 6000 5500.0000 +sales 4 5000 5500.0000 +# +# These last 2 should have the same row results, ignoring order. +# +SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary HAVING empno > 1; +depname empno salary avg(salary) OVER (PARTITION BY depname) +develop 2 4000 4000.0000 +sales 3 6000 5500.0000 +sales 4 5000 5500.0000 +SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary HAVING empno > 1 ORDER BY depname; +depname empno salary avg(salary) OVER (PARTITION BY depname) +develop 2 4000 4000.0000 +sales 3 6000 5500.0000 +sales 4 5000 5500.0000 +drop table empsalary; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index aa636f7a294..011164a257e 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1711,3 +1711,26 @@ SELECT a, MAX(a), AVG(a) OVER (PARTITION BY b) FROM t1 WHERE EXISTS ( SELECT * FROM t2 WHERE c IN ( SELECT MAX(d) FROM t3 ) ); DROP TABLE t1,t2,t3; + +--echo # +--echo # MDEV-10859: Wrong result of aggregate window function in query +--echo # with HAVING and no ORDER BY +--echo # + +create table empsalary (depname varchar(32), empno smallint primary key, salary int); +insert into empsalary values + ('develop', 1, 5000), ('develop', 2, 4000),('sales', 3, '6000'),('sales', 4, 5000); + +--sorted_result +SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary; +--sorted_result +SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary ORDER BY depname; +--echo # +--echo # These last 2 should have the same row results, ignoring order. +--echo # +--sorted_result +SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary HAVING empno > 1; +--sorted_result +SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary HAVING empno > 1 ORDER BY depname; + +drop table empsalary; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 5c7ae1e88c1..473270f8a69 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2411,13 +2411,18 @@ bool JOIN::make_aggr_tables_info() If having is not handled here, it will be checked before the row is sent to the client. + + In the case of window functions however, we *must* make sure to not + store any rows which don't match HAVING within the temp table, + as rows will end up being used during their computation. */ if (having && - (sort_and_group || (exec_tmp_table->distinct && !group_list))) + (sort_and_group || (exec_tmp_table->distinct && !group_list) || + select_lex->have_window_funcs())) { - // Attach HAVING to tmp table's condition + /* Attach HAVING to tmp table's condition */ curr_tab->having= having; - having= NULL; // Already done + having= NULL; /* Already done */ } /* Change sum_fields reference to calculated fields in tmp_table */ diff --git a/sql/sql_window.cc b/sql/sql_window.cc index 37095ad78ca..2bdac89f293 100644 --- a/sql/sql_window.cc +++ b/sql/sql_window.cc @@ -2840,6 +2840,12 @@ bool Window_funcs_computation::setup(THD *thd, order_window_funcs_by_window_specs(window_funcs); SQL_SELECT *sel= NULL; + /* + If the tmp table is filtered during sorting + (ex: SELECT with HAVING && ORDER BY), we must make sure to keep the + filtering conditions when we perform sorting for window function + computation. + */ if (tab->filesort && tab->filesort->select) { sel= tab->filesort->select; From d4746422547f1901831f9c891a3600275daf6534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 14 Feb 2017 18:31:30 +0200 Subject: [PATCH 243/258] MDEV-10092: Server crashes in in ha_heap::rnd_pos / Table_read_cursor::get_next The bug was caused by several issues. 2 problems in seek_io_cache. Due to wrong offsets used, we would end up seeking way too much (first change), or over the intended seek point (second change). Fixing it requires correctly detecting available data in buffer (first change), and not using "IO_SIZE alligned" reads. The second is needed because _my_b_cache_read adjusts the pos_in_file itself based on read_pos and read_end. Pretending buffer is empty when we want to force a read will aleviate this problem. Secondly, the big-table cursors didn't repect the interface definitions of always returning the rownumber that Table_read_cursor::fetch() would activate. At the same time, next(), prev() and move_to() should not perform any row activation. --- mysql-test/r/win_big-mdev-10092.result | 328 +++++++++++++++++++++++++ mysql-test/t/win_big-mdev-10092.test | 103 ++++++++ mysys/mf_iocache.c | 15 +- sql/sql_window.cc | 59 +++-- 4 files changed, 477 insertions(+), 28 deletions(-) create mode 100644 mysql-test/r/win_big-mdev-10092.result create mode 100644 mysql-test/t/win_big-mdev-10092.test diff --git a/mysql-test/r/win_big-mdev-10092.result b/mysql-test/r/win_big-mdev-10092.result new file mode 100644 index 00000000000..dc8b7b9c3bd --- /dev/null +++ b/mysql-test/r/win_big-mdev-10092.result @@ -0,0 +1,328 @@ +# +# MDEV-10092: Server crashes in in ha_heap::rnd_pos / Table_read_cursor::get_next +# +CREATE TABLE `orders` ( +`o_orderkey` int(11) NOT NULL, +`o_custkey` double DEFAULT NULL, +`o_orderstatus` char(1) DEFAULT NULL, +`o_totalprice` double DEFAULT NULL, +`o_orderDATE` date DEFAULT NULL, +`o_orderpriority` char(15) DEFAULT NULL, +`o_clerk` char(15) DEFAULT NULL, +`o_shippriority` int(11) DEFAULT NULL, +`o_comment` varchar(79) DEFAULT NULL, +KEY `i_o_orderdate` (`o_orderDATE`), +KEY `i_o_custkey` (`o_custkey`) +) DEFAULT CHARSET=latin1; +create procedure add_data() +begin +INSERT INTO `orders` VALUES (593793,3220,'O',181553.02,'1996-10-12','5-LOW','Clerk#000000921',0,'carefully unusual instructions are final pl'); +INSERT INTO `orders` VALUES (593794,4681,'F',32306.35,'1994-03-15','2-HIGH','Clerk#000000776',0,'slyly ironic depths are blithely. final excuses across the unusual instruction'); +INSERT INTO `orders` VALUES (593795,7213,'O',206579.47,'1998-03-04','2-HIGH','Clerk#000000746',0,'ruthlessly regular theodolites atop the blith'); +INSERT INTO `orders` VALUES (593796,10486,'F',181299.81,'1993-01-13','3-MEDIUM','Clerk#000000787',0,'special theodolites detect slyly. p'); +INSERT INTO `orders` VALUES (593797,3316,'O',208149.32,'1996-12-22','1-URGENT','Clerk#000000355',0,'carefully silent theodolites use blithely acco'); +INSERT INTO `orders` VALUES (593798,1613,'F',254625.5,'1995-01-26','2-HIGH','Clerk#000000504',0,'fluffily even requests ar'); +INSERT INTO `orders` VALUES (593799,4418,'F',45122.99,'1993-07-12','1-URGENT','Clerk#000000838',0,'blithely ironic ideas boost furiously above the ironic foxes. special pac'); +INSERT INTO `orders` VALUES (593824,12013,'F',216314.23,'1992-02-28','1-URGENT','Clerk#000000074',0,'quickly furious requests play above the fur'); +INSERT INTO `orders` VALUES (593825,8101,'O',123101.26,'1997-01-23','5-LOW','Clerk#000000649',0,'regular deposits haggle after the carefully i'); +INSERT INTO `orders` VALUES (593826,6958,'O',280097.59,'1995-12-14','2-HIGH','Clerk#000000080',0,'slyly even ideas about the slyly pending escapades cajole above th'); +INSERT INTO `orders` VALUES (593827,14116,'O',103011.78,'1995-12-16','3-MEDIUM','Clerk#000000567',0,'blithely bold decoys are furiously. fluffy deposits serve flu'); +INSERT INTO `orders` VALUES (593828,6839,'F',106697.51,'1993-12-11','4-NOT SPECIFIED','Clerk#000000065',0,'carefully final theodolites wake quickly final theodolites! unus'); +INSERT INTO `orders` VALUES (593829,14605,'O',44147.73,'1997-02-18','3-MEDIUM','Clerk#000000474',0,'ironic requests use carefully against the iro'); +INSERT INTO `orders` VALUES (593830,12976,'F',167393.6,'1994-06-21','1-URGENT','Clerk#000000424',0,'dolphins haggle careful'); +INSERT INTO `orders` VALUES (593831,14107,'O',208417.51,'1997-11-18','4-NOT SPECIFIED','Clerk#000000336',0,'furiously express pinto beans after the blithely pending requests need to '); +INSERT INTO `orders` VALUES (593856,5623,'O',143236.09,'1998-03-24','5-LOW','Clerk#000000382',0,'carefully ironic accounts impress slyly according to the ironic'); +INSERT INTO `orders` VALUES (593857,1828,'O',217673.82,'1996-01-12','1-URGENT','Clerk#000000060',0,'special, special pinto beans haggle blithely. blithel'); +INSERT INTO `orders` VALUES (593858,14755,'O',8032.07,'1997-07-20','4-NOT SPECIFIED','Clerk#000000110',0,'regular excuses use ironic pinto '); +INSERT INTO `orders` VALUES (593859,8780,'F',356852.14,'1992-10-09','2-HIGH','Clerk#000000510',0,'furiously regular accounts eat across the carefully '); +INSERT INTO `orders` VALUES (593860,13318,'O',18413.14,'1998-01-10','2-HIGH','Clerk#000000673',0,'pending pains cajole furiously alo'); +INSERT INTO `orders` VALUES (593861,1175,'O',28859.21,'1996-09-10','4-NOT SPECIFIED','Clerk#000000680',0,'carefully silent instructi'); +INSERT INTO `orders` VALUES (593862,7787,'F',202891.72,'1992-02-27','5-LOW','Clerk#000000988',0,'slyly express requests sleep. express dependencies wake bli'); +INSERT INTO `orders` VALUES (593863,1897,'O',33062.05,'1998-06-29','1-URGENT','Clerk#000000117',0,'accounts integrate carefully across the fluffily even warhorses'); +INSERT INTO `orders` VALUES (593888,5656,'O',20952.26,'1997-02-04','3-MEDIUM','Clerk#000000735',0,'requests could have to cajole about the special, final '); +INSERT INTO `orders` VALUES (593889,2692,'F',282718.42,'1992-08-02','4-NOT SPECIFIED','Clerk#000000669',0,'regular deposits haggle fluff'); +INSERT INTO `orders` VALUES (593890,3685,'O',34012.74,'1996-06-17','5-LOW','Clerk#000000993',0,'furiously even requests'); +INSERT INTO `orders` VALUES (593891,10333,'F',182791.4,'1993-01-23','4-NOT SPECIFIED','Clerk#000000098',0,'slyly final platelets doubt'); +INSERT INTO `orders` VALUES (593892,5687,'F',224381.48,'1994-09-18','2-HIGH','Clerk#000000294',0,'blithely bold epitaphs sleep after the carefully express in'); +INSERT INTO `orders` VALUES (593893,5437,'F',124300.91,'1993-08-04','4-NOT SPECIFIED','Clerk#000000302',0,'daring instructions alongside of the si'); +INSERT INTO `orders` VALUES (593894,1732,'F',150438.64,'1993-11-07','3-MEDIUM','Clerk#000000046',0,'quickly special accounts integrate by the even, dogged platelets? slowly '); +INSERT INTO `orders` VALUES (593895,12230,'O',47380.97,'1997-03-23','2-HIGH','Clerk#000000168',0,'fluffily permanent instructions alongside of the furiously even pack'); +INSERT INTO `orders` VALUES (593920,13871,'F',2919.68,'1992-01-29','5-LOW','Clerk#000000597',0,'quickly regular foxes across the furiously bold accounts wake car'); +INSERT INTO `orders` VALUES (593921,6664,'F',139065.79,'1992-04-21','5-LOW','Clerk#000000017',0,'fluffily final deposits are carefully. quickly special pinto beans bel'); +INSERT INTO `orders` VALUES (593922,2504,'O',179041.45,'1997-04-05','2-HIGH','Clerk#000000902',0,'final pinto beans are furiously. '); +INSERT INTO `orders` VALUES (593923,4978,'O',258843,'1998-02-27','1-URGENT','Clerk#000000654',0,'carefully final asymptotes according to the regular dependencie'); +INSERT INTO `orders` VALUES (593924,7550,'O',232280.81,'1995-10-28','3-MEDIUM','Clerk#000000063',0,'fluffily ironic packages haggle carefully pending platelets. q'); +INSERT INTO `orders` VALUES (593925,12226,'O',319755.48,'1995-09-01','3-MEDIUM','Clerk#000000308',0,'quickly pending packages throughout the quickly unusual requests'); +INSERT INTO `orders` VALUES (593926,2819,'F',204662.4,'1994-11-07','4-NOT SPECIFIED','Clerk#000000298',0,'blithely special grouches cajole ironic instructions. slyly pendin'); +INSERT INTO `orders` VALUES (593927,593,'F',188162.64,'1995-03-04','1-URGENT','Clerk#000000263',0,'express, unusual deposits boost furiously after the unusual dolphi'); +INSERT INTO `orders` VALUES (593952,9362,'P',318688.16,'1995-03-05','4-NOT SPECIFIED','Clerk#000000468',0,'ruthless requests must have to are carefully? special pa'); +INSERT INTO `orders` VALUES (593953,11410,'O',166717.28,'1998-07-29','5-LOW','Clerk#000000509',0,'even, regular instructions snooze. slyly ironic packages nag fluffily.'); +INSERT INTO `orders` VALUES (593954,8875,'O',132909.37,'1996-08-29','3-MEDIUM','Clerk#000000825',0,'special decoys integrate carefully. care'); +INSERT INTO `orders` VALUES (593955,12494,'O',73329.07,'1995-08-05','1-URGENT','Clerk#000000561',0,'quickly special request'); +INSERT INTO `orders` VALUES (593956,1390,'O',187837.11,'1995-10-17','5-LOW','Clerk#000000797',0,'silent, pending foxes'); +INSERT INTO `orders` VALUES (593957,10106,'F',196969.46,'1993-04-03','2-HIGH','Clerk#000000566',0,'blithely ruthless excuses boost slyly about the requests. careful'); +INSERT INTO `orders` VALUES (593958,14770,'F',103528.82,'1993-12-27','3-MEDIUM','Clerk#000000598',0,'carefully special deposits eat above the q'); +INSERT INTO `orders` VALUES (593959,14566,'O',156600.32,'1996-11-16','2-HIGH','Clerk#000000030',0,'accounts are quickly bold packages. carefully ironic depos'); +INSERT INTO `orders` VALUES (593984,4924,'O',47149.15,'1995-05-06','3-MEDIUM','Clerk#000000120',0,'regular asymptotes haggle slyly abo'); +INSERT INTO `orders` VALUES (593985,5185,'O',152533.91,'1997-08-04','3-MEDIUM','Clerk#000000575',0,'blithely special dolphins are even requests. carefully eve'); +INSERT INTO `orders` VALUES (593986,14257,'O',109734.28,'1998-06-05','3-MEDIUM','Clerk#000000930',0,'carefully final instructions against the slyly'); +INSERT INTO `orders` VALUES (593987,5818,'F',64541.52,'1994-04-13','3-MEDIUM','Clerk#000000259',0,'slyly pending deposits are furiously. regular requests h'); +INSERT INTO `orders` VALUES (593988,1178,'F',249608.42,'1994-10-01','2-HIGH','Clerk#000000266',0,'fluffily regular foxes toward the furiously bold accounts sleep furiously'); +INSERT INTO `orders` VALUES (593989,5173,'P',61508.55,'1995-03-02','2-HIGH','Clerk#000000374',0,'slyly express deposits wake between '); +INSERT INTO `orders` VALUES (593990,8395,'O',129696.17,'1997-12-30','4-NOT SPECIFIED','Clerk#000000570',0,'carefully final requests haggle furiously fluffily final accou'); +INSERT INTO `orders` VALUES (593991,1894,'O',145691.27,'1998-04-09','5-LOW','Clerk#000000294',0,'slyly final notornis haggle carefull'); +INSERT INTO `orders` VALUES (594016,14935,'F',144592.29,'1992-10-20','3-MEDIUM','Clerk#000000602',0,'furiously express ideas cajole quickl'); +INSERT INTO `orders` VALUES (594017,892,'F',147267.55,'1994-12-10','1-URGENT','Clerk#000000419',0,'close, pending packages affix blithely. slyly regular reque'); +end; +// +call add_data(); +call add_data(); +set sort_buffer_size = 1024; +flush status; +select o_custkey, Avg(o_custkey) OVER ( ORDER BY o_custkey ) from orders; +o_custkey Avg(o_custkey) OVER ( ORDER BY o_custkey ) +593 593 +593 593 +892 742.5 +892 742.5 +1175 886.6666666666666 +1175 886.6666666666666 +1178 959.5 +1178 959.5 +1390 1045.6 +1390 1045.6 +1613 1140.1666666666667 +1613 1140.1666666666667 +1732 1224.7142857142858 +1732 1224.7142857142858 +1828 1300.125 +1828 1300.125 +1894 1366.111111111111 +1894 1366.111111111111 +1897 1419.2 +1897 1419.2 +2504 1517.8181818181818 +2504 1517.8181818181818 +2692 1615.6666666666667 +2692 1615.6666666666667 +2819 1708.2307692307693 +2819 1708.2307692307693 +3220 1816.2142857142858 +3220 1816.2142857142858 +3316 1916.2 +3316 1916.2 +3685 2026.75 +3685 2026.75 +4418 2167.4117647058824 +4418 2167.4117647058824 +4681 2307.0555555555557 +4681 2307.0555555555557 +4924 2444.7894736842104 +4924 2444.7894736842104 +4978 2571.45 +4978 2571.45 +5173 2695.3333333333335 +5173 2695.3333333333335 +5185 2808.5 +5185 2808.5 +5437 2922.782608695652 +5437 2922.782608695652 +5623 3035.2916666666665 +5623 3035.2916666666665 +5656 3140.12 +5656 3140.12 +5687 3238.076923076923 +5687 3238.076923076923 +5818 3333.6296296296296 +5818 3333.6296296296296 +6664 3452.5714285714284 +6664 3452.5714285714284 +6839 3569.344827586207 +6839 3569.344827586207 +6958 3682.3 +6958 3682.3 +7213 3796.1935483870966 +7213 3796.1935483870966 +7550 3913.5 +7550 3913.5 +7787 4030.878787878788 +7787 4030.878787878788 +8101 4150.588235294118 +8101 4150.588235294118 +8395 4271.857142857143 +8395 4271.857142857143 +8780 4397.083333333333 +8780 4397.083333333333 +8875 4518.108108108108 +8875 4518.108108108108 +9362 4645.578947368421 +9362 4645.578947368421 +10106 4785.589743589743 +10106 4785.589743589743 +10333 4924.275 +10333 4924.275 +10486 5059.926829268293 +10486 5059.926829268293 +11410 5211.119047619048 +11410 5211.119047619048 +12013 5369.302325581395 +12013 5369.302325581395 +12226 5525.136363636364 +12226 5525.136363636364 +12230 5674.133333333333 +12230 5674.133333333333 +12494 5822.391304347826 +12494 5822.391304347826 +12976 5974.595744680851 +12976 5974.595744680851 +13318 6127.583333333333 +13318 6127.583333333333 +13871 6285.6122448979595 +13871 6285.6122448979595 +14107 6442.04 +14107 6442.04 +14116 6592.509803921569 +14116 6592.509803921569 +14257 6739.903846153846 +14257 6739.903846153846 +14566 6887.566037735849 +14566 6887.566037735849 +14605 7030.481481481482 +14605 7030.481481481482 +14755 7170.927272727273 +14755 7170.927272727273 +14770 7306.625 +14770 7306.625 +14935 7440.456140350877 +14935 7440.456140350877 +select variable_name, +case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end +from information_schema.session_status +where variable_name like 'Sort_merge_passes'; +variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end +SORT_MERGE_PASSES WITH PASSES +flush status; +select o_custkey, Avg(o_custkey) OVER ( ORDER BY o_custkey RANGE CURRENT ROW ) from orders; +o_custkey Avg(o_custkey) OVER ( ORDER BY o_custkey RANGE CURRENT ROW ) +593 593 +593 593 +892 892 +892 892 +1175 1175 +1175 1175 +1178 1178 +1178 1178 +1390 1390 +1390 1390 +1613 1613 +1613 1613 +1732 1732 +1732 1732 +1828 1828 +1828 1828 +1894 1894 +1894 1894 +1897 1897 +1897 1897 +2504 2504 +2504 2504 +2692 2692 +2692 2692 +2819 2819 +2819 2819 +3220 3220 +3220 3220 +3316 3316 +3316 3316 +3685 3685 +3685 3685 +4418 4418 +4418 4418 +4681 4681 +4681 4681 +4924 4924 +4924 4924 +4978 4978 +4978 4978 +5173 5173 +5173 5173 +5185 5185 +5185 5185 +5437 5437 +5437 5437 +5623 5623 +5623 5623 +5656 5656 +5656 5656 +5687 5687 +5687 5687 +5818 5818 +5818 5818 +6664 6664 +6664 6664 +6839 6839 +6839 6839 +6958 6958 +6958 6958 +7213 7213 +7213 7213 +7550 7550 +7550 7550 +7787 7787 +7787 7787 +8101 8101 +8101 8101 +8395 8395 +8395 8395 +8780 8780 +8780 8780 +8875 8875 +8875 8875 +9362 9362 +9362 9362 +10106 10106 +10106 10106 +10333 10333 +10333 10333 +10486 10486 +10486 10486 +11410 11410 +11410 11410 +12013 12013 +12013 12013 +12226 12226 +12226 12226 +12230 12230 +12230 12230 +12494 12494 +12494 12494 +12976 12976 +12976 12976 +13318 13318 +13318 13318 +13871 13871 +13871 13871 +14107 14107 +14107 14107 +14116 14116 +14116 14116 +14257 14257 +14257 14257 +14566 14566 +14566 14566 +14605 14605 +14605 14605 +14755 14755 +14755 14755 +14770 14770 +14770 14770 +14935 14935 +14935 14935 +select variable_name, +case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end +from information_schema.session_status +where variable_name like 'Sort_merge_passes'; +variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end +SORT_MERGE_PASSES WITH PASSES +drop table orders; +drop procedure add_data; diff --git a/mysql-test/t/win_big-mdev-10092.test b/mysql-test/t/win_big-mdev-10092.test new file mode 100644 index 00000000000..090d43b0b7b --- /dev/null +++ b/mysql-test/t/win_big-mdev-10092.test @@ -0,0 +1,103 @@ +--echo # +--echo # MDEV-10092: Server crashes in in ha_heap::rnd_pos / Table_read_cursor::get_next +--echo # + +CREATE TABLE `orders` ( + `o_orderkey` int(11) NOT NULL, + `o_custkey` double DEFAULT NULL, + `o_orderstatus` char(1) DEFAULT NULL, + `o_totalprice` double DEFAULT NULL, + `o_orderDATE` date DEFAULT NULL, + `o_orderpriority` char(15) DEFAULT NULL, + `o_clerk` char(15) DEFAULT NULL, + `o_shippriority` int(11) DEFAULT NULL, + `o_comment` varchar(79) DEFAULT NULL, + KEY `i_o_orderdate` (`o_orderDATE`), + KEY `i_o_custkey` (`o_custkey`) +) DEFAULT CHARSET=latin1; + +delimiter //; + +create procedure add_data() +begin +INSERT INTO `orders` VALUES (593793,3220,'O',181553.02,'1996-10-12','5-LOW','Clerk#000000921',0,'carefully unusual instructions are final pl'); +INSERT INTO `orders` VALUES (593794,4681,'F',32306.35,'1994-03-15','2-HIGH','Clerk#000000776',0,'slyly ironic depths are blithely. final excuses across the unusual instruction'); +INSERT INTO `orders` VALUES (593795,7213,'O',206579.47,'1998-03-04','2-HIGH','Clerk#000000746',0,'ruthlessly regular theodolites atop the blith'); +INSERT INTO `orders` VALUES (593796,10486,'F',181299.81,'1993-01-13','3-MEDIUM','Clerk#000000787',0,'special theodolites detect slyly. p'); +INSERT INTO `orders` VALUES (593797,3316,'O',208149.32,'1996-12-22','1-URGENT','Clerk#000000355',0,'carefully silent theodolites use blithely acco'); +INSERT INTO `orders` VALUES (593798,1613,'F',254625.5,'1995-01-26','2-HIGH','Clerk#000000504',0,'fluffily even requests ar'); +INSERT INTO `orders` VALUES (593799,4418,'F',45122.99,'1993-07-12','1-URGENT','Clerk#000000838',0,'blithely ironic ideas boost furiously above the ironic foxes. special pac'); +INSERT INTO `orders` VALUES (593824,12013,'F',216314.23,'1992-02-28','1-URGENT','Clerk#000000074',0,'quickly furious requests play above the fur'); +INSERT INTO `orders` VALUES (593825,8101,'O',123101.26,'1997-01-23','5-LOW','Clerk#000000649',0,'regular deposits haggle after the carefully i'); +INSERT INTO `orders` VALUES (593826,6958,'O',280097.59,'1995-12-14','2-HIGH','Clerk#000000080',0,'slyly even ideas about the slyly pending escapades cajole above th'); +INSERT INTO `orders` VALUES (593827,14116,'O',103011.78,'1995-12-16','3-MEDIUM','Clerk#000000567',0,'blithely bold decoys are furiously. fluffy deposits serve flu'); +INSERT INTO `orders` VALUES (593828,6839,'F',106697.51,'1993-12-11','4-NOT SPECIFIED','Clerk#000000065',0,'carefully final theodolites wake quickly final theodolites! unus'); +INSERT INTO `orders` VALUES (593829,14605,'O',44147.73,'1997-02-18','3-MEDIUM','Clerk#000000474',0,'ironic requests use carefully against the iro'); +INSERT INTO `orders` VALUES (593830,12976,'F',167393.6,'1994-06-21','1-URGENT','Clerk#000000424',0,'dolphins haggle careful'); +INSERT INTO `orders` VALUES (593831,14107,'O',208417.51,'1997-11-18','4-NOT SPECIFIED','Clerk#000000336',0,'furiously express pinto beans after the blithely pending requests need to '); +INSERT INTO `orders` VALUES (593856,5623,'O',143236.09,'1998-03-24','5-LOW','Clerk#000000382',0,'carefully ironic accounts impress slyly according to the ironic'); +INSERT INTO `orders` VALUES (593857,1828,'O',217673.82,'1996-01-12','1-URGENT','Clerk#000000060',0,'special, special pinto beans haggle blithely. blithel'); +INSERT INTO `orders` VALUES (593858,14755,'O',8032.07,'1997-07-20','4-NOT SPECIFIED','Clerk#000000110',0,'regular excuses use ironic pinto '); +INSERT INTO `orders` VALUES (593859,8780,'F',356852.14,'1992-10-09','2-HIGH','Clerk#000000510',0,'furiously regular accounts eat across the carefully '); +INSERT INTO `orders` VALUES (593860,13318,'O',18413.14,'1998-01-10','2-HIGH','Clerk#000000673',0,'pending pains cajole furiously alo'); +INSERT INTO `orders` VALUES (593861,1175,'O',28859.21,'1996-09-10','4-NOT SPECIFIED','Clerk#000000680',0,'carefully silent instructi'); +INSERT INTO `orders` VALUES (593862,7787,'F',202891.72,'1992-02-27','5-LOW','Clerk#000000988',0,'slyly express requests sleep. express dependencies wake bli'); +INSERT INTO `orders` VALUES (593863,1897,'O',33062.05,'1998-06-29','1-URGENT','Clerk#000000117',0,'accounts integrate carefully across the fluffily even warhorses'); +INSERT INTO `orders` VALUES (593888,5656,'O',20952.26,'1997-02-04','3-MEDIUM','Clerk#000000735',0,'requests could have to cajole about the special, final '); +INSERT INTO `orders` VALUES (593889,2692,'F',282718.42,'1992-08-02','4-NOT SPECIFIED','Clerk#000000669',0,'regular deposits haggle fluff'); +INSERT INTO `orders` VALUES (593890,3685,'O',34012.74,'1996-06-17','5-LOW','Clerk#000000993',0,'furiously even requests'); +INSERT INTO `orders` VALUES (593891,10333,'F',182791.4,'1993-01-23','4-NOT SPECIFIED','Clerk#000000098',0,'slyly final platelets doubt'); +INSERT INTO `orders` VALUES (593892,5687,'F',224381.48,'1994-09-18','2-HIGH','Clerk#000000294',0,'blithely bold epitaphs sleep after the carefully express in'); +INSERT INTO `orders` VALUES (593893,5437,'F',124300.91,'1993-08-04','4-NOT SPECIFIED','Clerk#000000302',0,'daring instructions alongside of the si'); +INSERT INTO `orders` VALUES (593894,1732,'F',150438.64,'1993-11-07','3-MEDIUM','Clerk#000000046',0,'quickly special accounts integrate by the even, dogged platelets? slowly '); +INSERT INTO `orders` VALUES (593895,12230,'O',47380.97,'1997-03-23','2-HIGH','Clerk#000000168',0,'fluffily permanent instructions alongside of the furiously even pack'); +INSERT INTO `orders` VALUES (593920,13871,'F',2919.68,'1992-01-29','5-LOW','Clerk#000000597',0,'quickly regular foxes across the furiously bold accounts wake car'); +INSERT INTO `orders` VALUES (593921,6664,'F',139065.79,'1992-04-21','5-LOW','Clerk#000000017',0,'fluffily final deposits are carefully. quickly special pinto beans bel'); +INSERT INTO `orders` VALUES (593922,2504,'O',179041.45,'1997-04-05','2-HIGH','Clerk#000000902',0,'final pinto beans are furiously. '); +INSERT INTO `orders` VALUES (593923,4978,'O',258843,'1998-02-27','1-URGENT','Clerk#000000654',0,'carefully final asymptotes according to the regular dependencie'); +INSERT INTO `orders` VALUES (593924,7550,'O',232280.81,'1995-10-28','3-MEDIUM','Clerk#000000063',0,'fluffily ironic packages haggle carefully pending platelets. q'); +INSERT INTO `orders` VALUES (593925,12226,'O',319755.48,'1995-09-01','3-MEDIUM','Clerk#000000308',0,'quickly pending packages throughout the quickly unusual requests'); +INSERT INTO `orders` VALUES (593926,2819,'F',204662.4,'1994-11-07','4-NOT SPECIFIED','Clerk#000000298',0,'blithely special grouches cajole ironic instructions. slyly pendin'); +INSERT INTO `orders` VALUES (593927,593,'F',188162.64,'1995-03-04','1-URGENT','Clerk#000000263',0,'express, unusual deposits boost furiously after the unusual dolphi'); +INSERT INTO `orders` VALUES (593952,9362,'P',318688.16,'1995-03-05','4-NOT SPECIFIED','Clerk#000000468',0,'ruthless requests must have to are carefully? special pa'); +INSERT INTO `orders` VALUES (593953,11410,'O',166717.28,'1998-07-29','5-LOW','Clerk#000000509',0,'even, regular instructions snooze. slyly ironic packages nag fluffily.'); +INSERT INTO `orders` VALUES (593954,8875,'O',132909.37,'1996-08-29','3-MEDIUM','Clerk#000000825',0,'special decoys integrate carefully. care'); +INSERT INTO `orders` VALUES (593955,12494,'O',73329.07,'1995-08-05','1-URGENT','Clerk#000000561',0,'quickly special request'); +INSERT INTO `orders` VALUES (593956,1390,'O',187837.11,'1995-10-17','5-LOW','Clerk#000000797',0,'silent, pending foxes'); +INSERT INTO `orders` VALUES (593957,10106,'F',196969.46,'1993-04-03','2-HIGH','Clerk#000000566',0,'blithely ruthless excuses boost slyly about the requests. careful'); +INSERT INTO `orders` VALUES (593958,14770,'F',103528.82,'1993-12-27','3-MEDIUM','Clerk#000000598',0,'carefully special deposits eat above the q'); +INSERT INTO `orders` VALUES (593959,14566,'O',156600.32,'1996-11-16','2-HIGH','Clerk#000000030',0,'accounts are quickly bold packages. carefully ironic depos'); +INSERT INTO `orders` VALUES (593984,4924,'O',47149.15,'1995-05-06','3-MEDIUM','Clerk#000000120',0,'regular asymptotes haggle slyly abo'); +INSERT INTO `orders` VALUES (593985,5185,'O',152533.91,'1997-08-04','3-MEDIUM','Clerk#000000575',0,'blithely special dolphins are even requests. carefully eve'); +INSERT INTO `orders` VALUES (593986,14257,'O',109734.28,'1998-06-05','3-MEDIUM','Clerk#000000930',0,'carefully final instructions against the slyly'); +INSERT INTO `orders` VALUES (593987,5818,'F',64541.52,'1994-04-13','3-MEDIUM','Clerk#000000259',0,'slyly pending deposits are furiously. regular requests h'); +INSERT INTO `orders` VALUES (593988,1178,'F',249608.42,'1994-10-01','2-HIGH','Clerk#000000266',0,'fluffily regular foxes toward the furiously bold accounts sleep furiously'); +INSERT INTO `orders` VALUES (593989,5173,'P',61508.55,'1995-03-02','2-HIGH','Clerk#000000374',0,'slyly express deposits wake between '); +INSERT INTO `orders` VALUES (593990,8395,'O',129696.17,'1997-12-30','4-NOT SPECIFIED','Clerk#000000570',0,'carefully final requests haggle furiously fluffily final accou'); +INSERT INTO `orders` VALUES (593991,1894,'O',145691.27,'1998-04-09','5-LOW','Clerk#000000294',0,'slyly final notornis haggle carefull'); +INSERT INTO `orders` VALUES (594016,14935,'F',144592.29,'1992-10-20','3-MEDIUM','Clerk#000000602',0,'furiously express ideas cajole quickl'); +INSERT INTO `orders` VALUES (594017,892,'F',147267.55,'1994-12-10','1-URGENT','Clerk#000000419',0,'close, pending packages affix blithely. slyly regular reque'); +end; +// + +delimiter ;// +call add_data(); +call add_data(); +set sort_buffer_size = 1024; + +flush status; +select o_custkey, Avg(o_custkey) OVER ( ORDER BY o_custkey ) from orders; +select variable_name, + case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end +from information_schema.session_status +where variable_name like 'Sort_merge_passes'; + +flush status; +select o_custkey, Avg(o_custkey) OVER ( ORDER BY o_custkey RANGE CURRENT ROW ) from orders; +select variable_name, + case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end +from information_schema.session_status +where variable_name like 'Sort_merge_passes'; + +drop table orders; +drop procedure add_data; diff --git a/mysys/mf_iocache.c b/mysys/mf_iocache.c index bfdda25cafa..72385daef42 100644 --- a/mysys/mf_iocache.c +++ b/mysys/mf_iocache.c @@ -397,8 +397,9 @@ void end_slave_io_cache(IO_CACHE *cache) void seek_io_cache(IO_CACHE *cache, my_off_t needed_offset) { my_off_t cached_data_start= cache->pos_in_file; - my_off_t cached_data_end= cache->pos_in_file + (cache->read_pos - + my_off_t cached_data_end= cache->pos_in_file + (cache->read_end - cache->buffer); + if (needed_offset >= cached_data_start && needed_offset < cached_data_end) { @@ -416,11 +417,17 @@ void seek_io_cache(IO_CACHE *cache, my_off_t needed_offset) The offset we're seeking to is not in the buffer. - Set the buffer to be exhausted. - Make the next read to a mysql_file_seek() call to the required - offset (but still use aligned reads). + offset. + TODO(cvicentiu, spetrunia) properly implement aligned seeks for + efficiency. */ - cache->read_pos= cache->read_end; cache->seek_not_done= 1; - cache->pos_in_file= (needed_offset / IO_SIZE) * IO_SIZE; + cache->pos_in_file= needed_offset; + /* When reading it must appear as if we've started from the offset + that we've seeked here. We must let _my_b_cache_read assume that + by implying "no reading starting from pos_in_file" has happened. */ + cache->read_pos= cache->buffer; + cache->read_end= cache->buffer; } } diff --git a/sql/sql_window.cc b/sql/sql_window.cc index 2bdac89f293..eb06824402d 100644 --- a/sql/sql_window.cc +++ b/sql/sql_window.cc @@ -632,9 +632,10 @@ private: /* If io_cache=!NULL, use it */ IO_CACHE *io_cache; uchar *ref_buffer; /* Buffer for the last returned rowid */ - uint rownum; /* Number of the rowid that is about to be returned */ - bool cache_eof; /* whether we've reached EOF */ - + ha_rows rownum; /* Number of the rowid that is about to be returned */ + ha_rows current_ref_buffer_rownum; + bool ref_buffer_valid; + /* The following are used when we are reading from an array of pointers */ uchar *cache_start; uchar *cache_pos; @@ -655,34 +656,26 @@ public: { //DBUG_ASSERT(info->read_record == rr_from_tempfile); rownum= 0; - cache_eof= false; io_cache= (IO_CACHE*)my_malloc(sizeof(IO_CACHE), MYF(0)); init_slave_io_cache(info->io_cache, io_cache); ref_buffer= (uchar*)my_malloc(ref_length, MYF(0)); + ref_buffer_valid= false; } } virtual int next() { + /* Allow multiple next() calls in EOF state. */ + if (at_eof()) + return -1; + if (io_cache) { - if (cache_eof) - return 1; - - if (my_b_read(io_cache,ref_buffer,ref_length)) - { - cache_eof= 1; // TODO: remove cache_eof - return -1; - } rownum++; - return 0; } else { - /* Allow multiple next() calls in EOF state. */ - if (cache_pos == cache_end) - return -1; cache_pos+= ref_length; DBUG_ASSERT(cache_pos <= cache_end); } @@ -696,7 +689,7 @@ public: if (rownum == 0) return -1; - move_to(rownum - 1); + rownum--; return 0; } else @@ -722,9 +715,7 @@ public: { if (io_cache) { - seek_io_cache(io_cache, row_number * ref_length); rownum= row_number; - Rowid_seq_cursor::next(); } else { @@ -738,18 +729,36 @@ protected: { if (io_cache) { - return cache_eof; + return rownum * ref_length >= io_cache->end_of_file; } else return (cache_pos == cache_end); } - uchar *get_curr_rowid() + bool get_curr_rowid(uchar **row_id) { if (io_cache) - return ref_buffer; + { + DBUG_ASSERT(!at_eof()); + if (!ref_buffer_valid || current_ref_buffer_rownum != rownum) + { + seek_io_cache(io_cache, rownum * ref_length); + if (my_b_read(io_cache,ref_buffer,ref_length)) + { + /* Error reading from file. */ + return true; + } + ref_buffer_valid= true; + current_ref_buffer_rownum = rownum; + } + *row_id = ref_buffer; + return false; + } else - return cache_pos; + { + *row_id= cache_pos; + return false; + } } }; @@ -775,7 +784,9 @@ public: if (at_eof()) return -1; - uchar* curr_rowid= get_curr_rowid(); + uchar* curr_rowid; + if (get_curr_rowid(&curr_rowid)) + return -1; return table->file->ha_rnd_pos(record, curr_rowid); } From 88ddb1ea4e4c7ce4816026d9a64b3f8b1cc59072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Tue, 14 Feb 2017 22:40:00 +0200 Subject: [PATCH 244/258] MDEV-11697: Lead Window Function Returns Incorrect Results This issue is fixed by the patch for MDEV-10092. Add test case to check for regressions though. --- mysql-test/r/win_big-mdev-11697.result | 71 ++++++++++++++++++++++++++ mysql-test/t/win_big-mdev-11697.test | 50 ++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 mysql-test/r/win_big-mdev-11697.result create mode 100644 mysql-test/t/win_big-mdev-11697.test diff --git a/mysql-test/r/win_big-mdev-11697.result b/mysql-test/r/win_big-mdev-11697.result new file mode 100644 index 00000000000..e5dc271839c --- /dev/null +++ b/mysql-test/r/win_big-mdev-11697.result @@ -0,0 +1,71 @@ +create table test_table (id int, random_data varchar(36), static_int int, static_varchar varchar(10)); +insert into test_table(id, random_data, static_int, static_varchar) +select id, random_data, 42, 'Hello' + from ( +with recursive data_generator(id, random_data) as ( +select 1 as id, uuid() as random_data +union all +select id + 1, uuid() from data_generator where id < 1000 +) +select * from data_generator +) as a; +commit; +analyze table test_table; +Table Op Msg_type Msg_text +test.test_table analyze status OK +explain select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY ALL NULL NULL NULL NULL 1000 +2 DERIVED test_table ALL NULL NULL NULL NULL 1000 Using temporary; Using filesort +select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; +id next_id +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +drop table if exists test_table; +create table test_table (id int, random_data varchar(36), static_int int, static_varchar varchar(10)); +insert into test_table(id, random_data, static_int, static_varchar) +select id, random_data, 42, 'Hello' + from ( +with recursive data_generator(id, random_data) as ( +select 1 as id, uuid() as random_data +union all +select id + 1, uuid() from data_generator where id < 100000 +) +select * from data_generator +) as a; +commit; +analyze table test_table; +Table Op Msg_type Msg_text +test.test_table analyze status OK +explain select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY ALL NULL NULL NULL NULL 100000 +2 DERIVED test_table ALL NULL NULL NULL NULL 100000 Using temporary; Using filesort +flush status; +select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; +id next_id +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +select variable_name, +case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end +from information_schema.session_status +where variable_name like 'Sort_merge_passes'; +variable_name case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end +SORT_MERGE_PASSES WITH PASSES +drop table test_table; diff --git a/mysql-test/t/win_big-mdev-11697.test b/mysql-test/t/win_big-mdev-11697.test new file mode 100644 index 00000000000..7103b8522be --- /dev/null +++ b/mysql-test/t/win_big-mdev-11697.test @@ -0,0 +1,50 @@ +create table test_table (id int, random_data varchar(36), static_int int, static_varchar varchar(10)); + +insert into test_table(id, random_data, static_int, static_varchar) +select id, random_data, 42, 'Hello' + from ( + with recursive data_generator(id, random_data) as ( + select 1 as id, uuid() as random_data + union all + select id + 1, uuid() from data_generator where id < 1000 + ) + select * from data_generator + ) as a; + +commit; + +analyze table test_table; + +explain select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; + +select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; + +drop table if exists test_table; + +create table test_table (id int, random_data varchar(36), static_int int, static_varchar varchar(10)); + +insert into test_table(id, random_data, static_int, static_varchar) +select id, random_data, 42, 'Hello' + from ( + with recursive data_generator(id, random_data) as ( + select 1 as id, uuid() as random_data + union all + select id + 1, uuid() from data_generator where id < 100000 + ) + select * from data_generator + ) as a; + +commit; + +analyze table test_table; + +explain select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; + +flush status; +select * from (select id, lead(id) over(order by id) next_id from test_table order by id) a limit 10; +select variable_name, + case when variable_value > 0 then 'WITH PASSES' else 'NO PASSES' end +from information_schema.session_status +where variable_name like 'Sort_merge_passes'; + +drop table test_table; From d06a44e027070a65c5cfc0079aa977e73fa12d0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Wed, 15 Feb 2017 08:43:39 +0200 Subject: [PATCH 245/258] MDEV-11868: min ( distinct ) over ( ) returns wrong value The bug was not visible in current HEAD. Introduced test case to catch regressions. Also improve error messages regarding distinct usage in window functions. --- mysql-test/r/win.result | 91 +++++++++++++++++++++++++++++++++++++++++ mysql-test/t/win.test | 40 ++++++++++++++++++ sql/sql_window.cc | 12 +++++- 3 files changed, 142 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index bf3dde5908a..28bd41cf3f8 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -2958,3 +2958,94 @@ develop 2 4000 4000.0000 sales 3 6000 5500.0000 sales 4 5000 5500.0000 drop table empsalary; +# +# MDEV-11868: min(distinct) over () returns wrong value +# +create table TDEC (CDEC int, RNUM int); +create view VDEC as select * from TDEC; +insert into TDEC (CDEC) values (null),(-1),(0),(1),(0),(10); +select TDEC.CDEC, min(TDEC.CDEC) over () from TDEC; +CDEC min(TDEC.CDEC) over () +NULL -1 +-1 -1 +0 -1 +1 -1 +0 -1 +10 -1 +select VDEC.CDEC, min(VDEC.CDEC) over () from VDEC; +CDEC min(VDEC.CDEC) over () +NULL -1 +-1 -1 +0 -1 +1 -1 +0 -1 +10 -1 +select TDEC.CDEC, max(TDEC.CDEC) over () from TDEC; +CDEC max(TDEC.CDEC) over () +NULL 10 +-1 10 +0 10 +1 10 +0 10 +10 10 +select VDEC.CDEC, max(VDEC.CDEC) over () from VDEC; +CDEC max(VDEC.CDEC) over () +NULL 10 +-1 10 +0 10 +1 10 +0 10 +10 10 +select TDEC.CDEC, min(distinct TDEC.CDEC) over () from TDEC; +CDEC min(distinct TDEC.CDEC) over () +NULL -1 +-1 -1 +0 -1 +1 -1 +0 -1 +10 -1 +select VDEC.CDEC, min(distinct VDEC.CDEC) over () from VDEC; +CDEC min(distinct VDEC.CDEC) over () +NULL -1 +-1 -1 +0 -1 +1 -1 +0 -1 +10 -1 +select TDEC.CDEC, max(distinct TDEC.CDEC) over () from TDEC; +CDEC max(distinct TDEC.CDEC) over () +NULL 10 +-1 10 +0 10 +1 10 +0 10 +10 10 +select VDEC.CDEC, max(distinct VDEC.CDEC) over () from VDEC; +CDEC max(distinct VDEC.CDEC) over () +NULL 10 +-1 10 +0 10 +1 10 +0 10 +10 10 +# +# These should be removed once support for them is added. +# +select TDEC.CDEC, count(distinct TDEC.CDEC) over () from TDEC; +ERROR 42000: This version of MariaDB doesn't yet support 'COUNT(DISTINCT) aggregate as window function' +select VDEC.CDEC, count(distinct VDEC.CDEC) over () from VDEC; +ERROR 42000: This version of MariaDB doesn't yet support 'COUNT(DISTINCT) aggregate as window function' +select TDEC.CDEC, sum(distinct TDEC.CDEC) over () from TDEC; +ERROR 42000: This version of MariaDB doesn't yet support 'SUM(DISTINCT) aggregate as window function' +select VDEC.CDEC, sum(distinct VDEC.CDEC) over () from VDEC; +ERROR 42000: This version of MariaDB doesn't yet support 'SUM(DISTINCT) aggregate as window function' +select TDEC.CDEC, avg(distinct TDEC.CDEC) over () from TDEC; +ERROR 42000: This version of MariaDB doesn't yet support 'AVG(DISTINCT) aggregate as window function' +select VDEC.CDEC, avg(distinct VDEC.CDEC) over () from VDEC; +ERROR 42000: This version of MariaDB doesn't yet support 'AVG(DISTINCT) aggregate as window function' +select TDEC.CDEC, GROUP_CONCAT(TDEC.CDEC) over () from TDEC; +ERROR 42000: This version of MariaDB doesn't yet support 'GROUP_CONCAT() aggregate as window function' +select VDEC.CDEC, GROUP_CONCAT(distinct VDEC.CDEC) over () from VDEC; +ERROR 42000: This version of MariaDB doesn't yet support 'GROUP_CONCAT() aggregate as window function' +drop table TDEC; +drop view VDEC; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index 011164a257e..8573c3b37bf 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1734,3 +1734,43 @@ SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM emps SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary HAVING empno > 1 ORDER BY depname; drop table empsalary; + +--echo # +--echo # MDEV-11868: min(distinct) over () returns wrong value +--echo # + +create table TDEC (CDEC int, RNUM int); +create view VDEC as select * from TDEC; +insert into TDEC (CDEC) values (null),(-1),(0),(1),(0),(10); +select TDEC.CDEC, min(TDEC.CDEC) over () from TDEC; +select VDEC.CDEC, min(VDEC.CDEC) over () from VDEC; +select TDEC.CDEC, max(TDEC.CDEC) over () from TDEC; +select VDEC.CDEC, max(VDEC.CDEC) over () from VDEC; + +select TDEC.CDEC, min(distinct TDEC.CDEC) over () from TDEC; +select VDEC.CDEC, min(distinct VDEC.CDEC) over () from VDEC; +select TDEC.CDEC, max(distinct TDEC.CDEC) over () from TDEC; +select VDEC.CDEC, max(distinct VDEC.CDEC) over () from VDEC; + +--echo # +--echo # These should be removed once support for them is added. +--echo # +--error ER_NOT_SUPPORTED_YET +select TDEC.CDEC, count(distinct TDEC.CDEC) over () from TDEC; +--error ER_NOT_SUPPORTED_YET +select VDEC.CDEC, count(distinct VDEC.CDEC) over () from VDEC; +--error ER_NOT_SUPPORTED_YET +select TDEC.CDEC, sum(distinct TDEC.CDEC) over () from TDEC; +--error ER_NOT_SUPPORTED_YET +select VDEC.CDEC, sum(distinct VDEC.CDEC) over () from VDEC; +--error ER_NOT_SUPPORTED_YET +select TDEC.CDEC, avg(distinct TDEC.CDEC) over () from TDEC; +--error ER_NOT_SUPPORTED_YET +select VDEC.CDEC, avg(distinct VDEC.CDEC) over () from VDEC; +--error ER_NOT_SUPPORTED_YET +select TDEC.CDEC, GROUP_CONCAT(TDEC.CDEC) over () from TDEC; +--error ER_NOT_SUPPORTED_YET +select VDEC.CDEC, GROUP_CONCAT(distinct VDEC.CDEC) over () from VDEC; + +drop table TDEC; +drop view VDEC; diff --git a/sql/sql_window.cc b/sql/sql_window.cc index eb06824402d..557c7503306 100644 --- a/sql/sql_window.cc +++ b/sql/sql_window.cc @@ -2699,10 +2699,20 @@ bool Window_func_runner::add_function_to_run(Item_window_func *win_func) { /* Distinct is not yet supported. */ case Item_sum::GROUP_CONCAT_FUNC: + my_error(ER_NOT_SUPPORTED_YET, MYF(0), + "GROUP_CONCAT() aggregate as window function"); + return true; case Item_sum::SUM_DISTINCT_FUNC: + my_error(ER_NOT_SUPPORTED_YET, MYF(0), + "SUM(DISTINCT) aggregate as window function"); + return true; case Item_sum::AVG_DISTINCT_FUNC: my_error(ER_NOT_SUPPORTED_YET, MYF(0), - "This aggregate as window function"); + "AVG(DISTINCT) aggregate as window function"); + return true; + case Item_sum::COUNT_DISTINCT_FUNC: + my_error(ER_NOT_SUPPORTED_YET, MYF(0), + "COUNT(DISTINCT) aggregate as window function"); return true; default: break; From eb54d86b584833fe3586467a65794c3e46f3ddb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Wed, 15 Feb 2017 08:53:25 +0200 Subject: [PATCH 246/258] MDEV-10700: 10.2.2 windowing function returns incorrect result This bug is fixed by MDEV-10092. Add test case to check for regressions. --- mysql-test/r/win.result | 26 ++++++++++++++++++++++++++ mysql-test/t/win.test | 19 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index 28bd41cf3f8..e1d03739b3d 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -3049,3 +3049,29 @@ select VDEC.CDEC, GROUP_CONCAT(distinct VDEC.CDEC) over () from VDEC; ERROR 42000: This version of MariaDB doesn't yet support 'GROUP_CONCAT() aggregate as window function' drop table TDEC; drop view VDEC; +# +# MDEV-10700: 10.2.2 windowing function returns incorrect result +# +create table t(a int,b int, c int , d int); +insert into t(a,b,c,d) values(1, rand(10)*1000, rand(10)*1000, rand(10)*1000); +insert into t(a,b,c,d) values(1, rand(10)*1000, rand(10)*1000, rand(10)*1000); +replace into t(a,b,c,d) select 1, rand(10)*1000, rand(10)*1000, rand(10)*1000 from t t1, t t2, t t3, t t4, t t5, t t6, t t7, t t8, t t9, t t10, t t11, t t12, t t13, t t14, t t15, t t16, t t17; +select count(distinct s) from (select sum(d) over(partition by a,b,c) as s from t) Z where s > 0; +count(distinct s) +993 +select count(distinct s) from (select sum(d) as s from t group by a,b,c) Z where s > 0; +count(distinct s) +993 +select count(distinct s) from (select sum(d) over(partition by a,b) as s from t) Z where s > 0; +count(distinct s) +993 +select count(distinct s) from (select sum(d) as s from t group by a,b) Z where s > 0; +count(distinct s) +993 +select count(distinct s) from (select sum(d) over(partition by a) as s from t) Z where s > 0; +count(distinct s) +1 +select count(distinct s) from (select sum(d) as s from t group by a) Z where s > 0; +count(distinct s) +1 +drop table t; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index 8573c3b37bf..0661daba7ef 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1774,3 +1774,22 @@ select VDEC.CDEC, GROUP_CONCAT(distinct VDEC.CDEC) over () from VDEC; drop table TDEC; drop view VDEC; + +--echo # +--echo # MDEV-10700: 10.2.2 windowing function returns incorrect result +--echo # +create table t(a int,b int, c int , d int); +insert into t(a,b,c,d) values(1, rand(10)*1000, rand(10)*1000, rand(10)*1000); +insert into t(a,b,c,d) values(1, rand(10)*1000, rand(10)*1000, rand(10)*1000); +replace into t(a,b,c,d) select 1, rand(10)*1000, rand(10)*1000, rand(10)*1000 from t t1, t t2, t t3, t t4, t t5, t t6, t t7, t t8, t t9, t t10, t t11, t t12, t t13, t t14, t t15, t t16, t t17; + +select count(distinct s) from (select sum(d) over(partition by a,b,c) as s from t) Z where s > 0; +select count(distinct s) from (select sum(d) as s from t group by a,b,c) Z where s > 0; + +select count(distinct s) from (select sum(d) over(partition by a,b) as s from t) Z where s > 0; +select count(distinct s) from (select sum(d) as s from t group by a,b) Z where s > 0; + +select count(distinct s) from (select sum(d) over(partition by a) as s from t) Z where s > 0; +select count(distinct s) from (select sum(d) as s from t group by a) Z where s > 0; + +drop table t; From 24911cee4e3be988848f6eab4d768849709f5256 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Wed, 15 Feb 2017 14:08:03 +0200 Subject: [PATCH 247/258] MariaDB 10.2 can now start from MySQL 5.7 data directory An upgrade is still necessary however. --- debian/mariadb-server-10.2.preinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/mariadb-server-10.2.preinst b/debian/mariadb-server-10.2.preinst index f2b8882ab8e..ed987507d18 100644 --- a/debian/mariadb-server-10.2.preinst +++ b/debian/mariadb-server-10.2.preinst @@ -50,7 +50,7 @@ stop_server() { ################################ main() ########################## this_version=10.2 -max_upgradeable_version=5.6 +max_upgradeable_version=5.7 # Check if a flag file is found that indicates a previous MariaDB or MySQL # version was installed. If multiple flags are found, check which one was From e688d8144411e38253b7ec4e13f67a989da8bb76 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Tue, 14 Feb 2017 07:18:55 -0800 Subject: [PATCH 248/258] MDEV-10694 - SIGFPE and/or huge memory allocation in maria_create ... The issue was that JOIN::rollup_write_data() used JOIN::tmp_table_param::[start_]recinfo, which had uninitialized data. These fields have uninitialized data, because JOIN::tmp_table_param currently only stores some grouping-related data fields. The data about the work (temporary) tables themselves is stored in join->join_tab[...].tmp_table_param. The fix is to make JOIN::rollup_write_data follow this convention and look at the right TMP_TABLE_PARAM object --- mysql-test/r/group_by.result | 9 +++++++++ mysql-test/t/group_by.test | 8 ++++++++ sql/sql_select.cc | 11 +++++++---- sql/sql_select.h | 2 +- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result index 8788114583d..bd5f4bc1efd 100644 --- a/mysql-test/r/group_by.result +++ b/mysql-test/r/group_by.result @@ -2771,3 +2771,12 @@ SELECT 1 IN ( SELECT COUNT( DISTINCT f2 ) FROM t1 WHERE f1 <= 4 ); 1 IN ( SELECT COUNT( DISTINCT f2 ) FROM t1 WHERE f1 <= 4 ) 0 drop table t1; +# +# MDEV-10694 - SIGFPE and/or huge memory allocation in maria_create with distinct/group by/ rollup +# +create table t1 (a int,b int) ; +insert into t1 values(-126,7),(1,1),(0,0),(-1,1),(351,65534); +select distinct 1 from t1 group by a,b with rollup limit 1; +1 +1 +drop table t1; diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test index a97d8ef4248..acb33c2c115 100644 --- a/mysql-test/t/group_by.test +++ b/mysql-test/t/group_by.test @@ -1876,3 +1876,11 @@ INSERT INTO t1 VALUES (0,'foo'),(1,'bar'); SELECT 1 IN ( SELECT COUNT( DISTINCT f2 ) FROM t1 WHERE f1 <= 4 ); drop table t1; +--echo # +--echo # MDEV-10694 - SIGFPE and/or huge memory allocation in maria_create with distinct/group by/ rollup +--echo # +create table t1 (a int,b int) ; +insert into t1 values(-126,7),(1,1),(0,0),(-1,1),(351,65534); +select distinct 1 from t1 group by a,b with rollup limit 1; +drop table t1; + diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 473270f8a69..ea0f4891de1 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -20037,8 +20037,11 @@ end_write_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), } if (join->rollup.state != ROLLUP::STATE_NONE) { - if (join->rollup_write_data((uint) (idx+1), table)) + if (join->rollup_write_data((uint) (idx+1), + join_tab->tmp_table_param, table)) + { DBUG_RETURN(NESTED_LOOP_ERROR); + } } if (end_of_records) goto end; @@ -23844,7 +23847,7 @@ int JOIN::rollup_send_data(uint idx) 1 if write_data_failed() */ -int JOIN::rollup_write_data(uint idx, TABLE *table_arg) +int JOIN::rollup_write_data(uint idx, TMP_TABLE_PARAM *tmp_table_param_arg, TABLE *table_arg) { uint i; for (i= send_group_parts ; i-- > idx ; ) @@ -23865,8 +23868,8 @@ int JOIN::rollup_write_data(uint idx, TABLE *table_arg) if ((write_error= table_arg->file->ha_write_tmp_row(table_arg->record[0]))) { if (create_internal_tmp_table_from_heap(thd, table_arg, - tmp_table_param.start_recinfo, - &tmp_table_param.recinfo, + tmp_table_param_arg->start_recinfo, + &tmp_table_param_arg->recinfo, write_error, 0, NULL)) return 1; } diff --git a/sql/sql_select.h b/sql/sql_select.h index f5bbc6718a0..76cded43128 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -1559,7 +1559,7 @@ public: bool rollup_make_fields(List &all_fields, List &fields, Item_sum ***func); int rollup_send_data(uint idx); - int rollup_write_data(uint idx, TABLE *table); + int rollup_write_data(uint idx, TMP_TABLE_PARAM *tmp_table_param, TABLE *table); void join_free(); /** Cleanup this JOIN, possibly for reuse */ void cleanup(bool full); From 37925c6ccc61bd4d5af4956dbd877c69983c09f3 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Wed, 15 Feb 2017 22:41:45 -0800 Subject: [PATCH 249/258] Fixed bug mdev-9924. Supported queries with window functions when GROUP BY could be optimized away. --- mysql-test/r/win.result | 21 +++++++++++++++++++++ mysql-test/t/win.test | 16 ++++++++++++++++ sql/sql_select.cc | 5 ++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/win.result b/mysql-test/r/win.result index e1d03739b3d..f0a9aea0419 100644 --- a/mysql-test/r/win.result +++ b/mysql-test/r/win.result @@ -3075,3 +3075,24 @@ select count(distinct s) from (select sum(d) as s from t group by a) Z where s > count(distinct s) 1 drop table t; +# +# MDEV-9924: window function in query with group by optimized away +# +create table t1 (i int); +insert into t1 values (2),(3),(1); +select row_number() over () from t1 group by 1+2; +row_number() over () +1 +select max(i), row_number() over () from t1 group by 1+2; +max(i) row_number() over () +3 1 +select rank() over (order by max(i)) from t1 group by 1+2; +rank() over (order by max(i)) +1 +select i, row_number() over () from t1 group by 1+2; +i row_number() over () +2 1 +select i, rank() over (order by i) rnk from t1 group by 1+2; +i rnk +2 1 +drop table t1; diff --git a/mysql-test/t/win.test b/mysql-test/t/win.test index 0661daba7ef..ec083733f77 100644 --- a/mysql-test/t/win.test +++ b/mysql-test/t/win.test @@ -1793,3 +1793,19 @@ select count(distinct s) from (select sum(d) over(partition by a) as s from t) Z select count(distinct s) from (select sum(d) as s from t group by a) Z where s > 0; drop table t; + +--echo # +--echo # MDEV-9924: window function in query with group by optimized away +--echo # + +create table t1 (i int); +insert into t1 values (2),(3),(1); + +select row_number() over () from t1 group by 1+2; +select max(i), row_number() over () from t1 group by 1+2; +select rank() over (order by max(i)) from t1 group by 1+2; + +select i, row_number() over () from t1 group by 1+2; +select i, rank() over (order by i) rnk from t1 group by 1+2; + +drop table t1; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index ea0f4891de1..802e0d27e88 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2226,6 +2226,9 @@ bool JOIN::make_aggr_tables_info() sort_and_group_aggr_tab= NULL; + if (group_optimized_away) + implicit_grouping= true; + bool implicit_grouping_with_window_funcs= implicit_grouping && select_lex->have_window_funcs(); @@ -2574,7 +2577,7 @@ bool JOIN::make_aggr_tables_info() tmp_table_param.copy_field= tmp_table_param.copy_field_end=0; first_record= sort_and_group=0; - if (!group_optimized_away) + if (!group_optimized_away || implicit_grouping_with_window_funcs) { group= false; } From 7a5288015c8afeaaef4d5dd04057f78c7978eeee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 16 Feb 2017 09:16:11 +0200 Subject: [PATCH 250/258] MDEV-12072 Do not unnecessarily construct rec_printer objects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I introduced the rec_printer object in MySQL to pretty-print raw InnoDB records and index tuples in diagnostic messages. These objects are being constructed unconditionally, even though the DBUG_PRINT is not enabled. The unnecessary work is avoided by simply passing rec_printer(…).str() to the DBUG_LOG macro that was introduced in MDEV-11713. --- storage/innobase/btr/btr0cur.cc | 54 ++++++------------- storage/innobase/row/row0log.cc | 58 +++++++------------- storage/innobase/row/row0merge.cc | 88 ++++++++++++------------------- 3 files changed, 68 insertions(+), 132 deletions(-) diff --git a/storage/innobase/btr/btr0cur.cc b/storage/innobase/btr/btr0cur.cc index 9033c399ce2..bdf3bd2eca7 100644 --- a/storage/innobase/btr/btr0cur.cc +++ b/storage/innobase/btr/btr0cur.cc @@ -3012,18 +3012,10 @@ fail_err: page_cursor = btr_cur_get_page_cur(cursor); -#ifdef UNIV_DEBUG - { - rec_printer p(entry); - DBUG_PRINT("ib_cur", ("insert %s (" IB_ID_FMT ") by " IB_ID_FMT " %s", - index->name(), index->id, - thr != NULL - ? trx_get_id_for_print(thr_get_trx(thr)) - : 0, - p.str().c_str())); - } -#endif - + DBUG_LOG("ib_cur", + "insert " << index->name << " (" << index->id << ") by " + << ib::hex(thr ? trx_get_id_for_print(thr_get_trx(thr)) : 0) + << ' ' << rec_printer(entry).str()); DBUG_EXECUTE_IF("do_page_reorganize", btr_page_reorganize(page_cursor, index, mtr);); @@ -3635,14 +3627,10 @@ btr_cur_update_in_place( ut_ad(fil_page_index_page_check(btr_cur_get_page(cursor))); ut_ad(btr_page_get_index_id(btr_cur_get_page(cursor)) == index->id); -#ifdef UNIV_DEBUG - { - rec_printer p(rec, offsets); - DBUG_PRINT("ib_cur", ("update-in-place %s (" IB_ID_FMT ") by " IB_ID_FMT ": %s", - index->name(), index->id, trx_id, - p.str().c_str())); - } -#endif + DBUG_LOG("ib_cur", + "update-in-place " << index->name << " (" << index->id + << ") by " << ib::hex(trx_id) << ": " + << rec_printer(rec, offsets).str()); block = btr_cur_get_block(cursor); page_zip = buf_block_get_page_zip(block); @@ -3842,14 +3830,10 @@ any_extern: } } -#ifdef UNIV_DEBUG - { - rec_printer p(rec, *offsets); - DBUG_PRINT("ib_cur", ("update %s (" IB_ID_FMT ") by " IB_ID_FMT ": %s", - index->name(), index->id, trx_id, - p.str().c_str())); - } -#endif + DBUG_LOG("ib_cur", + "update " << index->name << " (" << index->id << ") by " + << ib::hex(trx_id) << ": " + << rec_printer(rec, *offsets).str()); page_cursor = btr_cur_get_page_cur(cursor); @@ -4669,15 +4653,11 @@ btr_cur_del_mark_set_clust_rec( ut_ad(trx_state_eq(trx, TRX_STATE_ACTIVE)); ut_ad(!trx->in_rollback); -#ifdef UNIV_DEBUG - { - rec_printer p(rec, offsets); - DBUG_PRINT("ib_cur", ("delete-mark clust %s (" IB_ID_FMT ") by " IB_ID_FMT ": %s", - index->table_name, index->id, - trx_get_id_for_print(trx), - p.str().c_str())); - } -#endif + DBUG_LOG("ib_cur", + "delete-mark clust " << index->table->name + << " (" << index->id << ") by " + << ib::hex(trx_get_id_for_print(trx)) << ": " + << rec_printer(rec, offsets).str()); if (dict_index_is_online_ddl(index)) { row_log_table_delete(rec, entry, index, offsets, NULL); diff --git a/storage/innobase/row/row0log.cc b/storage/innobase/row/row0log.cc index d43fb333cdc..0fc1dd097cc 100644 --- a/storage/innobase/row/row0log.cc +++ b/storage/innobase/row/row0log.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. 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 @@ -1641,15 +1642,9 @@ row_log_table_apply_insert_low( ut_ad(dtuple_validate(row)); ut_ad(trx_id); -#ifdef UNIV_DEBUG - { - rec_printer p(row); - DBUG_PRINT("ib_alter_table", - ("insert table " IB_ID_FMT " (index " IB_ID_FMT "): %s", - index->table->id, index->id, - p.str().c_str())); - } -#endif + DBUG_LOG("ib_alter_table", + "insert table " << index->table->id << " (index " + << index->id << "): " << rec_printer(row).str()); static const ulint flags = (BTR_CREATE_FLAG @@ -1777,15 +1772,10 @@ row_log_table_apply_delete_low( ut_ad(dict_index_is_clust(index)); -#ifdef UNIV_DEBUG - { - rec_printer p(btr_pcur_get_rec(pcur), offsets); - DBUG_PRINT("ib_alter_table", - ("delete table " IB_ID_FMT " (index " IB_ID_FMT "): %s", - index->table->id, index->id, - p.str().c_str())); - } -#endif + DBUG_LOG("ib_alter_table", + "delete table " << index->table->id << " (index " + << index->id << "): " + << rec_printer(btr_pcur_get_rec(pcur), offsets).str()); if (dict_table_get_next_index(index)) { /* Build a row template for purging secondary index entries. */ @@ -2266,17 +2256,11 @@ func_exit_committed: cur_offsets, NULL, NULL, NULL, &old_ext, heap); ut_ad(old_row); -#ifdef UNIV_DEBUG - { - rec_printer old(old_row); - rec_printer new_row(row); - DBUG_PRINT("ib_alter_table", - ("update table " IB_ID_FMT " (index " IB_ID_FMT "): %s to %s", - index->table->id, index->id, - old.str().c_str(), - new_row.str().c_str())); - } -#endif + DBUG_LOG("ib_alter_table", + "update table " << index->table->id + << " (index " << index->id + << ": " << rec_printer(old_row).str() + << " to " << rec_printer(row).str()); } else { old_row = NULL; old_ext = NULL; @@ -3298,17 +3282,11 @@ row_log_apply_op_low( ut_ad(!dict_index_is_corrupted(index)); ut_ad(trx_id != 0 || op == ROW_OP_DELETE); -#ifdef UNIV_DEBUG - { - rec_printer p(entry); - DBUG_PRINT("ib_create_index", - ("%s %s index " IB_ID_FMT "," IB_ID_FMT ": %s", - op == ROW_OP_INSERT ? "insert" : "delete", - has_index_lock ? "locked" : "unlocked", - index->id, trx_id, - p.str().c_str())); - } -#endif + DBUG_LOG("ib_create_index", + (op == ROW_OP_INSERT ? "insert " : "delete ") + << (has_index_lock ? "locked index " : "unlocked index ") + << index->id << ',' << ib::hex(trx_id) << ": " + << rec_printer(entry).str()); mtr_start(&mtr); mtr.set_named_space(index->space); diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc index 57dd8f75e8e..8fc7ecf75ac 100644 --- a/storage/innobase/row/row0merge.cc +++ b/storage/innobase/row/row0merge.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. 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 @@ -1100,16 +1101,11 @@ row_merge_buf_write( row_merge_buf_encode(&b, index, entry, n_fields); ut_ad(b < &block[srv_sort_buf_size]); -#ifdef UNIV_DEBUG - { - rec_printer p(entry->fields, n_fields); - DBUG_PRINT("ib_merge_sort", - ("%p,fd=%d,%lu %lu: %s", - reinterpret_cast(b), of->fd, - (ulint)of->offset, (ulint)i, - p.str().c_str())); - } -#endif + DBUG_LOG("ib_merge_sort", + reinterpret_cast(b) << ',' + << of->fd << ',' << of->offset << ' ' << + i << ": " << + rec_printer(entry->fields, n_fields).str()); } /* Write an "end-of-chunk" marker. */ @@ -1121,10 +1117,9 @@ row_merge_buf_write( to avoid bogus warnings. */ memset(b, 0xff, &block[srv_sort_buf_size] - b); #endif /* UNIV_DEBUG_VALGRIND */ - DBUG_PRINT("ib_merge_sort", - ("write %p,%d,%lu EOF", - reinterpret_cast(b), of->fd, - (ulint)of->offset)); + DBUG_LOG("ib_merge_sort", + "write " << reinterpret_cast(b) << ',' + << of->fd << ',' << of->offset << " EOF"); DBUG_VOID_RETURN; } @@ -1177,7 +1172,7 @@ row_merge_read( os_offset_t ofs = ((os_offset_t) offset) * srv_sort_buf_size; DBUG_ENTER("row_merge_read"); - DBUG_PRINT("ib_merge_sort", ("fd=%d ofs=" UINT64PF, fd, ofs)); + DBUG_LOG("ib_merge_sort", "fd=" << fd << " ofs=" << ofs); DBUG_EXECUTE_IF("row_merge_read_failure", DBUG_RETURN(FALSE);); IORequest request; @@ -1224,7 +1219,7 @@ row_merge_write( void* out_buf = (void *)buf; DBUG_ENTER("row_merge_write"); - DBUG_PRINT("ib_merge_sort", ("fd=%d ofs=" UINT64PF, fd, ofs)); + DBUG_LOG("ib_merge_sort", "fd=" << fd << " ofs=" << ofs); DBUG_EXECUTE_IF("row_merge_write_failure", DBUG_RETURN(FALSE);); IORequest request(IORequest::WRITE); @@ -1296,11 +1291,10 @@ row_merge_read_rec( if (UNIV_UNLIKELY(!extra_size)) { /* End of list */ *mrec = NULL; - DBUG_PRINT("ib_merge_sort", - ("read %p,%p,%d,%lu EOF\n", - reinterpret_cast(b), - reinterpret_cast(block), - fd, ulint(*foffs))); + DBUG_LOG("ib_merge_sort", + "read " << reinterpret_cast(b) << ',' << + reinterpret_cast(block) << ',' << + fd << ',' << *foffs << " EOF"); DBUG_RETURN(NULL); } @@ -1413,18 +1407,11 @@ err_exit: b += extra_size + data_size - avail_size; func_exit: - -#ifdef UNIV_DEBUG - { - rec_printer p(*mrec, 0, offsets); - DBUG_PRINT("ib_merge_sort", - ("%p,%p,fd=%d,%lu: %s", - reinterpret_cast(b), - reinterpret_cast(block), - fd, ulint(*foffs), - p.str().c_str())); - } -#endif + DBUG_LOG("ib_merge_sort", + reinterpret_cast(b) << ',' << + reinterpret_cast(block) + << ",fd=" << fd << ',' << *foffs << ": " + << rec_printer(*mrec, 0, offsets).str()); DBUG_RETURN(b); } @@ -1455,15 +1442,9 @@ row_merge_write_rec_low( #endif /* DBUG_OFF */ DBUG_ASSERT(e == rec_offs_extra_size(offsets) + 1); -#ifdef UNIV_DEBUG - { - rec_printer p(mrec, 0, offsets); - DBUG_PRINT("ib_merge_sort", - ("%p,fd=%d,%lu: %s", - reinterpret_cast(b), fd, ulint(foffs), - p.str().c_str())); - } -#endif + DBUG_LOG("ib_merge_sort", + reinterpret_cast(b) << ",fd=" << fd << ',' + << foffs << ": " << rec_printer(mrec, 0, offsets).str()); if (e < 0x80) { *b++ = (byte) e; @@ -1573,11 +1554,10 @@ row_merge_write_eof( ut_ad(foffs); DBUG_ENTER("row_merge_write_eof"); - DBUG_PRINT("ib_merge_sort", - ("%p,%p,fd=%d,%lu", - reinterpret_cast(b), - reinterpret_cast(block), - fd, ulint(*foffs))); + DBUG_LOG("ib_merge_sort", + reinterpret_cast(b) << ',' << + reinterpret_cast(block) << + ",fd=" << fd << ',' << *foffs); if (b == &block[0]) { b+= ROW_MERGE_RESERVE_SIZE; @@ -2937,10 +2917,9 @@ row_merge_blocks( ulint* offsets1;/* offsets of mrec1 */ DBUG_ENTER("row_merge_blocks"); - DBUG_PRINT("ib_merge_sort", - ("fd=%d,%lu+%lu to fd=%d,%lu", - file->fd, ulint(*foffs0), ulint(*foffs1), - of->fd, ulint(of->offset))); + DBUG_LOG("ib_merge_sort", + "fd=" << file->fd << ',' << *foffs0 << '+' << *foffs1 + << " to fd=" << of->fd << ',' << of->offset); heap = row_merge_heap_create(dup->index, &buf, &offsets0, &offsets1); @@ -3050,10 +3029,9 @@ row_merge_blocks_copy( ulint* offsets1;/* dummy offsets */ DBUG_ENTER("row_merge_blocks_copy"); - DBUG_PRINT("ib_merge_sort", - ("fd=%d,%lu to fd=%d,%lu", - file->fd, ulint(foffs0), - of->fd, ulint(of->offset))); + DBUG_LOG("ib_merge_sort", + "fd=" << file->fd << ',' << foffs0 + << " to fd=" << of->fd << ',' << of->offset); heap = row_merge_heap_create(index, &buf, &offsets0, &offsets1); From 34bbc76f1c1f6968cdcf65dee2d887ab71557e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 16 Feb 2017 09:18:46 +0200 Subject: [PATCH 251/258] Simplify a WL#6494/WL#7142 test. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The test innodb.log_file_size_checkpoint was originally added to MySQL 5.7 by me in a bug fix, to fix the interaction of WL#6494 (redo log resizing, introduced in MySQL 5.6) and WL#7142 (data file discovery based on MLOG_FILE_NAME records, introduced in MySQL 5.7): commit 70f9ef4e1220827132b50275ca7272f2bcca1864 Author: Marko Mäkelä Date: Wed May 21 13:31:29 2014 +0300 Bug#18755095 REDO LOG SIZE CHANGE AFTER CRASH RESULTS IN CHECKPOINT AGE ERROR MESSAGE This is a regression from fixing Bug#18730524 REPEATED KILL+RESTART FAILS DUE TO MISSING MLOG_FILE_NAME RECORD innobase_start_or_create_for_mysql(): Invoke fil_names_clear() before creating the "checkpoint" when changing redo log files. Approved by Jimmy Yang on IM. The relevant part of the test is that fil_names_clear() is invoked to emit an MLOG_CHECKPOINT record before the redo log files are deleted. In case the server is killed before ib_logfile0 has been deleted, the old (not-yet-resized) redo log will be treated as valid. We do not need to create a large number of tables for that. --- .../suite/innodb/r/log_file_name_debug.result | 6 +++++ .../innodb/r/log_file_size_checkpoint.result | 4 --- .../suite/innodb/t/log_file_name_debug.test | 26 +++++++++++++++--- .../innodb/t/log_file_size_checkpoint.test | 27 ------------------- storage/innobase/srv/srv0start.cc | 16 ++++++++--- 5 files changed, 41 insertions(+), 38 deletions(-) delete mode 100644 mysql-test/suite/innodb/r/log_file_size_checkpoint.result delete mode 100644 mysql-test/suite/innodb/t/log_file_size_checkpoint.test diff --git a/mysql-test/suite/innodb/r/log_file_name_debug.result b/mysql-test/suite/innodb/r/log_file_name_debug.result index e82feef870c..e33ce36d1f2 100644 --- a/mysql-test/suite/innodb/r/log_file_name_debug.result +++ b/mysql-test/suite/innodb/r/log_file_name_debug.result @@ -5,4 +5,10 @@ SET GLOBAL DEBUG_DBUG='+d,fil_names_write_bogus'; CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; # Kill the server +SELECT * FROM t1; +ERROR 42000: Unknown storage engine 'InnoDB' +FOUND /InnoDB: Tablespace 4294967280 was not found at .*, but there were no modifications either/ in mysqld.1.err +SELECT * FROM t1; +ERROR 42000: Unknown storage engine 'InnoDB' +FOUND /srv_prepare_to_delete_redo_log_files: ib_log: MLOG_CHECKPOINT.* written/ in mysqld.1.err DROP TABLE t1; diff --git a/mysql-test/suite/innodb/r/log_file_size_checkpoint.result b/mysql-test/suite/innodb/r/log_file_size_checkpoint.result deleted file mode 100644 index 068b1368e1e..00000000000 --- a/mysql-test/suite/innodb/r/log_file_size_checkpoint.result +++ /dev/null @@ -1,4 +0,0 @@ -CREATE DATABASE logtest; -USE logtest; -# Kill and restart: --innodb-log-files-in-group=2 --innodb-log-file-size=4M --innodb-buffer-pool-size=50M -DROP DATABASE logtest; diff --git a/mysql-test/suite/innodb/t/log_file_name_debug.test b/mysql-test/suite/innodb/t/log_file_name_debug.test index 41d7ec2e53e..44012d38c8e 100644 --- a/mysql-test/suite/innodb/t/log_file_name_debug.test +++ b/mysql-test/suite/innodb/t/log_file_name_debug.test @@ -10,9 +10,15 @@ SET GLOBAL DEBUG_DBUG='+d,fil_names_write_bogus'; --disable_query_log +call mtr.add_suppression("InnoDB: Plugin initialization aborted"); +call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); +call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); FLUSH TABLES; --enable_query_log +--let $n_logs=`SELECT if(@@innodb_log_files_in_group = 1, 2, 1)` +--let $resize= --innodb-log-files-in-group=$n_logs --innodb-log-file-size=4M + --source include/no_checkpoint_start.inc CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; @@ -20,12 +26,24 @@ CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; --let CLEANUP_IF_CHECKPOINT=DROP TABLE t1; --source include/no_checkpoint_end.inc +--let $restart_parameters= --debug=d,innodb_log_abort_1 $resize --source include/start_mysqld.inc - -DROP TABLE t1; +--error ER_UNKNOWN_STORAGE_ENGINE +SELECT * FROM t1; --let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err ---let SEARCH_PATTERN = InnoDB: Tablespace 4294967280 was not found at .*, but there were no modifications either ---let SEARCH_ABORT = NOT FOUND --let SEARCH_RANGE = -50000 +--let SEARCH_PATTERN = InnoDB: Tablespace 4294967280 was not found at .*, but there were no modifications either --source include/search_pattern_in_file.inc + +--let $restart_parameters= --debug=d,innodb_log_abort_3,ib_log $resize +--source include/restart_mysqld.inc +--error ER_UNKNOWN_STORAGE_ENGINE +SELECT * FROM t1; +--let SEARCH_PATTERN= srv_prepare_to_delete_redo_log_files: ib_log: MLOG_CHECKPOINT.* written +--source include/search_pattern_in_file.inc + +--let $restart_parameters= +--source include/restart_mysqld.inc +DROP TABLE t1; + diff --git a/mysql-test/suite/innodb/t/log_file_size_checkpoint.test b/mysql-test/suite/innodb/t/log_file_size_checkpoint.test deleted file mode 100644 index 16b71bfd1f4..00000000000 --- a/mysql-test/suite/innodb/t/log_file_size_checkpoint.test +++ /dev/null @@ -1,27 +0,0 @@ ---source include/have_innodb.inc ---source include/not_embedded.inc ---source include/no_valgrind_without_big.inc - -CREATE DATABASE logtest; -USE logtest; -let $n=250; -let $t=veryLongTableNameToCreateMLOG_FILE_NAMErecords; - ---disable_query_log -let $i=$n; -while ($i) -{ ---eval CREATE TABLE $t$i(a INT PRIMARY KEY) ENGINE=InnoDB; -dec $i; -} - -# If we set above n to 500, this test case could fail easily, because -# the inndob buffer pool is too small, some of which would be occupied -# by the recv*. With n=250, this test case could sporadically fail too. -# So we have to set buffer pool size to 50M which should be enough for this -# test case. Once we fix the bug#22179133 and bug#22186325, we should use -# the default innodb buffer pool(or the smaller one). -let $restart_parameters = --innodb-log-files-in-group=2 --innodb-log-file-size=4M --innodb-buffer-pool-size=50M; ---source include/kill_and_restart_mysqld.inc - -DROP DATABASE logtest; diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 193003fb9a6..8afa90502d0 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -421,9 +421,11 @@ create_log_files( DBUG_EXECUTE_IF("innodb_log_abort_6", return(DB_ERROR);); } + DBUG_PRINT("ib_log", ("After innodb_log_abort_6")); ut_ad(!buf_pool_check_no_pending_io()); DBUG_EXECUTE_IF("innodb_log_abort_7", return(DB_ERROR);); + DBUG_PRINT("ib_log", ("After innodb_log_abort_7")); for (unsigned i = 0; i < srv_n_log_files; i++) { sprintf(logfilename + dirnamelen, @@ -437,6 +439,7 @@ create_log_files( } DBUG_EXECUTE_IF("innodb_log_abort_8", return(DB_ERROR);); + DBUG_PRINT("ib_log", ("After innodb_log_abort_8")); /* We did not create the first log file initially as ib_logfile0, so that crash recovery cannot find it until it @@ -445,7 +448,7 @@ create_log_files( fil_space_t* log_space = fil_space_create( "innodb_redo_log", SRV_LOG_SPACE_FIRST_ID, 0, FIL_TYPE_LOG, - NULL, /* No encryption yet */ + NULL, /* innodb_encrypt_log works at a different level */ true /* this is create */); ut_a(fil_validate()); ut_a(log_space != NULL); @@ -513,6 +516,7 @@ create_log_files_rename( fil_flush(SRV_LOG_SPACE_FIRST_ID); DBUG_EXECUTE_IF("innodb_log_abort_9", return(DB_ERROR);); + DBUG_PRINT("ib_log", ("After innodb_log_abort_9")); /* Close the log files, so that we can rename the first one. */ @@ -1348,6 +1352,8 @@ lsn_t srv_prepare_to_delete_redo_log_files( ulint n_files) { + DBUG_ENTER("srv_prepare_to_delete_redo_log_files"); + lsn_t flushed_lsn; ulint pending_io = 0; ulint count = 0; @@ -1356,7 +1362,8 @@ srv_prepare_to_delete_redo_log_files( /* Clean the buffer pool. */ buf_flush_sync_all_buf_pools(); - DBUG_EXECUTE_IF("innodb_log_abort_1", return(0);); + DBUG_EXECUTE_IF("innodb_log_abort_1", DBUG_RETURN(0);); + DBUG_PRINT("ib_log", ("After innodb_log_abort_1")); log_mutex_enter(); @@ -1426,7 +1433,7 @@ srv_prepare_to_delete_redo_log_files( } while (buf_pool_check_no_pending_io()); - return(flushed_lsn); + DBUG_RETURN(flushed_lsn); } /******************************************************************** @@ -2346,11 +2353,13 @@ files_checked: DBUG_EXECUTE_IF("innodb_log_abort_3", return(srv_init_abort(DB_ERROR));); + DBUG_PRINT("ib_log", ("After innodb_log_abort_3")); /* Stamp the LSN to the data files. */ err = fil_write_flushed_lsn(flushed_lsn); DBUG_EXECUTE_IF("innodb_log_abort_4", err = DB_ERROR;); + DBUG_PRINT("ib_log", ("After innodb_log_abort_4")); if (err != DB_SUCCESS) { return(srv_init_abort(err)); @@ -2362,6 +2371,7 @@ files_checked: DBUG_EXECUTE_IF("innodb_log_abort_5", return(srv_init_abort(DB_ERROR));); + DBUG_PRINT("ib_log", ("After innodb_log_abort_5")); /* Free the old log file space. */ log_group_close_all(); From d58b4bc6a6a0379fa5da7d53094b91c240eb58ea Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Fri, 17 Feb 2017 16:23:17 -0500 Subject: [PATCH 252/258] bump the VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index bfea448d129..e90777ce978 100644 --- a/VERSION +++ b/VERSION @@ -1,3 +1,3 @@ MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MINOR=2 -MYSQL_VERSION_PATCH=4 +MYSQL_VERSION_PATCH=5 From cc4b2b185d73963ad55730f8e3e205530a491d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 17 Feb 2017 10:23:39 +0200 Subject: [PATCH 253/258] MDEV-11802 preparation: Clean up the purge tests. Revert the MDEV-4396 tweak to innodb.innodb_bug14676111. We must fix the root cause instead. Allow gcol.innodb_virtual_purge to run on a non-debug build (If wait_innodb_all_purged.inc is used in a non-debug test, it will have no effect.) Add the test innodb.index_merge_threshold from MySQL 5.7. --- mysql-test/include/wait_innodb_all_purged.inc | 3 +- .../suite/gcol/t/innodb_virtual_purge.test | 4 +- .../include/innodb_merge_threshold_delete.inc | 119 ++ .../innodb_merge_threshold_secondary.inc | 165 ++ .../include/innodb_merge_threshold_update.inc | 101 ++ .../innodb/r/index_merge_threshold.result | 1325 +++++++++++++++++ .../suite/innodb/r/innodb_bug14676111.result | 5 +- .../suite/innodb/t/index_merge_threshold.opt | 1 + .../suite/innodb/t/index_merge_threshold.test | 189 +++ .../innodb/t/innodb_bug14676111-master.opt | 1 - .../suite/innodb/t/innodb_bug14676111.test | 11 +- 11 files changed, 1906 insertions(+), 18 deletions(-) create mode 100644 mysql-test/suite/innodb/include/innodb_merge_threshold_delete.inc create mode 100644 mysql-test/suite/innodb/include/innodb_merge_threshold_secondary.inc create mode 100644 mysql-test/suite/innodb/include/innodb_merge_threshold_update.inc create mode 100644 mysql-test/suite/innodb/r/index_merge_threshold.result create mode 100644 mysql-test/suite/innodb/t/index_merge_threshold.opt create mode 100644 mysql-test/suite/innodb/t/index_merge_threshold.test delete mode 100644 mysql-test/suite/innodb/t/innodb_bug14676111-master.opt diff --git a/mysql-test/include/wait_innodb_all_purged.inc b/mysql-test/include/wait_innodb_all_purged.inc index 97b038acc44..a77e6ec1573 100644 --- a/mysql-test/include/wait_innodb_all_purged.inc +++ b/mysql-test/include/wait_innodb_all_purged.inc @@ -9,8 +9,8 @@ # --source include/wait_innodb_all_purged.inc # --source include/have_innodb.inc ---source include/have_debug.inc +if (`select version() like '%debug%'`) { --disable_query_log let $wait_counter_init= 300; @@ -57,3 +57,4 @@ if (!$success) } --enable_query_log +} diff --git a/mysql-test/suite/gcol/t/innodb_virtual_purge.test b/mysql-test/suite/gcol/t/innodb_virtual_purge.test index f9fd02d970b..ab6ba52c2c3 100644 --- a/mysql-test/suite/gcol/t/innodb_virtual_purge.test +++ b/mysql-test/suite/gcol/t/innodb_virtual_purge.test @@ -32,7 +32,7 @@ COMMIT; UPDATE t1 SET a=1; connection default; -# wait for purge to process the update_undo record. +# wait for purge to process the update_undo record (in debug builds) --source include/wait_innodb_all_purged.inc CHECK TABLE t1; @@ -118,7 +118,7 @@ COMMIT; disconnect con1; connection default; -# wait for purge to process the update_undo record. +# wait for purge to process the update_undo record (in debug builds) --source include/wait_innodb_all_purged.inc CHECK TABLE t1; diff --git a/mysql-test/suite/innodb/include/innodb_merge_threshold_delete.inc b/mysql-test/suite/innodb/include/innodb_merge_threshold_delete.inc new file mode 100644 index 00000000000..6aad7afa878 --- /dev/null +++ b/mysql-test/suite/innodb/include/innodb_merge_threshold_delete.inc @@ -0,0 +1,119 @@ +# +# Test to cause merge of the pages (by deleting) +# test/tab1 should be created already with innodb_file_per_table=ON +# The definition is intended to be based on +# "create table tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB;" +# + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_innodb_16k.inc + +# turn on flags +--disable_query_log +SET GLOBAL innodb_monitor_enable=index_page_merge_attempts; +SET GLOBAL innodb_monitor_reset=index_page_merge_attempts; +SET GLOBAL innodb_monitor_enable=index_page_merge_successful; +SET GLOBAL innodb_monitor_reset=index_page_merge_successful; +--enable_query_log + +--echo # check MERGE_THRESHOLD +--replace_result tab1#P tab1#p +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; + +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); + +# filled 2 leaf pages have been prepared +# | 1,..,7 | 8,..,14 | + +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; + +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 5; +delete from tab1 where a = 6; +delete from tab1 where a = 7; +set global innodb_purge_run_now=ON; + +# wait for purge view progress (records are deleted actually by purge) +--source include/wait_innodb_all_purged.inc + +# not merged yet +# | 1,2,3,4 | 8,9,10,11 | + +--echo # check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; + + +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 11; +set global innodb_purge_run_now=ON; +# wait for purge view progress (records are deleted actually by purge) +--source include/wait_innodb_all_purged.inc + +--echo # check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + + +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 10; +set global innodb_purge_run_now=ON; +# wait for purge view progress (records are deleted actually by purge) +--source include/wait_innodb_all_purged.inc + +--echo # check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + + +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 9; +set global innodb_purge_run_now=ON; +# wait for purge view progress (records are deleted actually by purge) +--source include/wait_innodb_all_purged.inc + +--echo # check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + +--disable_query_log +# Reset flags +SET GLOBAL innodb_monitor_disable=index_page_merge_attempts; +SET GLOBAL innodb_monitor_disable=index_page_merge_successful; + +--disable_warnings +set global innodb_monitor_enable = default; +set global innodb_monitor_disable = default; +set global innodb_monitor_reset = default; +set global innodb_monitor_reset_all = default; +--enable_warnings +--enable_query_log diff --git a/mysql-test/suite/innodb/include/innodb_merge_threshold_secondary.inc b/mysql-test/suite/innodb/include/innodb_merge_threshold_secondary.inc new file mode 100644 index 00000000000..72242ea2e1b --- /dev/null +++ b/mysql-test/suite/innodb/include/innodb_merge_threshold_secondary.inc @@ -0,0 +1,165 @@ +# +# Test to cause merge of the pages (at secondary index by deleting) +# test/tab1 should be created already with innodb_file_per_table=ON +# The definition is intended to be based on +# "create table tab1 (a bigint primary key, b blob) engine=InnoDB row_format=dynamic;" +# "create index index1 on tab1(b(750));" +# + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_innodb_16k.inc + +# turn on flags +--disable_query_log +SET GLOBAL innodb_monitor_enable=index_page_merge_attempts; +SET GLOBAL innodb_monitor_reset=index_page_merge_attempts; +SET GLOBAL innodb_monitor_enable=index_page_merge_successful; +SET GLOBAL innodb_monitor_reset=index_page_merge_successful; +--enable_query_log + +--echo # check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; + +INSERT INTO tab1 VALUES (1, concat("01", repeat('a',8190))); +INSERT INTO tab1 VALUES (2, concat("02", repeat('a',8190))); +INSERT INTO tab1 VALUES (3, concat("03", repeat('a',8190))); +INSERT INTO tab1 VALUES (4, concat("04", repeat('a',8190))); +INSERT INTO tab1 VALUES (5, concat("05", repeat('a',8190))); +INSERT INTO tab1 VALUES (6, concat("06", repeat('a',8190))); +INSERT INTO tab1 VALUES (7, concat("07", repeat('a',8190))); +INSERT INTO tab1 VALUES (8, concat("08", repeat('a',8190))); +INSERT INTO tab1 VALUES (9, concat("09", repeat('a',8190))); +INSERT INTO tab1 VALUES (10, concat("10", repeat('a',8190))); + +INSERT INTO tab1 VALUES (22, concat("22", repeat('a',8190))); +INSERT INTO tab1 VALUES (23, concat("23", repeat('a',8190))); +INSERT INTO tab1 VALUES (24, concat("24", repeat('a',8190))); +INSERT INTO tab1 VALUES (25, concat("25", repeat('a',8190))); +INSERT INTO tab1 VALUES (26, concat("26", repeat('a',8190))); +INSERT INTO tab1 VALUES (27, concat("27", repeat('a',8190))); +INSERT INTO tab1 VALUES (28, concat("28", repeat('a',8190))); +INSERT INTO tab1 VALUES (29, concat("29", repeat('a',8190))); +INSERT INTO tab1 VALUES (30, concat("30", repeat('a',8190))); +INSERT INTO tab1 VALUES (31, concat("31", repeat('a',8190))); +INSERT INTO tab1 VALUES (32, concat("32", repeat('a',8190))); +INSERT INTO tab1 VALUES (33, concat("33", repeat('a',8190))); + +INSERT INTO tab1 VALUES (11, concat("11", repeat('a',8190))); +INSERT INTO tab1 VALUES (12, concat("12", repeat('a',8190))); +INSERT INTO tab1 VALUES (13, concat("13", repeat('a',8190))); +INSERT INTO tab1 VALUES (14, concat("14", repeat('a',8190))); +INSERT INTO tab1 VALUES (15, concat("15", repeat('a',8190))); +INSERT INTO tab1 VALUES (16, concat("16", repeat('a',8190))); +INSERT INTO tab1 VALUES (17, concat("17", repeat('a',8190))); +INSERT INTO tab1 VALUES (18, concat("18", repeat('a',8190))); +INSERT INTO tab1 VALUES (19, concat("19", repeat('a',8190))); +INSERT INTO tab1 VALUES (20, concat("20", repeat('a',8190))); +INSERT INTO tab1 VALUES (21, concat("21", repeat('a',8190))); + +INSERT INTO tab1 VALUES (34, concat("34", repeat('a',8190))); +INSERT INTO tab1 VALUES (35, concat("35", repeat('a',8190))); +INSERT INTO tab1 VALUES (36, concat("36", repeat('a',8190))); +INSERT INTO tab1 VALUES (37, concat("37", repeat('a',8190))); +INSERT INTO tab1 VALUES (38, concat("38", repeat('a',8190))); +INSERT INTO tab1 VALUES (39, concat("39", repeat('a',8190))); +INSERT INTO tab1 VALUES (40, concat("40", repeat('a',8190))); +INSERT INTO tab1 VALUES (41, concat("41", repeat('a',8190))); +INSERT INTO tab1 VALUES (42, concat("42", repeat('a',8190))); + +# clustered index is still root page only with the 42 records. +# secondary index is filled 2 leaf pages have been prepared +# | 1,..,21 | 22,..,42 | + +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; + +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 33; +delete from tab1 where a = 34; +delete from tab1 where a = 35; +delete from tab1 where a = 36; +delete from tab1 where a = 37; +delete from tab1 where a = 38; +delete from tab1 where a = 39; +delete from tab1 where a = 40; +delete from tab1 where a = 41; +delete from tab1 where a = 42; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 15; +delete from tab1 where a = 16; +delete from tab1 where a = 17; +delete from tab1 where a = 18; +delete from tab1 where a = 19; +delete from tab1 where a = 20; +delete from tab1 where a = 21; +set global innodb_purge_run_now=ON; + +# wait for purge view progress (records are deleted actually by purge) +--source include/wait_innodb_all_purged.inc + +# secondary index is not merged yet +# | 1,..,11 | 22,..,32 | + +--echo # check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; + + +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 32; +set global innodb_purge_run_now=ON; +# wait for purge view progress (records are deleted actually by purge) +--source include/wait_innodb_all_purged.inc + +--echo # check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + + +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 31; +set global innodb_purge_run_now=ON; +# wait for purge view progress (records are deleted actually by purge) +--source include/wait_innodb_all_purged.inc + +--echo # check page merge happens (MERGE_THRESHOLD=45 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + + +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 30; +set global innodb_purge_run_now=ON; +# wait for purge view progress (records are deleted actually by purge) +--source include/wait_innodb_all_purged.inc + +--echo # check page merge happens (MERGE_THRESHOLD=40 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + +--disable_query_log +# Reset flags +SET GLOBAL innodb_monitor_disable=index_page_merge_attempts; +SET GLOBAL innodb_monitor_disable=index_page_merge_successful; + +--disable_warnings +set global innodb_monitor_enable = default; +set global innodb_monitor_disable = default; +set global innodb_monitor_reset = default; +set global innodb_monitor_reset_all = default; +--enable_warnings +--enable_query_log diff --git a/mysql-test/suite/innodb/include/innodb_merge_threshold_update.inc b/mysql-test/suite/innodb/include/innodb_merge_threshold_update.inc new file mode 100644 index 00000000000..ff34cafd24a --- /dev/null +++ b/mysql-test/suite/innodb/include/innodb_merge_threshold_update.inc @@ -0,0 +1,101 @@ +# +# Test to cause merge of the pages (by updating to smaller) +# test/tab1 should be created already with innodb_file_per_table=ON +# The definition is intended to be based on +# "create table tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB;" +# + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_innodb_16k.inc + +# turn on flags +--disable_query_log +SET GLOBAL innodb_monitor_enable=index_page_merge_attempts; +SET GLOBAL innodb_monitor_reset=index_page_merge_attempts; +SET GLOBAL innodb_monitor_enable=index_page_merge_successful; +SET GLOBAL innodb_monitor_reset=index_page_merge_successful; +--enable_query_log + +--echo # check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; + +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); + +# filled 2 leaf pages have been prepared +# | 1,..,7 | 8,..,14 | + +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; + +update tab1 set b='' where a = 12; +update tab1 set b='' where a = 13; +update tab1 set b='' where a = 14; +update tab1 set b='' where a = 5; +update tab1 set b='' where a = 6; +update tab1 set b='' where a = 7; + +# not merged yet +# | 1,2,3,4 | 8,9,10,11 | + +--echo # check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; + + +update tab1 set b='' where a = 11; + +--echo # check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + + +update tab1 set b='' where a = 10; + +--echo # check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + + +update tab1 set b='' where a = 9; + +--echo # check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; + +--disable_query_log +# Reset flags +SET GLOBAL innodb_monitor_disable=index_page_merge_attempts; +SET GLOBAL innodb_monitor_disable=index_page_merge_successful; + +--disable_warnings +set global innodb_monitor_enable = default; +set global innodb_monitor_disable = default; +set global innodb_monitor_reset = default; +set global innodb_monitor_reset_all = default; +--enable_warnings +--enable_query_log diff --git a/mysql-test/suite/innodb/r/index_merge_threshold.result b/mysql-test/suite/innodb/r/index_merge_threshold.result new file mode 100644 index 00000000000..092bb69aa65 --- /dev/null +++ b/mysql-test/suite/innodb/r/index_merge_threshold.result @@ -0,0 +1,1325 @@ +CREATE TABLE tab(a BIGINT PRIMARY KEY,c1 TINYTEXT,c2 TEXT,c3 MEDIUMTEXT, +c4 TINYBLOB,c5 BLOB,c6 MEDIUMBLOB,c7 LONGBLOB) ENGINE=InnoDB; +CREATE INDEX index1 ON tab(c1(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=51'; +Warnings: +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +CREATE INDEX index2 ON tab(c2(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=-1'; +Warnings: +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +CREATE INDEX index3 ON tab(c3(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=20'; +Warnings: +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +CREATE INDEX index4 ON tab(c4(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=25'; +Warnings: +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +CREATE INDEX index5 ON tab(c5(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=30'; +Warnings: +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +CREATE INDEX index6 ON tab(c6(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=35'; +Warnings: +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +CREATE INDEX index7 ON tab(c7(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=40'; +Warnings: +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +SHOW CREATE TABLE tab; +Table Create Table +tab CREATE TABLE `tab` ( + `a` bigint(20) NOT NULL, + `c1` tinytext DEFAULT NULL, + `c2` text DEFAULT NULL, + `c3` mediumtext DEFAULT NULL, + `c4` tinyblob DEFAULT NULL, + `c5` blob DEFAULT NULL, + `c6` mediumblob DEFAULT NULL, + `c7` longblob DEFAULT NULL, + PRIMARY KEY (`a`), + KEY `index1` (`c1`(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=51', + KEY `index2` (`c2`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=-1', + KEY `index3` (`c3`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=20', + KEY `index4` (`c4`(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=25', + KEY `index5` (`c5`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=30', + KEY `index6` (`c6`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=35', + KEY `index7` (`c7`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=40' +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +SELECT t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +WHERE t.TABLE_ID = i.TABLE_ID AND t.NAME = 'test/tab'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab PRIMARY 50 +test/tab index1 50 +test/tab index2 50 +test/tab index3 20 +test/tab index4 25 +test/tab index5 30 +test/tab index6 35 +test/tab index7 40 +ALTER TABLE tab comment='MERGE_THRESHOLD=49'; +Warnings: +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +SHOW CREATE TABLE tab; +Table Create Table +tab CREATE TABLE `tab` ( + `a` bigint(20) NOT NULL, + `c1` tinytext DEFAULT NULL, + `c2` text DEFAULT NULL, + `c3` mediumtext DEFAULT NULL, + `c4` tinyblob DEFAULT NULL, + `c5` blob DEFAULT NULL, + `c6` mediumblob DEFAULT NULL, + `c7` longblob DEFAULT NULL, + PRIMARY KEY (`a`), + KEY `index1` (`c1`(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=51', + KEY `index2` (`c2`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=-1', + KEY `index3` (`c3`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=20', + KEY `index4` (`c4`(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=25', + KEY `index5` (`c5`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=30', + KEY `index6` (`c6`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=35', + KEY `index7` (`c7`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=40' +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='MERGE_THRESHOLD=49' +SELECT t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +WHERE t.TABLE_ID = i.TABLE_ID AND t.NAME = 'test/tab'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab PRIMARY 49 +test/tab index1 49 +test/tab index2 49 +test/tab index3 20 +test/tab index4 25 +test/tab index5 30 +test/tab index6 35 +test/tab index7 40 +ALTER TABLE tab MODIFY COLUMN c7 VARCHAR(2048) ; +Warnings: +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +SHOW CREATE TABLE tab; +Table Create Table +tab CREATE TABLE `tab` ( + `a` bigint(20) NOT NULL, + `c1` tinytext DEFAULT NULL, + `c2` text DEFAULT NULL, + `c3` mediumtext DEFAULT NULL, + `c4` tinyblob DEFAULT NULL, + `c5` blob DEFAULT NULL, + `c6` mediumblob DEFAULT NULL, + `c7` varchar(2048) DEFAULT NULL, + PRIMARY KEY (`a`), + KEY `index1` (`c1`(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=51', + KEY `index2` (`c2`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=-1', + KEY `index3` (`c3`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=20', + KEY `index4` (`c4`(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=25', + KEY `index5` (`c5`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=30', + KEY `index6` (`c6`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=35', + KEY `index7` (`c7`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=40' +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='MERGE_THRESHOLD=49' +SELECT t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +WHERE t.TABLE_ID = i.TABLE_ID AND t.NAME = 'test/tab'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab PRIMARY 49 +test/tab index1 49 +test/tab index2 49 +test/tab index3 20 +test/tab index4 25 +test/tab index5 30 +test/tab index6 35 +test/tab index7 40 +ALTER TABLE tab ADD INDEX index8 (c7(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=45'; +Warnings: +Note 1831 Duplicate index `index8`. This is deprecated and will be disallowed in a future release +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +Warning 1478 InnoDB: Invalid value for MERGE_THRESHOLD in the CREATE TABLE statement. The value is ignored. +SHOW CREATE TABLE tab; +Table Create Table +tab CREATE TABLE `tab` ( + `a` bigint(20) NOT NULL, + `c1` tinytext DEFAULT NULL, + `c2` text DEFAULT NULL, + `c3` mediumtext DEFAULT NULL, + `c4` tinyblob DEFAULT NULL, + `c5` blob DEFAULT NULL, + `c6` mediumblob DEFAULT NULL, + `c7` varchar(2048) DEFAULT NULL, + PRIMARY KEY (`a`), + KEY `index1` (`c1`(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=51', + KEY `index2` (`c2`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=-1', + KEY `index3` (`c3`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=20', + KEY `index4` (`c4`(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=25', + KEY `index5` (`c5`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=30', + KEY `index6` (`c6`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=35', + KEY `index7` (`c7`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=40', + KEY `index8` (`c7`(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=45' +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='MERGE_THRESHOLD=49' +SELECT t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +WHERE t.TABLE_ID = i.TABLE_ID AND t.NAME = 'test/tab'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab PRIMARY 49 +test/tab index1 49 +test/tab index2 49 +test/tab index3 20 +test/tab index4 25 +test/tab index5 30 +test/tab index6 35 +test/tab index7 40 +test/tab index8 45 +DROP TABLE tab; +# +# behavior for deleting records +# +# test to confirm behavior (MERGE_THRESHOLD=50 (default)) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 50 +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 7 +5 7 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 5; +delete from tab1 where a = 6; +delete from tab1 where a = 7; +set global innodb_purge_run_now=ON; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 4 +5 4 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 11; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 10; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 2 +index_page_merge_successful 2 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 9; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 2 +index_page_merge_successful 2 +DROP TABLE tab1; +# test to confirm behavior (MERGE_THRESHOLD=35) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=35'; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 35 +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 7 +5 7 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 5; +delete from tab1 where a = 6; +delete from tab1 where a = 7; +set global innodb_purge_run_now=ON; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 4 +5 4 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 11; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 10; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 9; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 2 +index_page_merge_successful 2 +DROP TABLE tab1; +# test to confirm behavior (MERGE_THRESHOLD=25) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=25'; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 25 +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 7 +5 7 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 5; +delete from tab1 where a = 6; +delete from tab1 where a = 7; +set global innodb_purge_run_now=ON; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 4 +5 4 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 11; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 10; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 9; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +DROP TABLE tab1; +# test to confirm partitioned table (MERGE_THRESHOLD=35) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) +COMMENT='MERGE_THRESHOLD=35' +PARTITION BY RANGE (a) +(PARTITION p0 VALUES LESS THAN (20) ENGINE = InnoDB, +PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = InnoDB); +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1#p#p0 PRIMARY 35 +test/tab1#p#p1 PRIMARY 35 +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 0 +3 2 +4 7 +5 7 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 5; +delete from tab1 where a = 6; +delete from tab1 where a = 7; +set global innodb_purge_run_now=ON; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 0 +3 2 +4 4 +5 4 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 11; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 10; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 9; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 2 +index_page_merge_successful 2 +DROP TABLE tab1; +# +# behavior for updating to smaller records +# +# test to confirm behavior (MERGE_THRESHOLD=50 (default)) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 50 +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 7 +5 7 +update tab1 set b='' where a = 12; +update tab1 set b='' where a = 13; +update tab1 set b='' where a = 14; +update tab1 set b='' where a = 5; +update tab1 set b='' where a = 6; +update tab1 set b='' where a = 7; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 7 +5 7 +update tab1 set b='' where a = 11; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +update tab1 set b='' where a = 10; +# check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +update tab1 set b='' where a = 9; +# check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +DROP TABLE tab1; +# test to confirm behavior (MERGE_THRESHOLD=35) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=35'; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 35 +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 7 +5 7 +update tab1 set b='' where a = 12; +update tab1 set b='' where a = 13; +update tab1 set b='' where a = 14; +update tab1 set b='' where a = 5; +update tab1 set b='' where a = 6; +update tab1 set b='' where a = 7; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 7 +5 7 +update tab1 set b='' where a = 11; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +update tab1 set b='' where a = 10; +# check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +update tab1 set b='' where a = 9; +# check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +DROP TABLE tab1; +# test to confirm behavior (MERGE_THRESHOLD=25) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=25'; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 25 +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 7 +5 7 +update tab1 set b='' where a = 12; +update tab1 set b='' where a = 13; +update tab1 set b='' where a = 14; +update tab1 set b='' where a = 5; +update tab1 set b='' where a = 6; +update tab1 set b='' where a = 7; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 2 +4 7 +5 7 +update tab1 set b='' where a = 11; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +update tab1 set b='' where a = 10; +# check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +update tab1 set b='' where a = 9; +# check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +DROP TABLE tab1; +# test to confirm explicit temporary table (MERGE_THRESHOLD=35) +# (though not registered to SYS_TABLES,SYS_INDEXES, it works correctly) +CREATE TEMPORARY TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=35'; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +insert into tab1 values (1, repeat('a',2048)); +insert into tab1 values (2, repeat('a',2048)); +insert into tab1 values (3, repeat('a',2048)); +insert into tab1 values (8, repeat('a',2048)); +insert into tab1 values (9, repeat('a',2048)); +insert into tab1 values (10, repeat('a',2048)); +insert into tab1 values (11, repeat('a',2048)); +insert into tab1 values (12, repeat('a',2048)); +insert into tab1 values (4, repeat('a',2048)); +insert into tab1 values (5, repeat('a',2048)); +insert into tab1 values (6, repeat('a',2048)); +insert into tab1 values (7, repeat('a',2048)); +insert into tab1 values (13, repeat('a',2048)); +insert into tab1 values (14, repeat('a',2048)); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +update tab1 set b='' where a = 12; +update tab1 set b='' where a = 13; +update tab1 set b='' where a = 14; +update tab1 set b='' where a = 5; +update tab1 set b='' where a = 6; +update tab1 set b='' where a = 7; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +update tab1 set b='' where a = 11; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +update tab1 set b='' where a = 10; +# check page merge happens (MERGE_THRESHOLD=35 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +update tab1 set b='' where a = 9; +# check page merge happens (MERGE_THRESHOLD=25 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +DROP TABLE tab1; +# +# behavior for secondary index with blob +# +# test to confirm behavior (MERGE_THRESHOLD=50 (default)) +CREATE TABLE tab1 (a bigint primary key, b blob) engine=InnoDB row_format=dynamic; +CREATE INDEX index1 ON tab1(b(750)); +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 50 +test/tab1 index1 50 +INSERT INTO tab1 VALUES (1, concat("01", repeat('a',8190))); +INSERT INTO tab1 VALUES (2, concat("02", repeat('a',8190))); +INSERT INTO tab1 VALUES (3, concat("03", repeat('a',8190))); +INSERT INTO tab1 VALUES (4, concat("04", repeat('a',8190))); +INSERT INTO tab1 VALUES (5, concat("05", repeat('a',8190))); +INSERT INTO tab1 VALUES (6, concat("06", repeat('a',8190))); +INSERT INTO tab1 VALUES (7, concat("07", repeat('a',8190))); +INSERT INTO tab1 VALUES (8, concat("08", repeat('a',8190))); +INSERT INTO tab1 VALUES (9, concat("09", repeat('a',8190))); +INSERT INTO tab1 VALUES (10, concat("10", repeat('a',8190))); +INSERT INTO tab1 VALUES (22, concat("22", repeat('a',8190))); +INSERT INTO tab1 VALUES (23, concat("23", repeat('a',8190))); +INSERT INTO tab1 VALUES (24, concat("24", repeat('a',8190))); +INSERT INTO tab1 VALUES (25, concat("25", repeat('a',8190))); +INSERT INTO tab1 VALUES (26, concat("26", repeat('a',8190))); +INSERT INTO tab1 VALUES (27, concat("27", repeat('a',8190))); +INSERT INTO tab1 VALUES (28, concat("28", repeat('a',8190))); +INSERT INTO tab1 VALUES (29, concat("29", repeat('a',8190))); +INSERT INTO tab1 VALUES (30, concat("30", repeat('a',8190))); +INSERT INTO tab1 VALUES (31, concat("31", repeat('a',8190))); +INSERT INTO tab1 VALUES (32, concat("32", repeat('a',8190))); +INSERT INTO tab1 VALUES (33, concat("33", repeat('a',8190))); +INSERT INTO tab1 VALUES (11, concat("11", repeat('a',8190))); +INSERT INTO tab1 VALUES (12, concat("12", repeat('a',8190))); +INSERT INTO tab1 VALUES (13, concat("13", repeat('a',8190))); +INSERT INTO tab1 VALUES (14, concat("14", repeat('a',8190))); +INSERT INTO tab1 VALUES (15, concat("15", repeat('a',8190))); +INSERT INTO tab1 VALUES (16, concat("16", repeat('a',8190))); +INSERT INTO tab1 VALUES (17, concat("17", repeat('a',8190))); +INSERT INTO tab1 VALUES (18, concat("18", repeat('a',8190))); +INSERT INTO tab1 VALUES (19, concat("19", repeat('a',8190))); +INSERT INTO tab1 VALUES (20, concat("20", repeat('a',8190))); +INSERT INTO tab1 VALUES (21, concat("21", repeat('a',8190))); +INSERT INTO tab1 VALUES (34, concat("34", repeat('a',8190))); +INSERT INTO tab1 VALUES (35, concat("35", repeat('a',8190))); +INSERT INTO tab1 VALUES (36, concat("36", repeat('a',8190))); +INSERT INTO tab1 VALUES (37, concat("37", repeat('a',8190))); +INSERT INTO tab1 VALUES (38, concat("38", repeat('a',8190))); +INSERT INTO tab1 VALUES (39, concat("39", repeat('a',8190))); +INSERT INTO tab1 VALUES (40, concat("40", repeat('a',8190))); +INSERT INTO tab1 VALUES (41, concat("41", repeat('a',8190))); +INSERT INTO tab1 VALUES (42, concat("42", repeat('a',8190))); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 42 +4 2 +27 21 +28 21 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 33; +delete from tab1 where a = 34; +delete from tab1 where a = 35; +delete from tab1 where a = 36; +delete from tab1 where a = 37; +delete from tab1 where a = 38; +delete from tab1 where a = 39; +delete from tab1 where a = 40; +delete from tab1 where a = 41; +delete from tab1 where a = 42; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 15; +delete from tab1 where a = 16; +delete from tab1 where a = 17; +delete from tab1 where a = 18; +delete from tab1 where a = 19; +delete from tab1 where a = 20; +delete from tab1 where a = 21; +set global innodb_purge_run_now=ON; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 22 +4 2 +27 11 +28 11 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 32; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 31; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=45 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 2 +index_page_merge_successful 2 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 30; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=40 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 2 +index_page_merge_successful 2 +DROP TABLE tab1; +# test to confirm behavior (MERGE_THRESHOLD=45) +CREATE TABLE tab1 (a bigint primary key, b blob) engine=InnoDB row_format=dynamic; +CREATE INDEX index1 ON tab1(b(750)) COMMENT 'MERGE_THRESHOLD=45'; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 50 +test/tab1 index1 45 +INSERT INTO tab1 VALUES (1, concat("01", repeat('a',8190))); +INSERT INTO tab1 VALUES (2, concat("02", repeat('a',8190))); +INSERT INTO tab1 VALUES (3, concat("03", repeat('a',8190))); +INSERT INTO tab1 VALUES (4, concat("04", repeat('a',8190))); +INSERT INTO tab1 VALUES (5, concat("05", repeat('a',8190))); +INSERT INTO tab1 VALUES (6, concat("06", repeat('a',8190))); +INSERT INTO tab1 VALUES (7, concat("07", repeat('a',8190))); +INSERT INTO tab1 VALUES (8, concat("08", repeat('a',8190))); +INSERT INTO tab1 VALUES (9, concat("09", repeat('a',8190))); +INSERT INTO tab1 VALUES (10, concat("10", repeat('a',8190))); +INSERT INTO tab1 VALUES (22, concat("22", repeat('a',8190))); +INSERT INTO tab1 VALUES (23, concat("23", repeat('a',8190))); +INSERT INTO tab1 VALUES (24, concat("24", repeat('a',8190))); +INSERT INTO tab1 VALUES (25, concat("25", repeat('a',8190))); +INSERT INTO tab1 VALUES (26, concat("26", repeat('a',8190))); +INSERT INTO tab1 VALUES (27, concat("27", repeat('a',8190))); +INSERT INTO tab1 VALUES (28, concat("28", repeat('a',8190))); +INSERT INTO tab1 VALUES (29, concat("29", repeat('a',8190))); +INSERT INTO tab1 VALUES (30, concat("30", repeat('a',8190))); +INSERT INTO tab1 VALUES (31, concat("31", repeat('a',8190))); +INSERT INTO tab1 VALUES (32, concat("32", repeat('a',8190))); +INSERT INTO tab1 VALUES (33, concat("33", repeat('a',8190))); +INSERT INTO tab1 VALUES (11, concat("11", repeat('a',8190))); +INSERT INTO tab1 VALUES (12, concat("12", repeat('a',8190))); +INSERT INTO tab1 VALUES (13, concat("13", repeat('a',8190))); +INSERT INTO tab1 VALUES (14, concat("14", repeat('a',8190))); +INSERT INTO tab1 VALUES (15, concat("15", repeat('a',8190))); +INSERT INTO tab1 VALUES (16, concat("16", repeat('a',8190))); +INSERT INTO tab1 VALUES (17, concat("17", repeat('a',8190))); +INSERT INTO tab1 VALUES (18, concat("18", repeat('a',8190))); +INSERT INTO tab1 VALUES (19, concat("19", repeat('a',8190))); +INSERT INTO tab1 VALUES (20, concat("20", repeat('a',8190))); +INSERT INTO tab1 VALUES (21, concat("21", repeat('a',8190))); +INSERT INTO tab1 VALUES (34, concat("34", repeat('a',8190))); +INSERT INTO tab1 VALUES (35, concat("35", repeat('a',8190))); +INSERT INTO tab1 VALUES (36, concat("36", repeat('a',8190))); +INSERT INTO tab1 VALUES (37, concat("37", repeat('a',8190))); +INSERT INTO tab1 VALUES (38, concat("38", repeat('a',8190))); +INSERT INTO tab1 VALUES (39, concat("39", repeat('a',8190))); +INSERT INTO tab1 VALUES (40, concat("40", repeat('a',8190))); +INSERT INTO tab1 VALUES (41, concat("41", repeat('a',8190))); +INSERT INTO tab1 VALUES (42, concat("42", repeat('a',8190))); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 42 +4 2 +27 21 +28 21 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 33; +delete from tab1 where a = 34; +delete from tab1 where a = 35; +delete from tab1 where a = 36; +delete from tab1 where a = 37; +delete from tab1 where a = 38; +delete from tab1 where a = 39; +delete from tab1 where a = 40; +delete from tab1 where a = 41; +delete from tab1 where a = 42; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 15; +delete from tab1 where a = 16; +delete from tab1 where a = 17; +delete from tab1 where a = 18; +delete from tab1 where a = 19; +delete from tab1 where a = 20; +delete from tab1 where a = 21; +set global innodb_purge_run_now=ON; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 22 +4 2 +27 11 +28 11 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 32; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 31; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=45 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 30; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=40 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 2 +index_page_merge_successful 2 +DROP TABLE tab1; +# test to confirm behavior (MERGE_THRESHOLD=40) +CREATE TABLE tab1 (a bigint primary key, b blob) engine=InnoDB row_format=dynamic; +CREATE INDEX index1 ON tab1(b(750)) COMMENT 'MERGE_THRESHOLD=40'; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 50 +test/tab1 index1 40 +INSERT INTO tab1 VALUES (1, concat("01", repeat('a',8190))); +INSERT INTO tab1 VALUES (2, concat("02", repeat('a',8190))); +INSERT INTO tab1 VALUES (3, concat("03", repeat('a',8190))); +INSERT INTO tab1 VALUES (4, concat("04", repeat('a',8190))); +INSERT INTO tab1 VALUES (5, concat("05", repeat('a',8190))); +INSERT INTO tab1 VALUES (6, concat("06", repeat('a',8190))); +INSERT INTO tab1 VALUES (7, concat("07", repeat('a',8190))); +INSERT INTO tab1 VALUES (8, concat("08", repeat('a',8190))); +INSERT INTO tab1 VALUES (9, concat("09", repeat('a',8190))); +INSERT INTO tab1 VALUES (10, concat("10", repeat('a',8190))); +INSERT INTO tab1 VALUES (22, concat("22", repeat('a',8190))); +INSERT INTO tab1 VALUES (23, concat("23", repeat('a',8190))); +INSERT INTO tab1 VALUES (24, concat("24", repeat('a',8190))); +INSERT INTO tab1 VALUES (25, concat("25", repeat('a',8190))); +INSERT INTO tab1 VALUES (26, concat("26", repeat('a',8190))); +INSERT INTO tab1 VALUES (27, concat("27", repeat('a',8190))); +INSERT INTO tab1 VALUES (28, concat("28", repeat('a',8190))); +INSERT INTO tab1 VALUES (29, concat("29", repeat('a',8190))); +INSERT INTO tab1 VALUES (30, concat("30", repeat('a',8190))); +INSERT INTO tab1 VALUES (31, concat("31", repeat('a',8190))); +INSERT INTO tab1 VALUES (32, concat("32", repeat('a',8190))); +INSERT INTO tab1 VALUES (33, concat("33", repeat('a',8190))); +INSERT INTO tab1 VALUES (11, concat("11", repeat('a',8190))); +INSERT INTO tab1 VALUES (12, concat("12", repeat('a',8190))); +INSERT INTO tab1 VALUES (13, concat("13", repeat('a',8190))); +INSERT INTO tab1 VALUES (14, concat("14", repeat('a',8190))); +INSERT INTO tab1 VALUES (15, concat("15", repeat('a',8190))); +INSERT INTO tab1 VALUES (16, concat("16", repeat('a',8190))); +INSERT INTO tab1 VALUES (17, concat("17", repeat('a',8190))); +INSERT INTO tab1 VALUES (18, concat("18", repeat('a',8190))); +INSERT INTO tab1 VALUES (19, concat("19", repeat('a',8190))); +INSERT INTO tab1 VALUES (20, concat("20", repeat('a',8190))); +INSERT INTO tab1 VALUES (21, concat("21", repeat('a',8190))); +INSERT INTO tab1 VALUES (34, concat("34", repeat('a',8190))); +INSERT INTO tab1 VALUES (35, concat("35", repeat('a',8190))); +INSERT INTO tab1 VALUES (36, concat("36", repeat('a',8190))); +INSERT INTO tab1 VALUES (37, concat("37", repeat('a',8190))); +INSERT INTO tab1 VALUES (38, concat("38", repeat('a',8190))); +INSERT INTO tab1 VALUES (39, concat("39", repeat('a',8190))); +INSERT INTO tab1 VALUES (40, concat("40", repeat('a',8190))); +INSERT INTO tab1 VALUES (41, concat("41", repeat('a',8190))); +INSERT INTO tab1 VALUES (42, concat("42", repeat('a',8190))); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 42 +4 2 +27 21 +28 21 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 33; +delete from tab1 where a = 34; +delete from tab1 where a = 35; +delete from tab1 where a = 36; +delete from tab1 where a = 37; +delete from tab1 where a = 38; +delete from tab1 where a = 39; +delete from tab1 where a = 40; +delete from tab1 where a = 41; +delete from tab1 where a = 42; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 15; +delete from tab1 where a = 16; +delete from tab1 where a = 17; +delete from tab1 where a = 18; +delete from tab1 where a = 19; +delete from tab1 where a = 20; +delete from tab1 where a = 21; +set global innodb_purge_run_now=ON; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 22 +4 2 +27 11 +28 11 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 32; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 31; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=45 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 30; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=40 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +DROP TABLE tab1; +# compressed table behaves same (MERGE_THRESHOLD=45) +CREATE TABLE tab1 (a bigint primary key, b blob) engine=InnoDB +ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; +CREATE INDEX index1 ON tab1(b(750)) COMMENT 'MERGE_THRESHOLD=45'; +# check MERGE_THRESHOLD +select t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +from INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +where t.TABLE_ID = i.TABLE_ID and t.NAME like 'test/tab1%'; +TABLE_NAME INDEX_NAME MERGE_THRESHOLD +test/tab1 PRIMARY 50 +test/tab1 index1 45 +INSERT INTO tab1 VALUES (1, concat("01", repeat('a',8190))); +INSERT INTO tab1 VALUES (2, concat("02", repeat('a',8190))); +INSERT INTO tab1 VALUES (3, concat("03", repeat('a',8190))); +INSERT INTO tab1 VALUES (4, concat("04", repeat('a',8190))); +INSERT INTO tab1 VALUES (5, concat("05", repeat('a',8190))); +INSERT INTO tab1 VALUES (6, concat("06", repeat('a',8190))); +INSERT INTO tab1 VALUES (7, concat("07", repeat('a',8190))); +INSERT INTO tab1 VALUES (8, concat("08", repeat('a',8190))); +INSERT INTO tab1 VALUES (9, concat("09", repeat('a',8190))); +INSERT INTO tab1 VALUES (10, concat("10", repeat('a',8190))); +INSERT INTO tab1 VALUES (22, concat("22", repeat('a',8190))); +INSERT INTO tab1 VALUES (23, concat("23", repeat('a',8190))); +INSERT INTO tab1 VALUES (24, concat("24", repeat('a',8190))); +INSERT INTO tab1 VALUES (25, concat("25", repeat('a',8190))); +INSERT INTO tab1 VALUES (26, concat("26", repeat('a',8190))); +INSERT INTO tab1 VALUES (27, concat("27", repeat('a',8190))); +INSERT INTO tab1 VALUES (28, concat("28", repeat('a',8190))); +INSERT INTO tab1 VALUES (29, concat("29", repeat('a',8190))); +INSERT INTO tab1 VALUES (30, concat("30", repeat('a',8190))); +INSERT INTO tab1 VALUES (31, concat("31", repeat('a',8190))); +INSERT INTO tab1 VALUES (32, concat("32", repeat('a',8190))); +INSERT INTO tab1 VALUES (33, concat("33", repeat('a',8190))); +INSERT INTO tab1 VALUES (11, concat("11", repeat('a',8190))); +INSERT INTO tab1 VALUES (12, concat("12", repeat('a',8190))); +INSERT INTO tab1 VALUES (13, concat("13", repeat('a',8190))); +INSERT INTO tab1 VALUES (14, concat("14", repeat('a',8190))); +INSERT INTO tab1 VALUES (15, concat("15", repeat('a',8190))); +INSERT INTO tab1 VALUES (16, concat("16", repeat('a',8190))); +INSERT INTO tab1 VALUES (17, concat("17", repeat('a',8190))); +INSERT INTO tab1 VALUES (18, concat("18", repeat('a',8190))); +INSERT INTO tab1 VALUES (19, concat("19", repeat('a',8190))); +INSERT INTO tab1 VALUES (20, concat("20", repeat('a',8190))); +INSERT INTO tab1 VALUES (21, concat("21", repeat('a',8190))); +INSERT INTO tab1 VALUES (34, concat("34", repeat('a',8190))); +INSERT INTO tab1 VALUES (35, concat("35", repeat('a',8190))); +INSERT INTO tab1 VALUES (36, concat("36", repeat('a',8190))); +INSERT INTO tab1 VALUES (37, concat("37", repeat('a',8190))); +INSERT INTO tab1 VALUES (38, concat("38", repeat('a',8190))); +INSERT INTO tab1 VALUES (39, concat("39", repeat('a',8190))); +INSERT INTO tab1 VALUES (40, concat("40", repeat('a',8190))); +INSERT INTO tab1 VALUES (41, concat("41", repeat('a',8190))); +INSERT INTO tab1 VALUES (42, concat("42", repeat('a',8190))); +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 42 +4 2 +27 21 +28 21 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 33; +delete from tab1 where a = 34; +delete from tab1 where a = 35; +delete from tab1 where a = 36; +delete from tab1 where a = 37; +delete from tab1 where a = 38; +delete from tab1 where a = 39; +delete from tab1 where a = 40; +delete from tab1 where a = 41; +delete from tab1 where a = 42; +delete from tab1 where a = 12; +delete from tab1 where a = 13; +delete from tab1 where a = 14; +delete from tab1 where a = 15; +delete from tab1 where a = 16; +delete from tab1 where a = 17; +delete from tab1 where a = 18; +delete from tab1 where a = 19; +delete from tab1 where a = 20; +delete from tab1 where a = 21; +set global innodb_purge_run_now=ON; +# check page merge happens (nothing is expected) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +select PAGE_NUMBER, NUMBER_RECORDS +from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES s1, +INFORMATION_SCHEMA.INNODB_BUFFER_PAGE s2 +where s1.SPACE = s2.SPACE AND NAME like 'test/tab1%' +and PAGE_TYPE = "INDEX" order by PAGE_NUMBER, NUMBER_RECORDS; +PAGE_NUMBER NUMBER_RECORDS +3 22 +4 2 +27 11 +28 11 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 32; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=50 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 0 +index_page_merge_successful 0 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 31; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=45 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 1 +index_page_merge_successful 1 +set global innodb_purge_stop_now=ON; +delete from tab1 where a = 30; +set global innodb_purge_run_now=ON; +# check page merge happens (MERGE_THRESHOLD=40 causes merge here) +SELECT name,count_reset FROM information_schema.innodb_metrics +WHERE name like 'index_page_merge_%'; +name count_reset +index_page_merge_attempts 2 +index_page_merge_successful 2 +DROP TABLE tab1; diff --git a/mysql-test/suite/innodb/r/innodb_bug14676111.result b/mysql-test/suite/innodb/r/innodb_bug14676111.result index c2fdfee5522..1135259cfbf 100644 --- a/mysql-test/suite/innodb/r/innodb_bug14676111.result +++ b/mysql-test/suite/innodb/r/innodb_bug14676111.result @@ -1,7 +1,4 @@ -drop table if exists t1; -call mtr.add_suppression("option 'innodb-purge-threads': unsigned value 0 adjusted to*"); -set global innodb_stats_persistent = false; -CREATE TABLE t1 (a int not null primary key) engine=InnoDB; +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=0; set global innodb_limit_optimistic_insert_debug = 2; insert into t1 values (1); insert into t1 values (5); diff --git a/mysql-test/suite/innodb/t/index_merge_threshold.opt b/mysql-test/suite/innodb/t/index_merge_threshold.opt new file mode 100644 index 00000000000..56434e883de --- /dev/null +++ b/mysql-test/suite/innodb/t/index_merge_threshold.opt @@ -0,0 +1 @@ +--loose-innodb_sys_tablespaces diff --git a/mysql-test/suite/innodb/t/index_merge_threshold.test b/mysql-test/suite/innodb/t/index_merge_threshold.test new file mode 100644 index 00000000000..7cbde0acf03 --- /dev/null +++ b/mysql-test/suite/innodb/t/index_merge_threshold.test @@ -0,0 +1,189 @@ +# ############################################################# +# wl6747 : Set merge threshold at index level +# Check with CREATE INDEX on all datatypes +# Check with by ALTER TABLE MODIFY COLUMN TYPE +# Check with ALTER TABLE ADD Index +# Check by setting at index level with CREATE TABLE +# Check with BLOB column at index level with CREATE Index +# Check with row_format=compressed and key_block_size=8k +# Check withe valid and invalid merge_threshold values. +# +# Check actual behavior for table, partitioned table and temporary table +# ############################################################# +--source include/have_innodb_16k.inc +--source include/have_debug.inc +--source include/have_partition.inc + +# Check index merge threshold by create index on all datatypes + +CREATE TABLE tab(a BIGINT PRIMARY KEY,c1 TINYTEXT,c2 TEXT,c3 MEDIUMTEXT, +c4 TINYBLOB,c5 BLOB,c6 MEDIUMBLOB,c7 LONGBLOB) ENGINE=InnoDB; + +# check index merge threshold on all datatypes +CREATE INDEX index1 ON tab(c1(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=51'; +CREATE INDEX index2 ON tab(c2(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=-1'; +CREATE INDEX index3 ON tab(c3(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=20'; +CREATE INDEX index4 ON tab(c4(255)) COMMENT 'Check index level merge MERGE_THRESHOLD=25'; +CREATE INDEX index5 ON tab(c5(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=30'; +CREATE INDEX index6 ON tab(c6(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=35'; +CREATE INDEX index7 ON tab(c7(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=40'; + +SHOW CREATE TABLE tab; + +SELECT t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +WHERE t.TABLE_ID = i.TABLE_ID AND t.NAME = 'test/tab'; + +ALTER TABLE tab comment='MERGE_THRESHOLD=49'; + +SHOW CREATE TABLE tab; + +SELECT t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +WHERE t.TABLE_ID = i.TABLE_ID AND t.NAME = 'test/tab'; + +ALTER TABLE tab MODIFY COLUMN c7 VARCHAR(2048) ; + +SHOW CREATE TABLE tab; + +SELECT t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +WHERE t.TABLE_ID = i.TABLE_ID AND t.NAME = 'test/tab'; + +ALTER TABLE tab ADD INDEX index8 (c7(750)) COMMENT 'Check index level merge MERGE_THRESHOLD=45'; + +SHOW CREATE TABLE tab; + +SELECT t.NAME as TABLE_NAME, i.NAME as INDEX_NAME, i.MERGE_THRESHOLD +FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES t, INFORMATION_SCHEMA.INNODB_SYS_INDEXES i +WHERE t.TABLE_ID = i.TABLE_ID AND t.NAME = 'test/tab'; +# Cleanup +DROP TABLE tab; + + + +--echo # +--echo # behavior for deleting records +--echo # + +--echo # test to confirm behavior (MERGE_THRESHOLD=50 (default)) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB; + +--source suite/innodb/include/innodb_merge_threshold_delete.inc + +DROP TABLE tab1; + + +--echo # test to confirm behavior (MERGE_THRESHOLD=35) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=35'; + +--source suite/innodb/include/innodb_merge_threshold_delete.inc + +DROP TABLE tab1; + + +--echo # test to confirm behavior (MERGE_THRESHOLD=25) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=25'; + +--source suite/innodb/include/innodb_merge_threshold_delete.inc + +DROP TABLE tab1; + + +--echo # test to confirm partitioned table (MERGE_THRESHOLD=35) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) +COMMENT='MERGE_THRESHOLD=35' +PARTITION BY RANGE (a) +(PARTITION p0 VALUES LESS THAN (20) ENGINE = InnoDB, + PARTITION p1 VALUES LESS THAN MAXVALUE ENGINE = InnoDB); + +--source suite/innodb/include/innodb_merge_threshold_delete.inc + +DROP TABLE tab1; + + + +--echo # +--echo # behavior for updating to smaller records +--echo # + +--echo # test to confirm behavior (MERGE_THRESHOLD=50 (default)) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB; + +--source suite/innodb/include/innodb_merge_threshold_update.inc + +DROP TABLE tab1; + + +--echo # test to confirm behavior (MERGE_THRESHOLD=35) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=35'; + +--source suite/innodb/include/innodb_merge_threshold_update.inc + +DROP TABLE tab1; + + +--echo # test to confirm behavior (MERGE_THRESHOLD=25) +CREATE TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=25'; + +--source suite/innodb/include/innodb_merge_threshold_update.inc + +DROP TABLE tab1; + + +--echo # test to confirm explicit temporary table (MERGE_THRESHOLD=35) +--echo # (though not registered to SYS_TABLES,SYS_INDEXES, it works correctly) +# Temporary tables are not purged. so deleting records is not caused +# So, should be tested by updating case only +CREATE TEMPORARY TABLE tab1 (a bigint primary key, b varchar(2048)) engine=InnoDB +COMMENT='MERGE_THRESHOLD=35'; + +--source suite/innodb/include/innodb_merge_threshold_update.inc + +DROP TABLE tab1; + + +--echo # +--echo # behavior for secondary index with blob +--echo # + +--echo # test to confirm behavior (MERGE_THRESHOLD=50 (default)) +# not to cause page operation at primary key, row_format=dynamic and the key is blob +CREATE TABLE tab1 (a bigint primary key, b blob) engine=InnoDB row_format=dynamic; +CREATE INDEX index1 ON tab1(b(750)); + +--source suite/innodb/include/innodb_merge_threshold_secondary.inc + +DROP TABLE tab1; + + +--echo # test to confirm behavior (MERGE_THRESHOLD=45) +CREATE TABLE tab1 (a bigint primary key, b blob) engine=InnoDB row_format=dynamic; +CREATE INDEX index1 ON tab1(b(750)) COMMENT 'MERGE_THRESHOLD=45'; + +--source suite/innodb/include/innodb_merge_threshold_secondary.inc + +DROP TABLE tab1; + + +--echo # test to confirm behavior (MERGE_THRESHOLD=40) +CREATE TABLE tab1 (a bigint primary key, b blob) engine=InnoDB row_format=dynamic; +CREATE INDEX index1 ON tab1(b(750)) COMMENT 'MERGE_THRESHOLD=40'; + +--source suite/innodb/include/innodb_merge_threshold_secondary.inc + +DROP TABLE tab1; + + +--echo # compressed table behaves same (MERGE_THRESHOLD=45) +CREATE TABLE tab1 (a bigint primary key, b blob) engine=InnoDB +ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; +CREATE INDEX index1 ON tab1(b(750)) COMMENT 'MERGE_THRESHOLD=45'; + +--source suite/innodb/include/innodb_merge_threshold_secondary.inc + +DROP TABLE tab1; diff --git a/mysql-test/suite/innodb/t/innodb_bug14676111-master.opt b/mysql-test/suite/innodb/t/innodb_bug14676111-master.opt deleted file mode 100644 index e16b9b0b895..00000000000 --- a/mysql-test/suite/innodb/t/innodb_bug14676111-master.opt +++ /dev/null @@ -1 +0,0 @@ ---loose-innodb-purge-threads=0 diff --git a/mysql-test/suite/innodb/t/innodb_bug14676111.test b/mysql-test/suite/innodb/t/innodb_bug14676111.test index ba04d421fde..02ef5e5e7f0 100644 --- a/mysql-test/suite/innodb/t/innodb_bug14676111.test +++ b/mysql-test/suite/innodb/t/innodb_bug14676111.test @@ -10,20 +10,12 @@ if (`select count(*)=0 from information_schema.global_variables where variable_n --disable_query_log set @old_innodb_limit_optimistic_insert_debug = @@innodb_limit_optimistic_insert_debug; -set @old_innodb_stats_persistent = @@innodb_stats_persistent; set @old_innodb_undo_logs = @@innodb_undo_logs; # Limit undo segments for stable progress of purge. set global innodb_undo_logs = 1; --enable_query_log ---disable_warnings -drop table if exists t1; ---enable_warnings -call mtr.add_suppression("option 'innodb-purge-threads': unsigned value 0 adjusted to*"); - -set global innodb_stats_persistent = false; - -CREATE TABLE t1 (a int not null primary key) engine=InnoDB; +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB STATS_PERSISTENT=0; # # make 4 leveled straight tree @@ -139,6 +131,5 @@ drop table t1; --disable_query_log set global innodb_limit_optimistic_insert_debug = @old_innodb_limit_optimistic_insert_debug; -set global innodb_stats_persistent = @old_innodb_stats_persistent; set global innodb_undo_logs = @old_innodb_undo_logs; --enable_query_log From a13a636c74d9778ec0430ec963dcfd1614f7c81e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 17 Feb 2017 10:32:21 +0200 Subject: [PATCH 254/258] MDEV-11802 innodb.innodb_bug14676111 fails The function trx_purge_stop() was calling os_event_reset(purge_sys->event) before calling rw_lock_x_lock(&purge_sys->latch). The os_event_set() call in srv_purge_coordinator_suspend() is protected by that X-latch. It would seem a good idea to consistently protect both os_event_set() and os_event_reset() calls with a common mutex or rw-lock in those cases where os_event_set() and os_event_reset() are used like condition variables, tied to changes of shared state. For each os_event_t, we try to document the mutex or rw-lock that is being used. For some events, frequent calls to os_event_set() seem to try to avoid hangs. Some events are never waited for infinitely, only timed waits, and os_event_set() is used for early termination of these waits. os_aio_simulated_put_read_threads_to_sleep(): Define as a null macro on other systems than Windows. TODO: remove this altogether and disable innodb_use_native_aio on Windows. os_aio_segment_wait_events[]: Initialize only if innodb_use_native_aio=0. log_write_flush_to_disk_low(): Invoke log_mutex_enter() at the end, to avoid race conditions when changing the system state. (No potential race condition existed before MySQL 5.7.) --- storage/innobase/buf/buf0dump.cc | 15 ++++--- storage/innobase/buf/buf0flu.cc | 4 +- storage/innobase/dict/dict0stats_bg.cc | 5 ++- storage/innobase/include/buf0buf.h | 6 ++- storage/innobase/include/buf0dblwr.h | 7 +++- storage/innobase/include/dict0stats_bg.h | 4 +- storage/innobase/include/fil0fil.h | 6 ++- storage/innobase/include/fts0types.h | 5 ++- storage/innobase/include/lock0lock.h | 17 +++++--- storage/innobase/include/log0log.h | 16 +++----- storage/innobase/include/os0file.h | 6 ++- storage/innobase/include/srv0srv.h | 11 +++-- storage/innobase/include/trx0purge.h | 6 ++- storage/innobase/log/log0log.cc | 17 ++++++-- storage/innobase/os/os0file.cc | 52 ++++++++++-------------- storage/innobase/srv/srv0srv.cc | 17 +++++--- storage/innobase/trx/trx0purge.cc | 44 +++++--------------- storage/innobase/ut/ut0wqueue.cc | 5 ++- 18 files changed, 132 insertions(+), 111 deletions(-) diff --git a/storage/innobase/buf/buf0dump.cc b/storage/innobase/buf/buf0dump.cc index af68fd2af32..6100bf7aa93 100644 --- a/storage/innobase/buf/buf0dump.cc +++ b/storage/innobase/buf/buf0dump.cc @@ -54,8 +54,8 @@ enum status_severity { /* Flags that tell the buffer pool dump/load thread which action should it take after being waked up. */ -static ibool buf_dump_should_start = FALSE; -static ibool buf_load_should_start = FALSE; +static volatile bool buf_dump_should_start; +static volatile bool buf_load_should_start; static ibool buf_load_abort_flag = FALSE; @@ -79,7 +79,7 @@ void buf_dump_start() /*============*/ { - buf_dump_should_start = TRUE; + buf_dump_should_start = true; os_event_set(srv_buf_dump_event); } @@ -92,7 +92,7 @@ void buf_load_start() /*============*/ { - buf_load_should_start = TRUE; + buf_load_should_start = true; os_event_set(srv_buf_dump_event); } @@ -799,15 +799,18 @@ DECLARE_THREAD(buf_dump_thread)(void*) os_event_wait(srv_buf_dump_event); if (buf_dump_should_start) { - buf_dump_should_start = FALSE; + buf_dump_should_start = false; buf_dump(TRUE /* quit on shutdown */); } if (buf_load_should_start) { - buf_load_should_start = FALSE; + buf_load_should_start = false; buf_load(); } + if (buf_dump_should_start || buf_load_should_start) { + continue; + } os_event_reset(srv_buf_dump_event); } diff --git a/storage/innobase/buf/buf0flu.cc b/storage/innobase/buf/buf0flu.cc index 5fdb735e0d3..ed975702fa3 100644 --- a/storage/innobase/buf/buf0flu.cc +++ b/storage/innobase/buf/buf0flu.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2016, MariaDB Corporation +Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. Copyright (c) 2013, 2014, Fusion-io This program is free software; you can redistribute it and/or modify it under @@ -795,6 +795,8 @@ buf_flush_write_complete( flush_type = buf_page_get_flush_type(bpage); buf_pool->n_flush[flush_type]--; + ut_ad(buf_pool_mutex_own(buf_pool)); + if (buf_pool->n_flush[flush_type] == 0 && buf_pool->init_flush[flush_type] == FALSE) { diff --git a/storage/innobase/dict/dict0stats_bg.cc b/storage/innobase/dict/dict0stats_bg.cc index 827e206b738..974ec9b5c41 100644 --- a/storage/innobase/dict/dict0stats_bg.cc +++ b/storage/innobase/dict/dict0stats_bg.cc @@ -43,8 +43,9 @@ Created Apr 25, 2012 Vasil Dimov #define SHUTTING_DOWN() (srv_shutdown_state != SRV_SHUTDOWN_NONE) -/** Event to wake up the stats thread */ -os_event_t dict_stats_event = NULL; +/** Event to wake up dict_stats_thread on dict_stats_recalc_pool_add() +or shutdown. Not protected by any mutex. */ +os_event_t dict_stats_event; /** Variable to initiate shutdown the dict stats thread. Note we don't use 'srv_shutdown_state' because we want to shutdown dict stats thread diff --git a/storage/innobase/include/buf0buf.h b/storage/innobase/include/buf0buf.h index de23e998020..ce2a8e385fc 100644 --- a/storage/innobase/include/buf0buf.h +++ b/storage/innobase/include/buf0buf.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2017, MariaDB Corporation. +Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -2183,7 +2183,9 @@ struct buf_pool_t{ os_event_t no_flush[BUF_FLUSH_N_TYPES]; /*!< this is in the set state when there is no flush batch - of the given type running */ + of the given type running; + os_event_set() and os_event_reset() + are protected by buf_pool_t::mutex */ ib_rbt_t* flush_rbt; /*!< a red-black tree is used exclusively during recovery to speed up insertions in the diff --git a/storage/innobase/include/buf0dblwr.h b/storage/innobase/include/buf0dblwr.h index fdb9ab15a24..bf2bf6ab32b 100644 --- a/storage/innobase/include/buf0dblwr.h +++ b/storage/innobase/include/buf0dblwr.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -132,11 +133,13 @@ struct buf_dblwr_t{ ulint b_reserved;/*!< number of slots currently reserved for batch flush. */ os_event_t b_event;/*!< event where threads wait for a - batch flush to end. */ + batch flush to end; + os_event_set() and os_event_reset() + are protected by buf_dblwr_t::mutex */ ulint s_reserved;/*!< number of slots currently reserved for single page flushes. */ os_event_t s_event;/*!< event where threads wait for a - single page flush slot. */ + single page flush slot. Protected by mutex. */ bool* in_use; /*!< flag used to indicate if a slot is in use. Only used for single page flushes. */ diff --git a/storage/innobase/include/dict0stats_bg.h b/storage/innobase/include/dict0stats_bg.h index 50c2591332e..e09716e3842 100644 --- a/storage/innobase/include/dict0stats_bg.h +++ b/storage/innobase/include/dict0stats_bg.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -32,7 +33,8 @@ Created Apr 26, 2012 Vasil Dimov #include "os0event.h" #include "os0thread.h" -/** Event to wake up the stats thread */ +/** Event to wake up dict_stats_thread on dict_stats_recalc_pool_add() +or shutdown. Not protected by any mutex. */ extern os_event_t dict_stats_event; #ifdef HAVE_PSI_INTERFACE diff --git a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h index 047e43d34e4..36fb5e51f1e 100644 --- a/storage/innobase/include/fil0fil.h +++ b/storage/innobase/include/fil0fil.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2017, MariaDB Corporation. +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -203,7 +203,9 @@ struct fil_node_t { char* name; /** file handle (valid if is_open) */ os_file_t handle; - /** event that groups and serializes calls to fsync */ + /** event that groups and serializes calls to fsync; + os_event_set() and os_event_reset() are protected by + fil_system_t::mutex */ os_event_t sync_event; /** whether the file actually is a raw device or disk partition */ bool is_raw_disk; diff --git a/storage/innobase/include/fts0types.h b/storage/innobase/include/fts0types.h index 039006265f6..5c6cd3ee56d 100644 --- a/storage/innobase/include/fts0types.h +++ b/storage/innobase/include/fts0types.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -127,7 +128,9 @@ struct fts_sync_t { bool in_progress; /*!< flag whether sync is in progress.*/ bool unlock_cache; /*!< flag whether unlock cache when write fts node */ - os_event_t event; /*!< sync finish event */ + os_event_t event; /*!< sync finish event; + only os_event_set() and os_event_wait() + are used */ }; /** The cache for the FTS system. It is a memory-based inverted index diff --git a/storage/innobase/include/lock0lock.h b/storage/innobase/include/lock0lock.h index 16ef863f6a7..d96ba0d9c7d 100644 --- a/storage/innobase/include/lock0lock.h +++ b/storage/innobase/include/lock0lock.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -1039,7 +1040,12 @@ struct lock_sys_t{ srv_slot_t* waiting_threads; /*!< Array of user threads suspended while waiting for locks within InnoDB, protected - by the lock_sys->wait_mutex */ + by the lock_sys->wait_mutex; + os_event_set() and + os_event_reset() on + waiting_threads[]->event + are protected by + trx_t::mutex */ srv_slot_t* last_slot; /*!< highest slot ever used in the waiting_threads array, protected by @@ -1052,10 +1058,11 @@ struct lock_sys_t{ ulint n_lock_max_wait_time; /*!< Max wait time */ - os_event_t timeout_event; /*!< Set to the event that is - created in the lock wait monitor - thread. A value of 0 means the - thread is not active */ + os_event_t timeout_event; /*!< An event waited for by + lock_wait_timeout_thread. + Not protected by a mutex, + but the waits are timed. + Signaled on shutdown only. */ bool timeout_thread_active; /*!< True if the timeout thread is running */ diff --git a/storage/innobase/include/log0log.h b/storage/innobase/include/log0log.h index ae484b36260..956cfffbad8 100644 --- a/storage/innobase/include/log0log.h +++ b/storage/innobase/include/log0log.h @@ -2,7 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights reserved. Copyright (c) 2009, Google Inc. -Copyright (c) 2017, MariaDB Corporation +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -669,16 +669,12 @@ struct log_t{ /*!< how far we have written the log AND flushed to disk */ ulint n_pending_flushes;/*!< number of currently - pending flushes; incrementing is - protected by the log mutex; - may be decremented between - resetting and setting flush_event */ + pending flushes; protected by + log_sys_t::mutex */ os_event_t flush_event; /*!< this event is in the reset state - when a flush is running; a thread - should wait for this without - owning the log mutex, but NOTE that - to set this event, the - thread MUST own the log mutex! */ + when a flush is running; + os_event_set() and os_event_reset() + are protected by log_sys_t::mutex */ ulint n_log_ios; /*!< number of log i/os initiated thus far */ ulint n_log_ios_old; /*!< number of log i/o's at the diff --git a/storage/innobase/include/os0file.h b/storage/innobase/include/os0file.h index 4e980c42f85..ffe7b1a48bf 100644 --- a/storage/innobase/include/os0file.h +++ b/storage/innobase/include/os0file.h @@ -2,7 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2009, Percona Inc. -Copyright (c) 2013, 2017, MariaDB Corporation. +Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. Portions of this file contain modifications contributed and copyrighted by Percona Inc.. Those modifications are @@ -1440,12 +1440,16 @@ os_aio_wait_until_no_pending_writes(); void os_aio_simulated_wake_handler_threads(); +#ifdef _WIN32 /** This function can be called if one wants to post a batch of reads and prefers an i/o-handler thread to handle them all at once later. You must call os_aio_simulated_wake_handler_threads later to ensure the threads are not left sleeping! */ void os_aio_simulated_put_read_threads_to_sleep(); +#else /* _WIN32 */ +# define os_aio_simulated_put_read_threads_to_sleep() +#endif /* _WIN32 */ /** This is the generic AIO handler interface function. Waits for an aio operation to complete. This function is used to wait the diff --git a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h index 4b06e47e39e..a8c962d4a45 100644 --- a/storage/innobase/include/srv0srv.h +++ b/storage/innobase/include/srv0srv.h @@ -3,7 +3,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights reserved. Copyright (c) 2008, 2009, Google Inc. Copyright (c) 2009, Percona Inc. -Copyright (c) 2013, 2017, MariaDB Corporation +Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -188,13 +188,16 @@ extern const char* srv_main_thread_op_info; /** Prefix used by MySQL to indicate pre-5.1 table name encoding */ extern const char srv_mysql50_table_name_prefix[10]; -/* The monitor thread waits on this event. */ +/** Event to signal srv_monitor_thread. Not protected by a mutex. +Set after setting srv_print_innodb_monitor. */ extern os_event_t srv_monitor_event; -/* The error monitor thread waits on this event. */ +/** Event to signal the shutdown of srv_error_monitor_thread. +Not protected by a mutex. */ extern os_event_t srv_error_event; -/** The buffer pool dump/load thread waits on this event. */ +/** Event for waking up buf_dump_thread. Not protected by a mutex. +Set on shutdown or by buf_dump_start() or buf_load_start(). */ extern os_event_t srv_buf_dump_event; /** The buffer pool resize thread waits on this event. */ diff --git a/storage/innobase/include/trx0purge.h b/storage/innobase/include/trx0purge.h index 8917169dc94..44eaa9d4f1e 100644 --- a/storage/innobase/include/trx0purge.h +++ b/storage/innobase/include/trx0purge.h @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -399,7 +400,10 @@ struct trx_purge_t{ log operation can prevent this by obtaining an s-latch here. It also protects state and running */ - os_event_t event; /*!< State signal event */ + os_event_t event; /*!< State signal event; + os_event_set() and os_event_reset() + are protected by trx_purge_t::latch + X-lock */ ulint n_stop; /*!< Counter to track number stops */ volatile bool running; /*!< true, if purge is active, we check this without the latch too */ diff --git a/storage/innobase/log/log0log.cc b/storage/innobase/log/log0log.cc index ca052138dd9..99ae5799bb1 100644 --- a/storage/innobase/log/log0log.cc +++ b/storage/innobase/log/log0log.cc @@ -1166,11 +1166,14 @@ loop: } } -/** Flush the log has been written to the log file. */ +/** Flush the recently written changes to the log file. +and invoke log_mutex_enter(). */ static void log_write_flush_to_disk_low() { + /* FIXME: This is not holding log_sys->mutex while + calling os_event_set()! */ ut_a(log_sys->n_pending_flushes == 1); /* No other threads here */ #ifndef _WIN32 @@ -1179,13 +1182,17 @@ log_write_flush_to_disk_low() bool do_flush = true; #endif if (do_flush) { - log_group_t* group = UT_LIST_GET_FIRST(log_sys->log_groups); - fil_flush(group->space_id); + fil_flush(SRV_LOG_SPACE_FIRST_ID); + } + + MONITOR_DEC(MONITOR_PENDING_LOG_FLUSH); + + log_mutex_enter(); + if (do_flush) { log_sys->flushed_to_disk_lsn = log_sys->current_flush_lsn; } log_sys->n_pending_flushes--; - MONITOR_DEC(MONITOR_PENDING_LOG_FLUSH); os_event_set(log_sys->flush_event); } @@ -1340,6 +1347,7 @@ loop: /* Nothing to write, flush only */ log_mutex_exit_all(); log_write_flush_to_disk_low(); + log_mutex_exit(); return; } } @@ -1419,6 +1427,7 @@ loop: log_write_flush_to_disk_low(); ib_uint64_t write_lsn = log_sys->write_lsn; ib_uint64_t flush_lsn = log_sys->flushed_to_disk_lsn; + log_mutex_exit(); innobase_mysql_log_notify(write_lsn, flush_lsn); } diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index bf726e95cb3..270bfa2887e 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -2,7 +2,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2009, Percona Inc. -Copyright (c) 2013, 2017, MariaDB Corporation. +Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. Portions of this file contain modifications contributed and copyrighted by Percona Inc.. Those modifications are @@ -469,8 +469,6 @@ public: must call os_aio_simulated_wake_handler_threads later to ensure the threads are not left sleeping! */ static void simulated_put_read_threads_to_sleep(); - - #endif /* _WIN32 */ /** Create an instance using new(std::nothrow) @@ -616,11 +614,13 @@ private: ulint m_n_segments; /** The event which is set to the signaled state when - there is space in the aio outside the ibuf segment */ + there is space in the aio outside the ibuf segment; + os_event_set() and os_event_reset() are protected by AIO::m_mutex */ os_event_t m_not_full; /** The event which is set to the signaled state when - there are no pending i/os in this array */ + there are no pending i/os in this array; + os_event_set() and os_event_reset() are protected by AIO::m_mutex */ os_event_t m_is_empty; /** Number of reserved slots in the AIO array outside @@ -680,7 +680,7 @@ static const int OS_AIO_IO_SETUP_RETRY_ATTEMPTS = 5; #endif /* LINUX_NATIVE_AIO */ /** Array of events used in simulated AIO */ -static os_event_t* os_aio_segment_wait_events = NULL; +static os_event_t* os_aio_segment_wait_events; /** Number of asynchronous I/O segments. Set by os_aio_init(). */ static ulint os_aio_n_segments = ULINT_UNDEFINED; @@ -3393,16 +3393,6 @@ os_file_set_eof( return(!ftruncate(fileno(file), ftell(file))); } -/** This function can be called if one wants to post a batch of reads and -prefers an i/o-handler thread to handle them all at once later. You must -call os_aio_simulated_wake_handler_threads later to ensure the threads -are not left sleeping! */ -void -os_aio_simulated_put_read_threads_to_sleep() -{ - /* No op on non Windows */ -} - #else /* !_WIN32 */ #include @@ -5982,6 +5972,12 @@ AIO::start( os_aio_validate(); + os_last_printout = ut_time(); + + if (srv_use_native_aio) { + return(true); + } + os_aio_segment_wait_events = static_cast( ut_zalloc_nokey( n_segments * sizeof *os_aio_segment_wait_events)); @@ -5995,8 +5991,6 @@ AIO::start( os_aio_segment_wait_events[i] = os_event_create(0); } - os_last_printout = ut_time(); - return(true); } @@ -6047,12 +6041,14 @@ os_aio_free() { AIO::shutdown(); - for (ulint i = 0; i < os_aio_n_segments; i++) { - os_event_destroy(os_aio_segment_wait_events[i]); - } + if (!srv_use_native_aio) { + for (ulint i = 0; i < os_aio_n_segments; i++) { + os_event_destroy(os_aio_segment_wait_events[i]); + } - ut_free(os_aio_segment_wait_events); - os_aio_segment_wait_events = 0; + ut_free(os_aio_segment_wait_events); + os_aio_segment_wait_events = 0; + } os_aio_n_segments = 0; } @@ -6066,21 +6062,16 @@ os_aio_wake_all_threads_at_shutdown() AIO::wake_at_shutdown(); #elif defined(LINUX_NATIVE_AIO) - /* When using native AIO interface the io helper threads wait on io_getevents with a timeout value of 500ms. At each wake up these threads check the server status. No need to do anything to wake them up. */ +#endif /* !WIN_ASYNC_AIO */ if (srv_use_native_aio) { return; } -#endif /* !WIN_ASYNC_AIO */ - - /* Fall through to simulated AIO handler wakeup if we are - not using native AIO. */ - /* This loop wakes up all simulated ai/o threads */ for (ulint i = 0; i < os_aio_n_segments; ++i) { @@ -7433,7 +7424,8 @@ os_aio_print(FILE* file) srv_io_thread_function[i]); #ifndef _WIN32 - if (os_event_is_set(os_aio_segment_wait_events[i])) { + if (!srv_use_native_aio + && os_event_is_set(os_aio_segment_wait_events[i])) { fprintf(file, " ev set"); } #endif /* _WIN32 */ diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc index a0ff3589198..a884b5c1bad 100644 --- a/storage/innobase/srv/srv0srv.cc +++ b/storage/innobase/srv/srv0srv.cc @@ -3,7 +3,7 @@ Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, 2009 Google Inc. Copyright (c) 2009, Percona Inc. -Copyright (c) 2013, 2017, MariaDB Corporation. +Copyright (c) 2013, 2017, MariaDB Corporation. All Rights Reserved. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -631,7 +631,11 @@ struct srv_sys_t{ ulint n_sys_threads; /*!< size of the sys_threads array */ - srv_slot_t* sys_threads; /*!< server thread table */ + srv_slot_t* sys_threads; /*!< server thread table; + os_event_set() and + os_event_reset() on + sys_threads[]->event are + covered by srv_sys_t::mutex */ ulint n_threads_active[SRV_MASTER + 1]; /*!< number of threads active @@ -644,13 +648,16 @@ struct srv_sys_t{ static srv_sys_t* srv_sys = NULL; -/** Event to signal the monitor thread. */ +/** Event to signal srv_monitor_thread. Not protected by a mutex. +Set after setting srv_print_innodb_monitor. */ os_event_t srv_monitor_event; -/** Event to signal the error thread */ +/** Event to signal the shutdown of srv_error_monitor_thread. +Not protected by a mutex. */ os_event_t srv_error_event; -/** Event to signal the buffer pool dump/load thread */ +/** Event for waking up buf_dump_thread. Not protected by a mutex. +Set on shutdown or by buf_dump_start() or buf_load_start(). */ os_event_t srv_buf_dump_event; /** Event to signal the buffer pool resize thread */ diff --git a/storage/innobase/trx/trx0purge.cc b/storage/innobase/trx/trx0purge.cc index 0763e0fa057..a732b1ea150 100644 --- a/storage/innobase/trx/trx0purge.cc +++ b/storage/innobase/trx/trx0purge.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -282,23 +283,16 @@ trx_purge_sys_close(void) sess_close(purge_sys->sess); - purge_sys->sess = NULL; - purge_sys->view.close(); purge_sys->view.~ReadView(); rw_lock_free(&purge_sys->latch); mutex_free(&purge_sys->pq_mutex); - if (purge_sys->purge_queue != NULL) { - UT_DELETE(purge_sys->purge_queue); - purge_sys->purge_queue = NULL; - } + UT_DELETE(purge_sys->purge_queue); os_event_destroy(purge_sys->event); - purge_sys->event = NULL; - UT_DELETE(purge_sys->rseg_iter); ut_free(purge_sys); @@ -1910,21 +1904,17 @@ void trx_purge_stop(void) /*================*/ { - purge_state_t state; - int64_t sig_count = os_event_reset(purge_sys->event); - ut_a(srv_n_purge_threads > 0); rw_lock_x_lock(&purge_sys->latch); - ut_a(purge_sys->state != PURGE_STATE_INIT); - ut_a(purge_sys->state != PURGE_STATE_EXIT); - ut_a(purge_sys->state != PURGE_STATE_DISABLED); + const int64_t sig_count = os_event_reset(purge_sys->event); + const purge_state_t state = purge_sys->state; + + ut_a(state == PURGE_STATE_RUN || state == PURGE_STATE_STOP); ++purge_sys->n_stop; - state = purge_sys->state; - if (state == PURGE_STATE_RUN) { ib::info() << "Stopping purge"; @@ -1936,18 +1926,14 @@ trx_purge_stop(void) purge_sys->state = PURGE_STATE_STOP; - rw_lock_x_unlock(&purge_sys->latch); - if (state != PURGE_STATE_STOP) { - + rw_lock_x_unlock(&purge_sys->latch); /* Wait for purge coordinator to signal that it is suspended. */ os_event_wait_low(purge_sys->event, sig_count); } else { bool once = true; - rw_lock_x_lock(&purge_sys->latch); - /* Wait for purge to signal that it has actually stopped. */ while (purge_sys->running) { @@ -1984,17 +1970,11 @@ trx_purge_run(void) ut_error; case PURGE_STATE_RUN: - case PURGE_STATE_STOP: + ut_a(!purge_sys->n_stop); break; - } - - if (purge_sys->n_stop > 0) { - - ut_a(purge_sys->state == PURGE_STATE_STOP); - - --purge_sys->n_stop; - - if (purge_sys->n_stop == 0) { + case PURGE_STATE_STOP: + ut_a(purge_sys->n_stop); + if (--purge_sys->n_stop == 0) { ib::info() << "Resuming purge"; @@ -2002,8 +1982,6 @@ trx_purge_run(void) } MONITOR_INC_VALUE(MONITOR_PURGE_RESUME_COUNT, 1); - } else { - ut_a(purge_sys->state == PURGE_STATE_RUN); } rw_lock_x_unlock(&purge_sys->latch); diff --git a/storage/innobase/ut/ut0wqueue.cc b/storage/innobase/ut/ut0wqueue.cc index cee30925375..ccd5c10555c 100644 --- a/storage/innobase/ut/ut0wqueue.cc +++ b/storage/innobase/ut/ut0wqueue.cc @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 2006, 2015, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2017, MariaDB Corporation. All Rights Reserved. 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 @@ -31,7 +32,9 @@ Created 4/26/2006 Osku Salerma struct ib_wqueue_t { ib_mutex_t mutex; /*!< mutex protecting everything */ ib_list_t* items; /*!< work item list */ - os_event_t event; /*!< event we use to signal additions to list */ + os_event_t event; /*!< event we use to signal additions to list; + os_event_set() and os_event_reset() are + protected by ib_wqueue_t::mutex */ }; /****************************************************************//** From 979e94d264f04a2de59012bc3897e9e3b16d94ad Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 16 Feb 2017 14:11:33 +0100 Subject: [PATCH 255/258] followup for 96d097a7fa1 copy-paste error --- mysql-test/t/default_debug.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/t/default_debug.test b/mysql-test/t/default_debug.test index a4f6532403b..cdde26569ca 100644 --- a/mysql-test/t/default_debug.test +++ b/mysql-test/t/default_debug.test @@ -11,7 +11,7 @@ select a,b,default(b) from t1; set debug_sync='after_Item_default_value_calculate WAIT_FOR go'; send select a,b,default(b) from t1; connection default; -let $wait_condition=select count(*) from information_schema.processlist where s +let $wait_condition=select count(*) from information_schema.processlist where state like 'debug sync%'; source include/wait_condition.inc; set debug_sync='ha_write_row_start SIGNAL go'; insert t1 values (100,default(b)); From 51af19851ab926e44831c7dc2cd83c5e329eabc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 24 Feb 2017 22:08:09 +0200 Subject: [PATCH 256/258] MDEV-11454 post-merge fix: buf_dump(): Correct the printf format passed to buf_dump_status() to match the argument types. Revert the changes to storage/xtradb. XtraDB is not being compiled for 10.2. The unused copy that we have in the 10.2 branch is only getting merges from 10.1. Disable the test sys_vars.innodb_buffer_pool_dump_pct_function because it is unstable on buildbot. --- mysql-test/suite/sys_vars/disabled.def | 1 + storage/innobase/buf/buf0dump.cc | 9 ++++++--- storage/xtradb/buf/buf0dump.cc | 17 +++-------------- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/mysql-test/suite/sys_vars/disabled.def b/mysql-test/suite/sys_vars/disabled.def index e4a2699f031..872474cb1e9 100644 --- a/mysql-test/suite/sys_vars/disabled.def +++ b/mysql-test/suite/sys_vars/disabled.def @@ -12,3 +12,4 @@ innodb_flush_checkpoint_debug_basic: removed from XtraDB-26.0 all_vars: obsolete, see sysvars_* tests +innodb_buffer_pool_dump_pct_function: MDEV-11454 follow-up needed (unstable) diff --git a/storage/innobase/buf/buf0dump.cc b/storage/innobase/buf/buf0dump.cc index 9110345fa24..873f4ea438a 100644 --- a/storage/innobase/buf/buf0dump.cc +++ b/storage/innobase/buf/buf0dump.cc @@ -324,9 +324,12 @@ buf_dump( * srv_buf_pool_dump_pct / 100; if (n_pages > t_pages) { buf_dump_status(STATUS_INFO, - "Instance %d, restricted to %u pages " \ - "due to innodb_buf_pool_dump_pct (%d)", - i, t_pages, srv_buf_pool_dump_pct); + "Instance " ULINTPF + ", restricted to " ULINTPF + " pages due to " + "innodb_buf_pool_dump_pct=%lu", + i, t_pages, + srv_buf_pool_dump_pct); n_pages = t_pages; } diff --git a/storage/xtradb/buf/buf0dump.cc b/storage/xtradb/buf/buf0dump.cc index e6137760152..6abf7375775 100644 --- a/storage/xtradb/buf/buf0dump.cc +++ b/storage/xtradb/buf/buf0dump.cc @@ -156,7 +156,8 @@ buf_load_status( fmt, ap); if (severity == STATUS_NOTICE || severity == STATUS_ERR) { - ib_logf((ib_log_level_t) severity, "%s", + ut_print_timestamp(stderr); + fprintf(stderr, " InnoDB: %s\n", export_vars.innodb_buffer_pool_load_status); } @@ -248,21 +249,9 @@ buf_dump( } if (srv_buf_pool_dump_pct != 100) { - ulint t_pages; - ut_ad(srv_buf_pool_dump_pct < 100); - /* limit the number of total pages dumped to X% of the - * total number of pages */ - t_pages = buf_pool->curr_size - * srv_buf_pool_dump_pct / 100; - if (n_pages > t_pages) { - buf_dump_status(STATUS_INFO, - "Instance %d, restricted to %u pages " \ - "due to innodb_buf_pool_dump_pct (%d)", - i, t_pages, srv_buf_pool_dump_pct); - n_pages = t_pages; - } + n_pages = n_pages * srv_buf_pool_dump_pct / 100; if (n_pages == 0) { n_pages = 1; From b513e3711743e3ff24b3d14794a0fba87fd18c31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 24 Feb 2017 10:20:44 +0200 Subject: [PATCH 257/258] Clean up some Galera tests. Note: At least one test is unstable, failing with the following: ./mtr --mysqld=--innodb-purge-threads=9 --big-test --no-reorder \ galera.galera_parallel_autoinc_largetrx galera.galera_var_slave_threads The result difference is dependent on innodb_purge_threads. --- .../suite/galera/r/galera_mdev_10812.result | 5 +++ .../r/galera_parallel_autoinc_largetrx.result | 18 +++++----- .../r/galera_var_certify_nonPK_off.result | 3 ++ .../galera/r/galera_var_max_ws_rows.result | 5 +++ .../galera/r/galera_var_slave_threads.result | 36 +++++++++---------- .../t/galera_parallel_autoinc_largetrx.test | 6 ++-- .../galera/t/galera_var_slave_threads.test | 16 ++++----- 7 files changed, 51 insertions(+), 38 deletions(-) diff --git a/mysql-test/suite/galera/r/galera_mdev_10812.result b/mysql-test/suite/galera/r/galera_mdev_10812.result index fba10004761..de0a08a3794 100644 --- a/mysql-test/suite/galera/r/galera_mdev_10812.result +++ b/mysql-test/suite/galera/r/galera_mdev_10812.result @@ -2,10 +2,15 @@ # MDEV-10812: On COM_STMT_CLOSE/COM_QUIT, when wsrep_conflict_state # is ABORTED, it causes wrong response to be sent to the client # +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; CREATE TABLE t1(a INT PRIMARY KEY); INSERT INTO t1 VALUES(1),(2),(3); START TRANSACTION ; UPDATE t1 SET a=a+100; +connection node_2; UPDATE t1 SET a=a+100; +connection node_1a; +disconnect node_1a; +connection node_2; DROP TABLE t1; diff --git a/mysql-test/suite/galera/r/galera_parallel_autoinc_largetrx.result b/mysql-test/suite/galera/r/galera_parallel_autoinc_largetrx.result index dd30f5af384..44feeddcd48 100644 --- a/mysql-test/suite/galera/r/galera_parallel_autoinc_largetrx.result +++ b/mysql-test/suite/galera/r/galera_parallel_autoinc_largetrx.result @@ -13,16 +13,16 @@ INSERT INTO t1 (f2) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4;; connection node_1; connection node_1a; connection node_2; -SELECT COUNT(*) = 30000 FROM t1; -COUNT(*) = 30000 -1 -SELECT COUNT(DISTINCT f1) = 30000 FROM t1; -COUNT(DISTINCT f1) = 30000 -1 -SELECT COUNT(*) = 5 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE +SELECT COUNT(*) FROM t1; +COUNT(*) +30000 +SELECT COUNT(DISTINCT f1) FROM t1; +COUNT(DISTINCT f1) +30000 +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND NOT STATE <=> 'InnoDB background thread'; -COUNT(*) = 5 -1 +COUNT(*) +5 connection default; DROP TABLE t1; DROP TABLE ten; diff --git a/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result index cecec999f37..ca3844bf6bf 100644 --- a/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result +++ b/mysql-test/suite/galera/r/galera_var_certify_nonPK_off.result @@ -24,4 +24,7 @@ connection node_2; SET GLOBAL wsrep_certify_nonPK = 1; DROP TABLE t1; DROP TABLE t2; +connection node_1; call mtr.add_suppression("SQL statement was ineffective"); +disconnect node_2; +disconnect node_1; diff --git a/mysql-test/suite/galera/r/galera_var_max_ws_rows.result b/mysql-test/suite/galera/r/galera_var_max_ws_rows.result index a1deb16c5a6..6bf67a3fb60 100644 --- a/mysql-test/suite/galera/r/galera_var_max_ws_rows.result +++ b/mysql-test/suite/galera/r/galera_var_max_ws_rows.result @@ -118,12 +118,14 @@ DROP TABLE ten; # wsrep_max_ws_rows causes cluster to break when running # Galera cluster in TOI mode # +connection node_1; CREATE TABLE t1(c1 INT)ENGINE = INNODB; SET GLOBAL wsrep_max_ws_rows= DEFAULT; INSERT INTO t1 VALUES(1); INSERT INTO t1 SELECT * FROM t1; SET GLOBAL wsrep_max_ws_rows= 1; ALTER TABLE t1 CHANGE COLUMN c1 c1 BIGINT; +connection node_2; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -133,3 +135,6 @@ SELECT COUNT(*) FROM t1; COUNT(*) 2 DROP TABLE t1; +connection node_1; +disconnect node_2; +disconnect node_1; diff --git a/mysql-test/suite/galera/r/galera_var_slave_threads.result b/mysql-test/suite/galera/r/galera_var_slave_threads.result index 0ad0e3820e0..030f6c13b0a 100644 --- a/mysql-test/suite/galera/r/galera_var_slave_threads.result +++ b/mysql-test/suite/galera/r/galera_var_slave_threads.result @@ -12,26 +12,26 @@ SELECT @@wsrep_slave_threads = 1; @@wsrep_slave_threads = 1 1 SET GLOBAL wsrep_slave_threads = 1; -SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND NOT STATE <=> 'InnoDB background thread'; -COUNT(*) = 2 -1 -SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; -COUNT(*) = 1 +COUNT(*) +2 +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; +COUNT(*) 1 SET GLOBAL wsrep_slave_threads = 64; connection node_1; INSERT INTO t1 VALUES (1); connection node_2; -SELECT COUNT(*) = 1 FROM t1; -COUNT(*) = 1 +SELECT COUNT(*) FROM t1; +COUNT(*) 1 -SELECT COUNT(*) = @@wsrep_slave_threads + 1 FROM INFORMATION_SCHEMA.PROCESSLIST +SELECT COUNT(*) - @@wsrep_slave_threads FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND NOT STATE <=> 'InnoDB background thread'; -COUNT(*) = @@wsrep_slave_threads + 1 +COUNT(*) - @@wsrep_slave_threads 1 -SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; -COUNT(*) = 1 +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; +COUNT(*) 1 SET GLOBAL wsrep_slave_threads = 1; connection node_1; @@ -100,15 +100,15 @@ INSERT INTO t2 VALUES (DEFAULT); INSERT INTO t2 VALUES (DEFAULT); INSERT INTO t2 VALUES (DEFAULT); connection node_2; -SELECT COUNT(*) = 64 FROM t2; -COUNT(*) = 64 -1 -SELECT COUNT(*) = @@wsrep_slave_threads + 1 FROM INFORMATION_SCHEMA.PROCESSLIST +SELECT COUNT(*) FROM t2; +COUNT(*) +64 +SELECT COUNT(*) - @@wsrep_slave_threads FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND NOT STATE <=> 'InnoDB background thread'; -COUNT(*) = @@wsrep_slave_threads + 1 +COUNT(*) - @@wsrep_slave_threads 1 -SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; -COUNT(*) = 1 +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; +COUNT(*) 1 SET GLOBAL wsrep_slave_threads = 1; DROP TABLE t1; diff --git a/mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test b/mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test index ea853f8ea01..4e3da64489a 100644 --- a/mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test +++ b/mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test @@ -37,9 +37,9 @@ SET GLOBAL wsrep_slave_threads = 4; --connection node_2 --reap -SELECT COUNT(*) = 30000 FROM t1; -SELECT COUNT(DISTINCT f1) = 30000 FROM t1; -SELECT COUNT(*) = 5 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE +SELECT COUNT(*) FROM t1; +SELECT COUNT(DISTINCT f1) FROM t1; +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND NOT STATE <=> 'InnoDB background thread'; --disable_query_log diff --git a/mysql-test/suite/galera/t/galera_var_slave_threads.test b/mysql-test/suite/galera/t/galera_var_slave_threads.test index 23608ad32a9..7ebb787b3da 100644 --- a/mysql-test/suite/galera/t/galera_var_slave_threads.test +++ b/mysql-test/suite/galera/t/galera_var_slave_threads.test @@ -22,9 +22,9 @@ SELECT @@wsrep_slave_threads = 1; SET GLOBAL wsrep_slave_threads = 1; # There is a separate wsrep_aborter thread at all times -SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND NOT STATE <=> 'InnoDB background thread'; -SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; # # Increase the number of slave threads. The change takes effect immediately @@ -37,11 +37,11 @@ SET GLOBAL wsrep_slave_threads = 64; INSERT INTO t1 VALUES (1); --connection node_2 -SELECT COUNT(*) = 1 FROM t1; +SELECT COUNT(*) FROM t1; -SELECT COUNT(*) = @@wsrep_slave_threads + 1 FROM INFORMATION_SCHEMA.PROCESSLIST +SELECT COUNT(*) - @@wsrep_slave_threads FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND NOT STATE <=> 'InnoDB background thread'; -SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; # # Reduce the number of slave threads. The change is not immediate -- a thread will only exit after a replication event @@ -60,11 +60,11 @@ while ($count) } --connection node_2 -SELECT COUNT(*) = 64 FROM t2; +SELECT COUNT(*) FROM t2; -SELECT COUNT(*) = @@wsrep_slave_threads + 1 FROM INFORMATION_SCHEMA.PROCESSLIST +SELECT COUNT(*) - @@wsrep_slave_threads FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND NOT STATE <=> 'InnoDB background thread'; -SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; +SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%wsrep aborter%'; --eval SET GLOBAL wsrep_slave_threads = $wsrep_slave_threads_orig From 78153cf641aea41166d3e79ae99b57b154f6a027 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 24 Feb 2017 12:51:55 +0200 Subject: [PATCH 258/258] MDEV-11927 InnoDB change buffer is not being merged to tables in the system tablespace This is a regression caused by MDEV-11585, which accidentally changed Tablespace::is_undo_tablespace() in an incorrect way, causing the InnoDB system tablespace to be reported as a dedicated undo tablespace, for which the change buffer is not applicable. Tablespace::is_undo_tablespace(): Remove. There were only 2 calls from the function buf_page_io_complete(). Replace those calls as appropriate. Also, merge changes to tablespace import/export tests from MySQL 5.7, and clean up the tests a little further, allowing them to be run with any innodb_page_size. Remove duplicated error injection instrumentation for the import/export tests. In MySQL 5.7, the error injection label buf_page_is_corrupt_failure was renamed to buf_page_import_corrupt_failure. fil_space_extend_must_retry(): Correct a debug assertion (tablespaces can be extended during IMPORT), and remove a TODO comment about compressed temporary tables that was already addressed in MDEV-11816. dict_build_tablespace_for_table(): Correct a comment that no longer holds after MDEV-11816, and assert that ROW_FORMAT=COMPRESSED can only be used in .ibd files. --- mysql-test/suite/galera/disabled.def | 2 - .../suite/innodb/r/innodb-wl5522-debug.result | 113 ++++++----- .../suite/innodb/r/innodb-wl5522.result | 30 ++- .../suite/innodb/t/innodb-wl5522-debug.test | 175 +++++++----------- mysql-test/suite/innodb/t/innodb-wl5522.test | 31 +++- .../r/wl5522_debug_zip.result} | 10 +- .../r/wl5522_zip.result} | 8 +- .../t/wl5522_debug_zip.test} | 84 ++++----- .../t/wl5522_zip.test} | 70 +++---- storage/innobase/buf/buf0buf.cc | 34 +--- storage/innobase/dict/dict0crea.cc | 9 +- storage/innobase/fil/fil0fil.cc | 3 +- storage/innobase/handler/ha_innodb.cc | 2 +- storage/innobase/include/fsp0space.h | 7 - 14 files changed, 270 insertions(+), 308 deletions(-) rename mysql-test/suite/{innodb/r/innodb-wl5522-debug-zip.result => innodb_zip/r/wl5522_debug_zip.result} (98%) rename mysql-test/suite/{innodb/r/innodb-wl5522-zip.result => innodb_zip/r/wl5522_zip.result} (98%) rename mysql-test/suite/{innodb/t/innodb-wl5522-debug-zip.test => innodb_zip/t/wl5522_debug_zip.test} (88%) rename mysql-test/suite/{innodb/t/innodb-wl5522-zip.test => innodb_zip/t/wl5522_zip.test} (86%) diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index a738e97271b..be4eb210f2f 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -42,5 +42,3 @@ galera_sst_xtrabackup-v2 : MDEV-11208 galera_sst_xtrabackup-v2_encrypt_with_key : MDEV-11208 mysql-wsrep#33 : TODO: investigate galera_var_innodb_disallow_writes : MDEV-10949 -galera_many_tables_pk : MDEV-11927 -galera_many_tables_nopk : MDEV-11927 diff --git a/mysql-test/suite/innodb/r/innodb-wl5522-debug.result b/mysql-test/suite/innodb/r/innodb-wl5522-debug.result index 765a57b89d1..54f8797f0cb 100644 --- a/mysql-test/suite/innodb/r/innodb-wl5522-debug.result +++ b/mysql-test/suite/innodb/r/innodb-wl5522-debug.result @@ -17,23 +17,18 @@ DROP DATABASE IF EXISTS test_wl5522; Warnings: Note 1008 Can't drop database 'test_wl5522'; database doesn't exist CREATE DATABASE test_wl5522; -SET SESSION debug_dbug="+d,ib_discard_before_commit_crash"; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB; INSERT INTO test_wl5522.t1 VALUES(1),(2),(3); +SET SESSION debug_dbug="+d,ib_discard_before_commit_crash"; ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; ERROR HY000: Lost connection to MySQL server during query -SET SESSION debug_dbug="-d,ib_discard_before_commit_crash"; DROP TABLE test_wl5522.t1; SET GLOBAL innodb_file_per_table = 1; -SELECT @@innodb_file_per_table; -@@innodb_file_per_table -1 -SET SESSION debug_dbug="+d,ib_discard_after_commit_crash"; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB; INSERT INTO test_wl5522.t1 VALUES(1),(2),(3); +SET SESSION debug_dbug="+d,ib_discard_after_commit_crash"; ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; ERROR HY000: Lost connection to MySQL server during query -SET SESSION debug_dbug="-d,ib_discard_after_commit_crash"; DROP TABLE test_wl5522.t1; SET GLOBAL innodb_file_per_table = 1; SELECT @@innodb_file_per_table; @@ -51,21 +46,18 @@ ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; SELECT COUNT(*) FROM test_wl5522.t1; ERROR HY000: Tablespace has been discarded for table `t1` restore: t1 .ibd and .cfg files -SET SESSION debug_dbug="+d,ib_import_before_commit_crash"; SELECT * FROM test_wl5522.t1; ERROR HY000: Tablespace has been discarded for table `t1` +SET SESSION debug_dbug="+d,ib_import_before_commit_crash"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Lost connection to MySQL server during query -SET SESSION debug_dbug="-d,ib_import_before_commit_crash"; -SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash"; SELECT COUNT(*) FROM test_wl5522.t1; ERROR HY000: Tablespace has been discarded for table `t1` +SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Lost connection to MySQL server during query unlink: t1.ibd unlink: t1.cfg -# Restart and reconnect to the server -SET SESSION debug_dbug="-d,ib_import_before_checkpoint_crash"; DROP TABLE test_wl5522.t1; SET GLOBAL innodb_file_per_table = 1; SELECT @@innodb_file_per_table; @@ -94,13 +86,14 @@ c1 DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); +SET @saved_debug_dbug = @@SESSION.debug_dbug; SET SESSION debug_dbug="+d,ib_export_io_write_failure_1"; FLUSH TABLES test_wl5522.t1 FOR EXPORT; Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -110,7 +103,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -120,7 +113,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_3"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -130,7 +123,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_4"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -140,7 +133,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_5"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -150,7 +143,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_6"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -160,7 +153,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_7"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -170,7 +163,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_8"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -180,7 +173,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_9"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -190,7 +183,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_10"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -200,7 +193,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_11"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -210,7 +203,7 @@ Warnings: Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_12"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (100), (200), (300); @@ -230,7 +223,7 @@ SET SESSION debug_dbug="+d,ib_import_io_read_error_1"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while reading index fields. -SET SESSION debug_dbug="-d,ib_import_io_read_error_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -241,7 +234,7 @@ SET SESSION debug_dbug="+d,ib_import_io_read_error_2"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while reading index meta-data, expected to read 44 bytes but read only 0 bytes -SET SESSION debug_dbug="-d,ib_import_io_read_error_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -252,7 +245,7 @@ SET SESSION debug_dbug="+d,ib_import_io_read_error_3"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while reading number of indexes. -SET SESSION debug_dbug="-d,ib_import_io_read_error_3"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -263,7 +256,7 @@ SET SESSION debug_dbug="+d,ib_import_io_read_error_4"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while reading table column meta-data. -SET SESSION debug_dbug="-d,ib_import_io_read_error_4"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -274,7 +267,7 @@ SET SESSION debug_dbug="+d,ib_import_io_read_error_5"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while reading meta-data export hostname length. -SET SESSION debug_dbug="-d,ib_import_io_read_error_5"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -285,7 +278,7 @@ SET SESSION debug_dbug="+d,ib_import_io_read_error_6"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while reading meta-data table name length. -SET SESSION debug_dbug="-d,ib_import_io_read_error_6"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -296,7 +289,7 @@ SET SESSION debug_dbug="+d,ib_import_io_read_error_7"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while reading autoinc value. -SET SESSION debug_dbug="-d,ib_import_io_read_error_7"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -307,7 +300,7 @@ SET SESSION debug_dbug="+d,ib_import_io_read_error_8"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while reading meta-data header. -SET SESSION debug_dbug="-d,ib_import_io_read_error_8"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -318,7 +311,7 @@ SET SESSION debug_dbug="+d,ib_import_io_read_error_9"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while reading meta-data version. -SET SESSION debug_dbug="-d,ib_import_io_read_error_9"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -329,7 +322,7 @@ SET SESSION debug_dbug="+d,ib_import_string_read_error"; restore: t1 .cfg file ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: IO Read error: while parsing export hostname. -SET SESSION debug_dbug="-d,ib_import_string_read_error"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); @@ -340,7 +333,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_OOM_1"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_import_OOM_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -353,7 +346,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_OOM_2"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_import_OOM_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -366,7 +359,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_OOM_4"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_import_OOM_4"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -379,7 +372,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_OOM_5"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_import_OOM_5"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -392,7 +385,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_OOM_6"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_import_OOM_6"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -405,7 +398,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_OOM_7"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_import_OOM_7"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -418,7 +411,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_OOM_8"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_import_OOM_8"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -431,7 +424,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_OOM_9"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_import_OOM_9"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -444,7 +437,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_OOM_10"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space -SET SESSION debug_dbug="-d,ib_import_OOM_10"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -456,7 +449,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_internal_error"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: While updating the of index GEN_CLUST_INDEX - Generic error -SET SESSION debug_dbug="-d,ib_import_internal_error"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; DROP TABLE test_wl5522.t1; @@ -469,36 +462,36 @@ SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Too many concurrent transactions restore: t1 .ibd and .cfg files -SET SESSION debug_dbug="-d,ib_import_reset_space_and_lsn_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Got error 44 'Tablespace not found' from ./test_wl5522/t1.ibd -SET SESSION debug_dbug="-d,ib_import_open_tablespace_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_check_bitmap_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_cluster_root_adjust_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_cluster_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_cluster_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_sec_root_adjust_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_set_max_rowid_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_set_max_rowid_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; unlink: t1.ibd unlink: t1.cfg DROP TABLE test_wl5522.t1; @@ -838,7 +831,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -847,10 +840,10 @@ ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; SELECT COUNT(*) FROM test_wl5522.t1; ERROR HY000: Tablespace has been discarded for table `t1` restore: t1 .ibd and .cfg files -SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; +SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption -SET SESSION debug_dbug="-d,buf_page_is_corrupt_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -862,7 +855,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index corrupt: Externally stored column(5) has a reference length of 19 in the cluster index GEN_CLUST_INDEX -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -874,7 +867,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Index for table 't1' is corrupt; try to repair it -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_3"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -886,7 +879,7 @@ SET SESSION debug_dbug="+d,ib_import_create_index_failure_1"; ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1); Warnings: Warning 1814 Tablespace has been discarded for table `t1` -SET SESSION debug_dbug="-d,ib_import_create_index_failure_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -898,7 +891,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,fil_space_create_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Got error 11 'Generic error' from ./test_wl5522/t1.ibd -SET SESSION debug_dbug="-d,fil_space_create_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -910,7 +903,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Got error 39 'Data structure corruption' from ./test_wl5522/t1.ibd -SET SESSION debug_dbug="-d,dict_tf_to_fsp_flags_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg @@ -922,7 +915,7 @@ restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption -SET SESSION debug_dbug="-d,fsp_flags_is_valid_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; unlink: t1.ibd unlink: t1.cfg diff --git a/mysql-test/suite/innodb/r/innodb-wl5522.result b/mysql-test/suite/innodb/r/innodb-wl5522.result index 2ae994e8f3d..e5782755dd8 100644 --- a/mysql-test/suite/innodb/r/innodb-wl5522.result +++ b/mysql-test/suite/innodb/r/innodb-wl5522.result @@ -1,4 +1,5 @@ call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT."); +call mtr.add_suppression("Index for table 't2' is corrupt; try to repair it"); FLUSH TABLES; CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, @@ -29,15 +30,19 @@ a b c 823 Evolution lsjndofiabsoibeg 822 Devotion asdfuihknaskdf 821 Cavalry ..asdasdfaeraf +CREATE TABLE t2(a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=COMPACT; t1.frm t1.ibd -# Restarting server -# Done restarting server -FLUSH TABLE t1 FOR EXPORT; +t2.frm +t2.ibd +FLUSH TABLE t1, t2 FOR EXPORT; # List before copying files t1.cfg t1.frm t1.ibd +t2.cfg +t2.frm +t2.ibd UNLOCK TABLES; INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; SELECT COUNT(*) FROM t1; @@ -58,9 +63,13 @@ a b c # List before t1 DISCARD t1.frm t1.ibd +t2.frm +t2.ibd ALTER TABLE t1 DISCARD TABLESPACE; # List after t1 DISCARD t1.frm +t2.frm +t2.ibd ALTER TABLE t1 IMPORT TABLESPACE; ALTER TABLE t1 ENGINE InnoDB; SELECT COUNT(*) FROM t1; @@ -79,6 +88,8 @@ a b c t1.cfg t1.frm t1.ibd +t2.frm +t2.ibd SELECT COUNT(*) FROM t1; COUNT(*) 640 @@ -93,6 +104,19 @@ a b c 822 Devotion asdfuihknaskdf 821 Cavalry ..asdasdfaeraf DROP TABLE t1; +ALTER TABLE t2 ROW_FORMAT=DYNAMIC; +ALTER TABLE t2 DISCARD TABLESPACE; +# List after t2 DISCARD +t2.frm +ALTER TABLE t2 IMPORT TABLESPACE; +ERROR HY000: Schema mismatch (Table flags don't match, server table has 0x4 and the meta-data file has 0x1) +ALTER TABLE t2 IMPORT TABLESPACE; +ERROR HY000: Schema mismatch (Expected FSP_SPACE_FLAGS=0x*, .ibd file contains 0x*.) +DROP TABLE t2; +SET GLOBAL innodb_file_per_table = 1; +SELECT @@innodb_file_per_table; +@@innodb_file_per_table +1 CREATE TABLE t1( c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 INT) ENGINE=InnoDB; diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test index fd25016e065..b57ac62e1d8 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test +++ b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test @@ -1,4 +1,4 @@ -# Not supported in embedded +# mysql-test-run.pl --embedded cannot restart the server. --source include/not_embedded.inc # Adding big test option for this test. @@ -38,50 +38,34 @@ SELECT @@innodb_file_per_table; DROP DATABASE IF EXISTS test_wl5522; CREATE DATABASE test_wl5522; -##### Before DISCARD commit crash +CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB; +INSERT INTO test_wl5522.t1 VALUES(1),(2),(3); + +--let $_server_id= `SELECT @@server_id` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect + +--exec echo wait > $_expect_file_name SET SESSION debug_dbug="+d,ib_discard_before_commit_crash"; - -CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB; -INSERT INTO test_wl5522.t1 VALUES(1),(2),(3); - -# Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect - -# Execute the statement that causes the crash --error 2013 ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; ---enable_reconnect ---source include/wait_until_connected_again.inc ---disable_reconnect +--source include/start_mysqld.inc -SET SESSION debug_dbug="-d,ib_discard_before_commit_crash"; DROP TABLE test_wl5522.t1; -#### Before DISCARD commit crash -##### After DISCARD commit crash SET GLOBAL innodb_file_per_table = 1; -SELECT @@innodb_file_per_table; - -SET SESSION debug_dbug="+d,ib_discard_after_commit_crash"; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB; INSERT INTO test_wl5522.t1 VALUES(1),(2),(3); -# Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect - -# Execute the statement that causes the crash +--exec echo wait > $_expect_file_name +SET SESSION debug_dbug="+d,ib_discard_after_commit_crash"; --error 2013 ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; ---enable_reconnect ---source include/wait_until_connected_again.inc ---disable_reconnect +--source include/start_mysqld.inc -SET SESSION debug_dbug="-d,ib_discard_after_commit_crash"; DROP TABLE test_wl5522.t1; -#### After DISCARD commit crash SET GLOBAL innodb_file_per_table = 1; SELECT @@innodb_file_per_table; @@ -116,61 +100,35 @@ do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF -##### Before commit crash -SET SESSION debug_dbug="+d,ib_import_before_commit_crash"; - --error ER_TABLESPACE_DISCARDED SELECT * FROM test_wl5522.t1; -# Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect - -# Execute the statement that causes the crash +--exec echo wait > $_expect_file_name +SET SESSION debug_dbug="+d,ib_import_before_commit_crash"; --error 2013 ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ---enable_reconnect ---source include/wait_until_connected_again.inc ---disable_reconnect - -SET SESSION debug_dbug="-d,ib_import_before_commit_crash"; -#### Before commit crash +--source include/start_mysqld.inc # Check that the DD is consistent after recovery -##### Before checkpoint crash -SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash"; - --error ER_TABLESPACE_DISCARDED SELECT COUNT(*) FROM test_wl5522.t1; -# Don't start up the server right away. ---exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect - -# Execute the statement that causes the crash +--exec echo wait > $_expect_file_name +SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash"; --error 2013 ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; # After the above test the results are non-deterministic, # delete the old tablespace files and drop the table, # recreate the table and do a proper import. --- source include/wait_until_disconnected.inc perl; do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF ---echo # Restart and reconnect to the server ---enable_reconnect ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect ---source include/wait_until_connected_again.inc ---disable_reconnect - -SET SESSION debug_dbug="-d,ib_import_before_checkpoint_crash"; -#### Before checkpoint crash - -# After the above test the results are non-deterministic, recreate the table -# and do a proper import. +--source include/start_mysqld.inc DROP TABLE test_wl5522.t1; @@ -202,6 +160,7 @@ DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES (1); +SET @saved_debug_dbug = @@SESSION.debug_dbug; SET SESSION debug_dbug="+d,ib_export_io_write_failure_1"; --replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/ @@ -210,7 +169,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -226,7 +185,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -241,7 +200,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_3"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -256,7 +215,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_4"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -271,7 +230,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_5"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -287,7 +246,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_6"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -303,7 +262,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_7"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -319,7 +278,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_8"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -334,7 +293,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_9"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -350,7 +309,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_10"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -366,7 +325,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_11"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -382,7 +341,7 @@ FLUSH TABLES test_wl5522.t1 FOR EXPORT; UNLOCK TABLES; -SET SESSION debug_dbug="-d,ib_export_io_write_failure_12"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -422,7 +381,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_io_read_error_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -446,7 +405,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_io_read_error_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -470,7 +429,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_io_read_error_3"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -494,7 +453,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_io_read_error_4"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -518,7 +477,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_io_read_error_5"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -542,7 +501,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_io_read_error_6"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -566,7 +525,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_io_read_error_7"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -590,7 +549,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_io_read_error_8"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -614,7 +573,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_io_read_error_9"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -639,7 +598,7 @@ EOF --error ER_IO_READ_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_string_read_error"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -666,7 +625,7 @@ SET SESSION debug_dbug="+d,ib_import_OOM_1"; --error ER_OUT_OF_RESOURCES ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_OOM_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -698,7 +657,7 @@ SET SESSION debug_dbug="+d,ib_import_OOM_2"; --error ER_OUT_OF_RESOURCES ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_OOM_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -730,7 +689,7 @@ SET SESSION debug_dbug="+d,ib_import_OOM_4"; --error ER_OUT_OF_RESOURCES ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_OOM_4"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -762,7 +721,7 @@ SET SESSION debug_dbug="+d,ib_import_OOM_5"; --error ER_OUT_OF_RESOURCES ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_OOM_5"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -793,7 +752,7 @@ SET SESSION debug_dbug="+d,ib_import_OOM_6"; --error ER_OUT_OF_RESOURCES ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_OOM_6"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -823,7 +782,7 @@ SET SESSION debug_dbug="+d,ib_import_OOM_7"; --error ER_OUT_OF_RESOURCES ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_OOM_7"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -853,7 +812,7 @@ SET SESSION debug_dbug="+d,ib_import_OOM_8"; --error ER_OUT_OF_RESOURCES ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_OOM_8"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -883,7 +842,7 @@ SET SESSION debug_dbug="+d,ib_import_OOM_9"; --error ER_OUT_OF_RESOURCES ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_OOM_9"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -913,7 +872,7 @@ SET SESSION debug_dbug="+d,ib_import_OOM_10"; --error ER_OUT_OF_RESOURCES ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_OOM_10"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -945,7 +904,7 @@ SET SESSION debug_dbug="+d,ib_import_internal_error"; --error ER_INTERNAL_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_internal_error"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -986,7 +945,7 @@ do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF -SET SESSION debug_dbug="-d,ib_import_reset_space_and_lsn_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Test failure after attempting a tablespace open SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; @@ -996,7 +955,7 @@ SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; --error ER_GET_ERRMSG ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_open_tablespace_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -1011,7 +970,7 @@ SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_check_bitmap_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -1025,7 +984,7 @@ SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_cluster_root_adjust_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -1039,7 +998,7 @@ SET SESSION debug_dbug="+d,ib_import_cluster_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_cluster_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -1053,7 +1012,7 @@ SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_sec_root_adjust_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; @@ -1067,7 +1026,7 @@ SET SESSION debug_dbug="+d,ib_import_set_max_rowid_failure"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_set_max_rowid_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; # Left over from the failed IMPORT perl; @@ -1250,7 +1209,7 @@ SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1"; --error ER_INTERNAL_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -1274,14 +1233,14 @@ do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF -SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; +SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure"; --replace_regex /'.*t1.cfg'/'t1.cfg'/ --error ER_INTERNAL_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,buf_page_is_corrupt_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -1311,7 +1270,7 @@ SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2"; --error ER_INNODB_INDEX_CORRUPT ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_2"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -1341,7 +1300,7 @@ SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3"; --error ER_NOT_KEYFILE ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,ib_import_trigger_corruption_3"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -1361,7 +1320,7 @@ SET SESSION debug_dbug="+d,ib_import_create_index_failure_1"; ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1); -SET SESSION debug_dbug="-d,ib_import_create_index_failure_1"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -1392,7 +1351,7 @@ SET SESSION debug_dbug="+d,fil_space_create_failure"; --error ER_GET_ERRMSG ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,fil_space_create_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -1423,7 +1382,7 @@ SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure"; --error ER_GET_ERRMSG ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,dict_tf_to_fsp_flags_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; @@ -1454,7 +1413,7 @@ SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure"; --error ER_INTERNAL_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -SET SESSION debug_dbug="-d,fsp_flags_is_valid_failure"; +SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; diff --git a/mysql-test/suite/innodb/t/innodb-wl5522.test b/mysql-test/suite/innodb/t/innodb-wl5522.test index d2b6fca4d4a..fc328cfd71f 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5522.test +++ b/mysql-test/suite/innodb/t/innodb-wl5522.test @@ -4,6 +4,7 @@ -- source include/have_innodb.inc call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT."); +call mtr.add_suppression("Index for table 't2' is corrupt; try to repair it"); FLUSH TABLES; let $MYSQLD_TMPDIR = `SELECT @@tmpdir`; @@ -30,15 +31,18 @@ INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; SELECT COUNT(*) FROM t1; SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; SELECT * FROM t1 ORDER BY a DESC LIMIT 3; + +CREATE TABLE t2(a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=COMPACT; + --list_files $MYSQLD_DATADIR/test ---echo # Restarting server --- source include/restart_mysqld.inc ---echo # Done restarting server -FLUSH TABLE t1 FOR EXPORT; +--source include/restart_mysqld.inc +FLUSH TABLE t1, t2 FOR EXPORT; --echo # List before copying files --list_files $MYSQLD_DATADIR/test --copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_TMPDIR/t1.cfg --copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_TMPDIR/t1.ibd +--move_file $MYSQLD_DATADIR/test/t2.cfg $MYSQLD_TMPDIR/t2.cfg +--copy_file $MYSQLD_DATADIR/test/t2.ibd $MYSQLD_TMPDIR/t2.ibd UNLOCK TABLES; INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; SELECT COUNT(*) FROM t1; @@ -64,10 +68,27 @@ SELECT COUNT(*) FROM t1; SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; SELECT * FROM t1 ORDER BY a DESC LIMIT 3; DROP TABLE t1; - --remove_file $MYSQLD_TMPDIR/t1.cfg --remove_file $MYSQLD_TMPDIR/t1.ibd +ALTER TABLE t2 ROW_FORMAT=DYNAMIC; +ALTER TABLE t2 DISCARD TABLESPACE; +--echo # List after t2 DISCARD +--list_files $MYSQLD_DATADIR/test +--move_file $MYSQLD_TMPDIR/t2.ibd $MYSQLD_DATADIR/test/t2.ibd +--move_file $MYSQLD_TMPDIR/t2.cfg $MYSQLD_DATADIR/test/t2.cfg +--error ER_TABLE_SCHEMA_MISMATCH +ALTER TABLE t2 IMPORT TABLESPACE; +--remove_file $MYSQLD_DATADIR/test/t2.cfg +--replace_regex /(FSP_SPACE_FLAGS=0x)[0-9a-f]+(,.*0x)[0-9a-f]+(.*)/\1*\2*\3/ +--error ER_TABLE_SCHEMA_MISMATCH +ALTER TABLE t2 IMPORT TABLESPACE; +DROP TABLE t2; +--remove_file $MYSQLD_DATADIR/test/t2.ibd + +SET GLOBAL innodb_file_per_table = 1; +SELECT @@innodb_file_per_table; + let MYSQLD_DATADIR =`SELECT @@datadir`; # Try importing when tablespace already exists diff --git a/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result b/mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result similarity index 98% rename from mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result rename to mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result index afd0eca236e..d20cc452612 100644 --- a/mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result +++ b/mysql-test/suite/innodb_zip/r/wl5522_debug_zip.result @@ -122,7 +122,7 @@ c4 VARCHAR(2048), INDEX idx1(c2), INDEX idx2(c3(512)), INDEX idx3(c4(512))) Engine=InnoDB -ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; +ROW_FORMAT=COMPRESSED; SET GLOBAL INNODB_PURGE_STOP_NOW=ON; SET GLOBAL innodb_disable_background_merge=ON; SET GLOBAL innodb_monitor_reset = ibuf_merges; @@ -166,7 +166,7 @@ t1 CREATE TABLE `t1` ( KEY `idx1` (`c2`), KEY `idx2` (`c3`(512)), KEY `idx3` (`c4`(512)) -) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8 +) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED SELECT c1, c2 FROM test_wl5522.t1; c1 c2 2 32 @@ -298,7 +298,7 @@ c4 VARCHAR(2048), INDEX idx1(c2), INDEX idx2(c3(512)), INDEX idx3(c4(512))) Engine=InnoDB -ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; +ROW_FORMAT=COMPRESSED; SELECT c1, c2 FROM test_wl5522.t1; c1 c2 ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; @@ -422,7 +422,7 @@ t1 CREATE TABLE `t1` ( KEY `idx1` (`c2`), KEY `idx2` (`c3`(512)), KEY `idx3` (`c4`(512)) -) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8 +) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; @@ -464,7 +464,7 @@ ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; SELECT COUNT(*) FROM test_wl5522.t1; ERROR HY000: Tablespace has been discarded for table `t1` restore: t1 .ibd and .cfg files -SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; +SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; ERROR HY000: Internal error: Cannot reset LSNs in table `test_wl5522`.`t1` : Data structure corruption SET SESSION debug_dbug=@saved_debug_dbug; diff --git a/mysql-test/suite/innodb/r/innodb-wl5522-zip.result b/mysql-test/suite/innodb_zip/r/wl5522_zip.result similarity index 98% rename from mysql-test/suite/innodb/r/innodb-wl5522-zip.result rename to mysql-test/suite/innodb_zip/r/wl5522_zip.result index 54f4bcc8c1f..b4c0597dcf9 100644 --- a/mysql-test/suite/innodb/r/innodb-wl5522-zip.result +++ b/mysql-test/suite/innodb_zip/r/wl5522_zip.result @@ -187,7 +187,7 @@ DROP TABLE t1; CREATE TABLE t1( c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 INT, INDEX(c2)) ENGINE=InnoDB -ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; +ROW_FORMAT=COMPRESSED; INSERT INTO t1(c2) VALUES(1); INSERT INTO t1(c2) SELECT c2 FROM t1; INSERT INTO t1(c2) SELECT c2 FROM t1; @@ -207,8 +207,8 @@ INSERT INTO t1(c2) SELECT c2 FROM t1; DROP TABLE t1; CREATE TABLE t1( c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -c2 INT, INDEX(c2)) ENGINE=InnoDB -ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; +c2 INT, INDEX(c2)) ENGINE=InnoDB +ROW_FORMAT=COMPRESSED; ALTER TABLE t1 DISCARD TABLESPACE; SELECT * FROM t1; ERROR HY000: Tablespace has been discarded for table `t1` @@ -404,7 +404,7 @@ DROP TABLE t1; CREATE TABLE t1( c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 INT, INDEX idx(c2)) ENGINE=InnoDB -ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; +ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; ALTER TABLE t1 DISCARD TABLESPACE; SELECT * FROM t1; ERROR HY000: Tablespace has been discarded for table `t1` diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test b/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test similarity index 88% rename from mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test rename to mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test index bd2b52faf3e..392a3ed2879 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test +++ b/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test @@ -1,21 +1,17 @@ -# Not supported in embedded +# mysql-test-run.pl --embedded cannot restart the server. --source include/not_embedded.inc # This test case needs to crash the server. Needs a debug server. --source include/have_debug.inc -# Don't test this under valgrind, memory leaks will occur. +# Valgrind can hang or return spurious messages on DBUG_SUICIDE --source include/not_valgrind.inc # Avoid CrashReporter popup on Mac --source include/not_crashrep.inc -- source include/have_innodb.inc - -# compressed table in tests are with sizes KEY_BLOCK_SIZE 1,2,4,8,16 -# Table creatation fails if KEY_BLOCK_SIZE > innodb-page-size,so -# allow test to run only when innodb-page-size=16 ---source include/have_innodb_16k.inc +-- source include/have_innodb_zip.inc call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded."); call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* because the .ibd file is missing. Please refer to .* for how to resolve the issue."); @@ -41,7 +37,7 @@ INSERT INTO test_wl5522.t1 VALUES (1), (2), (3), (4); FLUSH TABLES test_wl5522.t1 FOR EXPORT; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_backup_tablespaces("test_wl5522", "t1"); EOF UNLOCK TABLES; @@ -55,7 +51,7 @@ INSERT INTO test_wl5522.t1 VALUES (1); ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test_wl5522", "t1"); EOF @@ -64,7 +60,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -107,7 +103,7 @@ ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; # recreate the table and do a proper import. -- source include/wait_until_disconnected.inc perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF @@ -132,7 +128,7 @@ ROW_FORMAT=COMPRESSED; ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -158,7 +154,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -175,7 +171,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -195,7 +191,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -209,7 +205,7 @@ ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -226,7 +222,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -241,7 +237,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -255,7 +251,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -269,7 +265,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -283,7 +279,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -297,7 +293,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; # Left over from the failed IMPORT perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF @@ -323,7 +319,7 @@ CREATE TABLE test_wl5522.t1 ( INDEX idx1(c2), INDEX idx2(c3(512)), INDEX idx3(c4(512))) Engine=InnoDB - ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; + ROW_FORMAT=COMPRESSED; # Stop purge so that it doesn't remove the delete marked entries. SET GLOBAL INNODB_PURGE_STOP_NOW=ON; @@ -379,7 +375,7 @@ SELECT name FLUSH TABLES test_wl5522.t1 FOR EXPORT; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_backup_tablespaces("test_wl5522", "t1"); EOF @@ -408,14 +404,14 @@ CREATE TABLE test_wl5522.t1 ( INDEX idx1(c2), INDEX idx2(c3(512)), INDEX idx3(c4(512))) Engine=InnoDB - ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; + ROW_FORMAT=COMPRESSED; SELECT c1, c2 FROM test_wl5522.t1; ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -451,7 +447,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; FLUSH TABLES test_wl5522.t1 FOR EXPORT; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_backup_tablespaces("test_wl5522", "t1"); EOF @@ -469,7 +465,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -485,7 +481,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF @@ -501,15 +497,15 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF -SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; +SET SESSION debug_dbug="+d,buf_page_import_corrupt_failure"; --replace_regex /'.*t1.cfg'/'t1.cfg'/ -# Following alter is failing +# Following alter is failing --error ER_INTERNAL_ERROR ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; @@ -518,7 +514,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF @@ -532,7 +528,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -548,7 +544,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF @@ -562,7 +558,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -578,7 +574,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF @@ -599,7 +595,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF @@ -615,7 +611,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -630,7 +626,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF @@ -646,7 +642,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -661,7 +657,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF @@ -677,7 +673,7 @@ SELECT COUNT(*) FROM test_wl5522.t1; # Restore files perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test_wl5522", "t1"); EOF @@ -693,7 +689,7 @@ SET SESSION debug_dbug=@saved_debug_dbug; DROP TABLE test_wl5522.t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test_wl5522", "t1"); EOF diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-zip.test b/mysql-test/suite/innodb_zip/t/wl5522_zip.test similarity index 86% rename from mysql-test/suite/innodb/t/innodb-wl5522-zip.test rename to mysql-test/suite/innodb_zip/t/wl5522_zip.test index 4181b52573c..7863c2b3ffb 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5522-zip.test +++ b/mysql-test/suite/innodb_zip/t/wl5522_zip.test @@ -2,10 +2,7 @@ --source include/not_embedded.inc -- source include/have_innodb.inc -# compressed table in tests are with sizes KEY_BLOCK_SIZE 1,2,4,8,16 -# Table creatation fails if KEY_BLOCK_SIZE > innodb-page-size,so -# allow test to run only when innodb-page-size=16 ---source include/have_innodb_16k.inc +-- source include/have_innodb_zip.inc call mtr.add_suppression("InnoDB: Unable to import tablespace .* because it already exists. Please DISCARD the tablespace before IMPORT."); @@ -104,7 +101,7 @@ INSERT INTO t1(c2) SELECT c2 FROM t1; FLUSH TABLES t1 FOR EXPORT; SELECT COUNT(*) FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_backup_tablespaces("test", "t1"); EOF @@ -123,7 +120,7 @@ ALTER TABLE t1 DISCARD TABLESPACE; SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test", "t1"); ib_restore_tablespaces("test", "t1"); EOF @@ -154,7 +151,7 @@ INSERT INTO t1(c2) SELECT c2 FROM t1; FLUSH TABLES t1 FOR EXPORT; SELECT COUNT(*) FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_backup_tablespaces("test", "t1"); EOF --list_files $MYSQLD_DATADIR/test @@ -177,7 +174,7 @@ ALTER TABLE t1 DISCARD TABLESPACE; SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test", "t1"); ib_restore_tablespaces("test", "t1"); EOF @@ -197,7 +194,7 @@ DROP TABLE t1; CREATE TABLE t1( c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 INT, INDEX(c2)) ENGINE=InnoDB - ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; + ROW_FORMAT=COMPRESSED; INSERT INTO t1(c2) VALUES(1); INSERT INTO t1(c2) SELECT c2 FROM t1; @@ -208,7 +205,7 @@ INSERT INTO t1(c2) SELECT c2 FROM t1; FLUSH TABLES t1 FOR EXPORT; SELECT COUNT(*) FROM t1 WHERE c2 = 1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_backup_tablespaces("test", "t1"); EOF --list_files $MYSQLD_DATADIR/test @@ -222,15 +219,15 @@ DROP TABLE t1; CREATE TABLE t1( c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - c2 INT, INDEX(c2)) ENGINE=InnoDB - ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; + c2 INT, INDEX(c2)) ENGINE=InnoDB + ROW_FORMAT=COMPRESSED; ALTER TABLE t1 DISCARD TABLESPACE; --error ER_TABLESPACE_DISCARDED SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test", "t1"); ib_restore_tablespaces("test", "t1"); EOF @@ -247,10 +244,12 @@ DROP TABLE t1; # table and restore, this time the table has a secondary index too. # Rename the index on the create so that the IMPORT fails, drop index # Create with proper name and then do an IMPORT. -CREATE TABLE t1( +let $KEY_BLOCK_SIZE=`SELECT CONCAT('KEY_BLOCK_SIZE=', FLOOR(@@innodb_page_size/1024))`; +--replace_result $KEY_BLOCK_SIZE KEY_BLOCK_SIZE=16 +eval CREATE TABLE t1( c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 INT, INDEX idx(c2)) ENGINE=InnoDB - ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16; + ROW_FORMAT=COMPRESSED $KEY_BLOCK_SIZE; INSERT INTO t1(c2) VALUES(1); INSERT INTO t1(c2) SELECT c2 FROM t1; @@ -261,7 +260,7 @@ INSERT INTO t1(c2) SELECT c2 FROM t1; FLUSH TABLES t1 FOR EXPORT; SELECT COUNT(*) FROM t1 WHERE c2 = 1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_backup_tablespaces("test", "t1"); EOF UNLOCK TABLES; @@ -272,17 +271,18 @@ INSERT INTO t1(c2) SELECT c2 FROM t1; DROP TABLE t1; -CREATE TABLE t1( +--replace_result $KEY_BLOCK_SIZE KEY_BLOCK_SIZE=16 +eval CREATE TABLE t1( c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 INT, INDEX x(c2)) ENGINE=InnoDB - ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16; + ROW_FORMAT=COMPRESSED $KEY_BLOCK_SIZE; ALTER TABLE t1 DISCARD TABLESPACE; --error ER_TABLESPACE_DISCARDED SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test", "t1"); ib_restore_tablespaces("test", "t1"); EOF @@ -295,7 +295,7 @@ ALTER TABLE t1 DROP INDEX x; ALTER TABLE t1 ADD INDEX idx(c2); perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_restore_tablespaces("test", "t1"); EOF @@ -305,7 +305,7 @@ CHECK TABLE t1; SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_cleanup("test", "t1"); EOF @@ -361,7 +361,7 @@ SELECT * FROM t1; FLUSH TABLES t1 FOR EXPORT; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_backup_tablespaces("test", "t1"); EOF @@ -380,7 +380,7 @@ ALTER TABLE t1 DISCARD TABLESPACE; SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test", "t1"); ib_restore_tablespaces("test", "t1"); EOF @@ -390,7 +390,7 @@ EOF ALTER TABLE t1 IMPORT TABLESPACE; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test", "t1"); EOF @@ -408,7 +408,7 @@ ALTER TABLE t1 DISCARD TABLESPACE; SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test", "t1"); ib_restore_tablespaces("test", "t1"); EOF @@ -418,7 +418,7 @@ EOF ALTER TABLE t1 IMPORT TABLESPACE; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test", "t1"); EOF @@ -435,7 +435,7 @@ ALTER TABLE t1 DISCARD TABLESPACE; SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test", "t1"); ib_restore_tablespaces("test", "t1"); EOF @@ -445,7 +445,7 @@ EOF ALTER TABLE t1 IMPORT TABLESPACE; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test", "t1"); EOF @@ -455,27 +455,27 @@ DROP TABLE t1; CREATE TABLE t1( c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 INT, INDEX idx(c2)) ENGINE=InnoDB - ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; + ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; ALTER TABLE t1 DISCARD TABLESPACE; --error ER_TABLESPACE_DISCARDED SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test", "t1"); ib_restore_tablespaces("test", "t1"); EOF -# This should fail because is KEY_BLOCK_SIZE=4 -# but KEY_BLOCK_SIZE=8 is exported table +# This should fail because KEY_BLOCK_SIZE=1 +# does not match the implicit KEY_BLOCK_SIZE of the exported table. # Need better error message for following --replace_regex /\(.*\)// -- error ER_TABLE_SCHEMA_MISMATCH ALTER TABLE t1 IMPORT TABLESPACE; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_unlink_tablespace("test", "t1"); EOF @@ -493,7 +493,7 @@ ALTER TABLE t1 DISCARD TABLESPACE; SELECT * FROM t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_discard_tablespaces("test", "t1"); ib_restore_tablespaces("test", "t1"); EOF @@ -502,7 +502,7 @@ ALTER TABLE t1 IMPORT TABLESPACE; CHECK TABLE t1; perl; -do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; +do "$ENV{MTR_SUITE_DIR}/../innodb/include/innodb-util.pl"; ib_cleanup("test", "t1"); EOF diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc index d6a2d9ba9e0..b9968f39a81 100644 --- a/storage/innobase/buf/buf0buf.cc +++ b/storage/innobase/buf/buf0buf.cc @@ -872,8 +872,7 @@ buf_page_is_corrupted( } #endif - - DBUG_EXECUTE_IF("buf_page_is_corrupt_failure", return(TRUE); ); + DBUG_EXECUTE_IF("buf_page_import_corrupt_failure", return(TRUE); ); if (!no_checksum && !page_size.is_compressed() && memcmp(read_buf + FIL_PAGE_LSN + 4, @@ -1002,7 +1001,6 @@ buf_page_is_corrupted( read_buf + FIL_PAGE_OFFSET)); #endif /* UNIV_INNOCHECKSUM */ - DBUG_EXECUTE_IF("buf_page_import_corrupt_failure", return(TRUE); ); const srv_checksum_algorithm_t curr_algo = static_cast(srv_checksum_algorithm); @@ -6033,29 +6031,17 @@ buf_page_io_complete( /* Not a real corruption if it was triggered by error injection */ - DBUG_EXECUTE_IF("buf_page_is_corrupt_failure", - if (bpage->id.space() != TRX_SYS_SPACE - && buf_mark_space_corrupt(bpage)) { - ib::info() << - "Simulated page corruption"; - return(true); - } - goto page_not_corrupt_1; - ;); - /* Not a real corruption if it was triggered by - error injection */ DBUG_EXECUTE_IF( "buf_page_import_corrupt_failure", - if (bpage->id.space() > TRX_SYS_SPACE - && !Tablespace::is_undo_tablespace( - bpage->id.space()) + if (bpage->id.space() + > srv_undo_tablespaces_open + && bpage->id.space() != SRV_TMP_SPACE_ID && buf_mark_space_corrupt(bpage)) { ib::info() << "Simulated IMPORT " "corruption"; return(true); } - goto page_not_corrupt; - ;); + goto page_not_corrupt;); database_corrupted: bool corrupted = buf_page_check_corrupt(bpage); @@ -6123,10 +6109,7 @@ database_corrupted: } DBUG_EXECUTE_IF("buf_page_import_corrupt_failure", - page_not_corrupt: bpage = bpage; ); - - DBUG_EXECUTE_IF("buf_page_is_corrupt_failure", - page_not_corrupt_1: bpage = bpage; ); + page_not_corrupt: bpage = bpage; ); if (recv_recovery_is_on()) { /* Pages must be uncompressed for crash recovery. */ @@ -6138,8 +6121,9 @@ database_corrupted: During re-init we have already freed ibuf entries. */ if (uncompressed && !recv_no_ibuf_operations - && !Tablespace::is_undo_tablespace(bpage->id.space()) - && bpage->id.space() != SRV_TMP_SPACE_ID + && (bpage->id.space() == 0 + || (bpage->id.space() > srv_undo_tablespaces_open + && bpage->id.space() != SRV_TMP_SPACE_ID)) && !srv_is_tablespace_truncated(bpage->id.space()) && fil_page_get_type(frame) == FIL_PAGE_INDEX && page_is_leaf(frame)) { diff --git a/storage/innobase/dict/dict0crea.cc b/storage/innobase/dict/dict0crea.cc index 51c721bfc93..084d39fc4a1 100644 --- a/storage/innobase/dict/dict0crea.cc +++ b/storage/innobase/dict/dict0crea.cc @@ -474,16 +474,11 @@ dict_build_tablespace_for_table( return(DB_ERROR); } } else { + ut_ad(dict_tf_get_rec_format(table->flags) + != REC_FORMAT_COMPRESSED); if (dict_table_is_temporary(table)) { - /* Use the shared temporary tablespace. - Note: The temp tablespace supports all non-Compressed - row formats whereas the system tablespace only - supports Redundant and Compact */ - ut_ad(dict_tf_get_rec_format(table->flags) - != REC_FORMAT_COMPRESSED); table->space = SRV_TMP_SPACE_ID; } else { - /* Create in the system tablespace. */ ut_ad(table->space == srv_sys_space.space_id()); } diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc index 14dad77f332..1ef209ed0ed 100644 --- a/storage/innobase/fil/fil0fil.cc +++ b/storage/innobase/fil/fil0fil.cc @@ -1186,9 +1186,8 @@ fil_space_extend_must_retry( fil_flush_low(space); return(false); default: - // TODO: reject CREATE TEMPORARY TABLE...ROW_FORMAT=COMPRESSED ut_ad(space->purpose == FIL_TYPE_TABLESPACE - || space->purpose == FIL_TYPE_TEMPORARY); + || space->purpose == FIL_TYPE_IMPORT); if (space->purpose == FIL_TYPE_TABLESPACE) { fil_flush_low(space); } diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index ef599bc5d04..ded2105da05 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -12174,7 +12174,7 @@ create_table_info_t::create_option_data_directory_is_valid() } /** Validate the create options. Check that the options KEY_BLOCK_SIZE, -ROW_FORMAT, DATA DIRECTORY, TEMPORARY & TABLESPACE are compatible with +ROW_FORMAT, DATA DIRECTORY, TEMPORARY are compatible with each other and other settings. These CREATE OPTIONS are not validated here unless innodb_strict_mode is on. With strict mode, this function will report each problem it finds using a custom message with error diff --git a/storage/innobase/include/fsp0space.h b/storage/innobase/include/fsp0space.h index 6ecca6211ed..0b66827ab49 100644 --- a/storage/innobase/include/fsp0space.h +++ b/storage/innobase/include/fsp0space.h @@ -200,13 +200,6 @@ public: ut_a(!m_files.empty()); return(&m_files.front()); } - - /** Check if undo tablespace. - @return true if undo tablespace */ - static bool is_undo_tablespace(ulint id) - { - return(id <= srv_undo_tablespaces_open); - } private: /** @param[in] filename Name to lookup in the data files.